sharedjedis设置10个key之后分别存在了2个redis里面,那取值的时候会2个redis遍历才能取到值吗?还是redis数据自动同步呢?

来源:7-4 Coding+集群分布式区别讲解

慕丝8806

2019-12-28

sharedjedis设置10个key之后分别存在了2个redis里面,那取值的时候会2个redis遍历才能取到值吗?还是redis数据自动同步呢?

写回答

2回答

小刘呀

2022-02-14

本质上还是从Jedis中取的数据,Sharded类里有个方法,会判断你要取的数据在哪个Jedis中

    public S getShardInfo(byte[] key) {
	SortedMap<Long, S> tail = nodes.tailMap(algo.hash(key));
	if (tail.isEmpty()) {
	    return nodes.get(nodes.firstKey());
	}
	return tail.get(tail.firstKey());
    }

这个方法会返回你需要的Jedis

0
0

geelylucky

2019-12-29

同学,这个要看你是集群部署还是分布式部署,集群部署会自动同步数据,无论从哪个redis实例中取值都是可以的,分布式部署,取值的时候客户端会计算key对应的hash值,找到映射的redis实例取值。

0
0

Java企业级电商项目架构 Tomcat集群与Redis分布式

Tomcat集群+Redis分布式+代码重构+源码原理解析

2685 学习 · 947 问题

查看课程