java jedispool实例_redis学习及实践3---Jedis、JedisPool、Jedis分布式实例介绍

一、相关jar包

主要用到的是jedis的核心包,笔者用到的是2.1.0版;另根据“池”的应用等还需要用到相关jar包。下图是笔者建立的简单的jedis测试project图:

158632c10dda9faf5ff791bae927e3f5.png

jar包的文档可参考:

二、简单的Jedis实例

在引入相关jar包后,只要new一个Jedis对象,就能做redis相关操作了。以下是一个简单的jedis实例:

三、JedisPool应用

Jedis使用commons-pool完成池化实现。

先做个配置文件(properties文件):

jedisPool的相关详细配置可参考:http://www.2cto.com/database/201311/254449.html

在静态代码段中完成初始化:

然后修改#2的简单实例,修改为Jedis从pool中获得:

四、Jedis分布式(Sharding/shared一致性哈希)

Memcached完全基于分布式集群,而Redis是Master-Slave,如果想把Reids,做成集群模式,无外乎多做几套Master-Slave,每套Master-Slave完成各自的容灾处理,通过Client工具,完成一致性哈希。(PS:Memcached是在Server端完成Sharding,Redis只能依靠各个Client做Sharding。可能会在Redis 3.0系列支持Server端Sharding。)

shared一致性哈希采用以下方案:

Redis服务器节点划分:将每台服务器节点采用hash算法划分为160个虚拟节点(可以配置划分权重)

将划分虚拟节点采用TreeMap存储

对每个Redis服务器的物理连接采用LinkedHashMap存储

对Key or KeyTag 采用同样的hash算法,然后从TreeMap获取大于等于键hash值得节点,取最邻近节点存储;当key的hash值大于虚拟节点hash值得最大值时,存入第一个虚拟节点

sharded采用的hash算法:MD5 和 MurmurHash两种;默认采用64位的MurmurHash算法;有兴趣的可以研究下,MurmurHash是一种高效,低碰撞的hash算法;参考地址:

保留前面的JedisPoolConfig,新增两个Redis的IP(redis1.ip,redis2.ip),完成两个JedisShardInfo实例,并将其丢进List中:

初始化ShardedJedisPool代替JedisPool:

改由ShardedJedis,获取Jedis对象:

通过以上方式,向redis进行set操作的key-value,会通过hash而均匀的分配到pool里的redis机器中。

五、综合实例

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值