redis使用

redis作为缓存应用

1 将热点数据放到缓存中,防止大量连接穿透数据库

2 jedis3.0以上版本集群主要使用JedisCluter对象,采用crc16算法将slot平均分配到各个集群的各个服务器上,

高可用体现在当某一个节点挂掉之后,很快的会有另一台机器替代,保证数据不会丢失

高扩展是将新的机器很容易的加到集群中,容易扩展

redis3.0以上使用jedisCluster不像jedis客户端支持pipeline, pipeline优势是可以一次执行多次命令,减少频繁的连接消耗

在集群模式下怎样实现管道命令

1 通过key获取对应的slot,然后通过slot获取对应的redis服务端

Map<String, JedisPool> nodeMap =jedisCluster.getClusterNodes()
获取每台redis的槽号,并放在map中  
Jedis jedis = new Jedis(anyHostAndPort.getHost(), anyHostAndPort.getPort());
            List<Object> list = jedis.clusterSlots();
            for (Object object : list) {
                List<Object> list1 = (List<Object>) object;
                List<Object> master = (List<Object>) list1.get(2);
                String hostAndPort = new String((byte[]) master.get(0)) + ":" + master.get(1);
                tree.put((Long) list1.get(0), hostAndPort);
                tree.put((Long) list1.get(1), hostAndPort);
            }
Jedis jedis = nodeMap.get(entry.getValue()).getResource();
然后使用pipeline
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值