利用memcached实现并发时候,设置缓存锁
2015-11-09 00:00
465 查看
摘要: 利用memched:add()的原子性,来为并发请求加锁。
利用了memcached中 add()方法。
memcached:add($key) 成功时返回 TRUE, 或者在失败时返回 FALSE。 如果这个key已经存在返回FALSE。
利用add的原子性来判断是否需要执行业务代码。
利用了memcached中 add()方法。
memcached:add($key) 成功时返回 TRUE, 或者在失败时返回 FALSE。 如果这个key已经存在返回FALSE。
利用add的原子性来判断是否需要执行业务代码。
/** * @param null $key * * @author 20779182@qq.com */ public function add_cache($key=null) { $memcacheClass = new Memcached(); $data = $memcacheClass->get($key); if(! $data) { do { $write_key = 'write'; if($memcacheClass->add($write_key, $write_key, 10 * 60)) { // 加锁成功,执行业务操作 $data = $model->get(); $memcacheClass->set($key, $data, 30 * 60); // 将数据存入缓存 $memcacheClass->delete($write_key); $is_retry = false; } else { // 如果加锁不成功,等待一段时间之后重试 sleep(10); $is_retry = true; } } while($is_retry); } }
相关文章推荐
- centOS下PHP使用memcached详细安装过程
- 使用memcache和直接访问数据库的性能比较
- Mac下PHP安装Memcache扩展
- memcached学习笔记1(windows 7 64bit 环境下安装memcached)
- 编译安装memcached时提示找不到gcc
- PHP Memcached 替换 系统$_SESSION
- Linux下安装Memcached
- tomcat集群memcached 共享session
- PHP环境中Memcache的安装和使用
- Windows下Memcached的安装配置方法
- 多台tomcat服务的session共享 memcached与redis
- PHP环境中Memcache的安装和使用
- linux 下memcached安装
- memcached
- mecache安装与php_memcache.dll扩展
- Memcache安装篇
- Lnmp下安装memcached
- mac 安装memcache 一把辛酸一把泪
- Memcache 入门
- Memcache的使用