目前分布式锁,比较成熟、主流的方案有基于redis及基于zookeeper的二种方案。 大体来讲,基于redis的分布式锁核心指令为SETNX,即如果目标key存在,写入缓存失败返回0,反之如果目标key不存在,写入缓存成功返回1,通过区分这二个不同的返回值,可以认为SETNX成功即为获得了锁。 r ...
分类:
其他好文 时间:
2016-05-29 22:53:02
阅读次数:
496
一、string类型的常用命令 set key1 com #一个key对应一个value,多次复制,会覆盖前面的value setnx key1 zhangsan #如果key1不存在则创建key1,并返回1,如果可以key1存在,则不会覆盖key1的值,并返回0 setex key3 100 fa ...
分类:
其他好文 时间:
2016-05-11 19:30:55
阅读次数:
175
1>set set name zhangsan :OK get name: zhangsan set name lisi:OK get name: lisi 2> setnx 如果存在,返回0,不覆盖原值 setnx name lisi :0 get name: lisi setnx age 15: ...
分类:
其他好文 时间:
2016-04-15 20:08:18
阅读次数:
113
本文档简单介绍一下使用python版的Redis客户端redis-py来连接Redis并执行设置和获取redis的二进制数据。
说明:
set,get,setnx,append等命令同样也可以用于设置二进制数据。
因为Redis的自带的客户端redis-cli不方便设置二进制数据,所以我们这里使用Python的客户端来进行
安装redis-py有三种方式:
1. pip ...
分类:
其他好文 时间:
2016-03-13 18:05:53
阅读次数:
165
字符串命令set name fsq 设置name的值为fsq,如果存在name会覆盖。setnx name fsq 不存在name则设置,如果存在不会覆盖setex haircolor 10 red 设置超时10秒,10秒后此健值对失效mset key1 fsq1 key2 fsq 设置多个mset
分类:
其他好文 时间:
2016-03-02 10:57:56
阅读次数:
159
设计 选择合适的数据对象来存储对象:String,List,Hash(Entity角色对象),Set,Zset(需要排序); 选择存储是全局的,还是局部的; 机制 批处理(pipeline) 事务(watch-mulit-execut) 锁(setNx) 保存 Save/BGSave;占用内存不是很...
分类:
其他好文 时间:
2016-02-15 22:37:50
阅读次数:
181
新开发的系统需要控制每个时刻回收缓存的GC线程有且只有一个在运行,如果有多个线程同时运行,会造成系统崩溃。如果只有一个JVM进程那么很好办,简单的借助synchronized关键字就行了。可是我的系统要部署在多台服务器,每台服务器上部署多个实例上。而synchronized仅仅在单进程里有用。
考虑借助共享数据源redis实现功能。
redis提供一个方法,SETNX key...
分类:
其他好文 时间:
2015-07-03 19:16:10
阅读次数:
172
这里有一篇文章介绍了用redis实现分布式的方式 。不是简简单单的用setnx来实现,讲述了几种实际项目中的一些情况。猛击下面链接查看 http://www.oschina.net/translate/redis-distlock 其他文章 http://blog.csdn.net/ugg/arti...
分类:
其他好文 时间:
2015-06-16 14:36:46
阅读次数:
97
redis->string 二进制setnx name lijie 判断键值 是否存在 如果存在返回0 不存在 吧值设置进去setex 指定键值有效期时间 setex name 10 lijiesetrange 设置指定key的vlaue值的子字符串(我们向往将理解的126邮箱替换为gmail邮箱)...
分类:
数据库 时间:
2015-05-30 15:17:58
阅读次数:
159