一、几种数据结构:
1、String:key->value
(1)添加:set key value/setnx key value(不存在时才添加,已存在返回0)/setex key time value(添加并设置有效时间)/setrange key index value(将key对应的值从index位置开始替换为value)/mset key1 value1 key2 value...
分类:
其他好文 时间:
2014-12-22 19:40:06
阅读次数:
185
在很多互联网产品应用中,有些场景需要加锁处理,比如:秒杀,全局递增ID,楼层生成等等。大部分的解决方案是基于DB实现的,Redis为单进程单线程模式,采用队列模式将并发访问变成串行访问,且多客户端对Redis的连接并不存在竞争关系。其次Redis提供一些命令SETNX,GETSET,可以方便实现分布式锁机制。...
分类:
其他好文 时间:
2014-12-12 16:39:40
阅读次数:
203
一般cache调用流程,会先cache查询,没有的话调用DB或者第三方接口,获取数据,再次存入Cache,继续数据处理。多次调用,既是一种问题,应该把这种查询方式封装到更底层的方法内。而不是每次重复这样的逻辑,除了封装的问题外,还有其他问题,我们统一列举下...
分类:
Web程序 时间:
2014-11-29 00:19:12
阅读次数:
208
引子
redis作为一个强大的key/value数据库,其实还可以用来实现轻量级的分布式锁。
1.实现方案1
最早官方在SETNX命令页给了一个实现:
acquire lock: SETNX lock.foo
release lock: DEL lock.foo
acquire lock when time expired: GETSET lock.foo
...
分类:
其他好文 时间:
2014-11-12 16:39:51
阅读次数:
260
setnx("Lock:{$key}", self::$expire))) { break; } if($acquired = (self::recover($key))) { ...
分类:
其他好文 时间:
2014-09-06 17:20:43
阅读次数:
294