简介
https://github.com/xetorthio/jedis
使用
想要使用Jedis必须加载jar包或者添加maven依赖,jar包可以自己上网下载,我的是Maven项目,所以在pom.xml中增加如下语句:
简单的Jedis实例
在加载Jedis JAR包之后,我们可以直接使用新建一个Jedis实例的方法,来建立一个到Redis的连接,并进行操作,以下是一个简单的jedis实例:
输出结果:

字符串操作
输出结果:
输出结果:

哈希操作
输出结果:
输出结果:

列表操作
输出结果:

集合(Set)操作
输出结果:
有序集合
输出结果:
排序sort
输出结果:
JedisPool应用
虽然我们可以简单地创建Jedis使用,但每次操作的时候,都建立连接,很耗费性能。解决方法就是从一个连接池中取出连接对象,用完还回去。使用连接池的方案还能解决很多同步性问题。在Jedis中,管理Redis连接的类是JedisPool。要想使用JedisPool需要添加jar包或依赖库,在pom.xml中添加
- 普通连接池连接
实现方式有两种,一种是通过配置文件(properties文件),我的文件名是jedisPool.properties:
java类如下:
而直接通过代码实现的话,其实也是一个原理:
- Sentinel连接池连接
Sentinel连接池用于应对Redis的Sentinel的主从切换机制,能够正确在服务器宕机导致服务器切换时得到正确的服务器连接,当服务器采用该部署策略的时候推荐使用该连接池进行操作
- ShardedJedisPool连接池分片连接
Memcached完全基于分布式集群,而Redis是Master-Slave,Redis在容灾处理方面可以通过服务器端配置Master-Slave模式来实现。如果想把Reids做成集群模式,无外乎多做几套Master-Slave,每套Master-Slave完成各自的容灾处理,通过Client工具来实现一致性哈希分布存储,即key分片存储。
shared一致性哈希采用以下方案:
- Redis服务器节点划分:将每台服务器节点采用hash算法划分为160个虚拟节点(可以配置划分权重)
- 将划分虚拟节点采用TreeMap存储
- 对每个Redis服务器的物理连接采用LinkedHashMap存储
- 对Key or KeyTag 采用同样的hash算法,然后从TreeMap获取大于等于键hash值得节点,取最邻近节点存储;当key的hash值大于虚拟节点hash值得最大值时,存入第一个虚拟节点
sharded采用的hash算法:MD5 和 MurmurHash两种;默认采用64位的MurmurHash算法;有兴趣的可以研究下~
保留前面的JedisPoolConfig,新增两个Redis的IP(redis1.ip,redis2.ip),完成两个JedisShardInfo实例,并将其丢进List中:
参考:
http://www.boyunjian.com/javadoc/org.apache.servicemix.bundles/org.apache.servicemix.bundles.jedis/2.1.0_1/_/redis/clients/jedis/JedisShardInfo.html
https://yq.aliyun.com/articles/
http://blog.csdn.net/dslztx/article/details/
http://flyingsnail.blog.51cto.com//
http://www.tuicool.com/articles/vaqABb
http://www.importnew.com/19321.html
http://www.cnblogs.com/liuling/p/2014-4-19-04.html
http://www.cnblogs.com/libaoting/p/4418007.html
http://blog.csdn.net/fachang/article/details/
http://blog.csdn.net/aubdiy/article/details/
http://blog.csdn.net/moxiaomomo/article/details/
版权声明:
本文来源网络,所有图片文章版权属于原作者,如有侵权,联系删除。
本文网址:https://www.mushiming.com/mjsbk/1804.html