Redis_Jedis使用总结
2015-11-20 13:49
274 查看
目录:
1.pipeline
2.跨jvm的id生成器
3.跨jvm的锁实现(watch multi)
4.redis分布式
1. Pipeline
官方的说明是:starts a pipeline,which is a very efficient way to send lots of command and read all the responses when you finish sending them。简单点说pipeline适用于批处理。当有大量的操作需要一次性执行的时候,可以用管道。示例:
?
2. 跨jvm的id生成器
谈到这个话题,首先要知道redis-server端是单线程来处理client端的请求的。这样来实现一个id生成器就非常简单了,只要简单的调用jdeis.incr(key);就搞定了。
你或许会问,incr是原子操作吗,能保证不会出现并发问题吗,不是说了吗,server端是单线程处理请求的。
3. 跨jvm的锁实现【watch】【multi】
首先说下这个问题的使用场景,有些时候我们业务逻辑是在不同的jvm进程甚至是不同的物理机上的jvm处理的。这样如何来实现不同jvm上的同步问题呢,其实我们可以基于redis来实现一个锁。具体事务和监听请参考文章:redis学习笔记之事务
暂时找到三种实现方式:
1. 通过jedis.setnx(key,value)实现
?
由于采纳第一张方法,第二种跟第三种实现只贴了关键代码,望谅解。^_^
?
?
4. redis分布式
最后一个话题,jedis的分布式。在jedis的源码里发现了两种hash算法(MD5,MURMUR Hash(默认)),也可以自己实现redis.clients.util.Hashing接口扩展。
?
相关文章推荐
- 批量删除Redis数据库中的Key
- Redis作者谈Redis应用场景(转)
- Redis in .NET
- redis,rabbitmq,graphite,zabbix,tengine,haproxy,keepalived,ansible,saltstack,汇总
- redis 清除过期键算法流程
- 跨平台轻量级redis、ssdb代理服务器(C++ 11编写)
- 15天玩转redis —— 第六篇 有序集合类型
- Redis 学习整理
- php配置redis储存session
- 基于redis的多线程生产消费模式
- haproxy,tengine,redis,rpm 打包
- Redis集群
- Redis主备自动切换
- Redis主备复制
- Centos下搭建redis缓存数据库
- redis-cluster研究和使用(转)
- redis 3.0 cluster 集群 学习之路篇(资料汇总)
- 用脚本批量执行redis命令
- Redis主-从部署实践
- Resid 学习笔记1-基础命令