Redis_redis分布式锁-SETNX
2016-09-14 14:05
423 查看
因业务需要使用了redis的SETNX来实现分布式锁。
描述:Redis有一系列的命令,特点是以NX结尾,NX是Not eXists的缩写,如SETNX命令就应该理解为:SET if Not eXists。这系列的命令非常有用,这里讲使用SETNX来实现分布式锁。
直接上重点:
SET NX 命令是快速失败锁,就是当第一次设置key和value时返回1,当第二次设置相同的key时,返回0,此时对原值不做任何更改。
使用Jedis调用此命令:
且删除锁的操作一定要是持有锁的人删除,这样才不会有问题。
描述:Redis有一系列的命令,特点是以NX结尾,NX是Not eXists的缩写,如SETNX命令就应该理解为:SET if Not eXists。这系列的命令非常有用,这里讲使用SETNX来实现分布式锁。
直接上重点:
SET NX 命令是快速失败锁,就是当第一次设置key和value时返回1,当第二次设置相同的key时,返回0,此时对原值不做任何更改。
使用Jedis调用此命令:
public static boolean setnxex(String key, Object value) { Jedis jedis = pool.getResource(); byte[] encodeKey = SafeEncoder.encode(key); String result = jedis.set(encodeKey,serialize(value),"nx".getBytes(),"ex".getBytes(),EXPIRE_5_MINUTES); if("OK".equals(result)){ pool.returnResourceObject(jedis); return true; } pool.returnResourceObject(jedis); return false; }
且删除锁的操作一定要是持有锁的人删除,这样才不会有问题。
相关文章推荐
- redis数据库c语言接口
- 节约内存:Instagram的Redis实践
- Zabbix监控redis配置及宏的使用
- redis分布式集群数据库搭建
- tomcat+nginx+redis实现均衡负载、session共享(一)
- spring和redis整合异常整理
- redis常用命令
- Windows redis安装
- redis server went away
- windows下使用redis,Redis入门使用,Redis基础命令
- windows下使用redis,Redis入门使用,Redis基础命令
- redis集群管理
- windows redis:Uncaught exception 'RedisException' with message 'Redis server went away'
- 高可用、开源的Redis缓存集群方案
- Django1.9开发博客(13)- redis缓存
- Redis的数据类型及命令行操作
- hibernate redis实现分布式二级缓存
- redis 集群
- redis集群 Waiting for the cluster to join 一直等待
- 002. Redis Cluster 部署