分布式redis

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

qq_追梦青年_1

2018-03-11

ShardedJedis  shardedJedis=ShardedRedisPool.getJedis();
  for (int i=0;i<10;i++)
  {
      shardedJedis.set("key"+i,"value"+i);
  }
  returnJedis(shardedJedis);

老师,这段不是很明白,getresource 后不是应该从redis1 实例或者redis2实例 中二选一进行set嘛!结果应该只有一个实例才有keys 啊!为什么会两个都会有keys,而且在controller层,比如usercontroller,用redisShardedutil存储user对象,取对象的时候如何知道是从redis1中还是redis2 中取值,他会自动识别吗?谢谢老师

写回答

2回答

Geely

2018-03-11

你好,亲爱的同学,这块逻辑是一段测试逻辑,是说往统一的redis集群里面设置值,而这个值可能放到redis1,也可能放到redis2里。结果是只有一个,也就是说key1 要么在redis1里,要么在redis2里。另外你的问题是如何知道从哪里取值,这个就是非常好的问题啦,咱们课程里面有讲的哟,在redis 一致性算法那个章节,同学仔细看一下。

1
2
Geely
回复
qq_追梦青年_1
不用客气~加油同学
2018-03-17
共2条回复

about_blank

2018-03-11

同学你好

首先 我们说的redis分布式 和我们常聊的分布式是不一样的哦

redis 分布式 其实更类似与一个集群的概念

redis的数据都是共享的

只是不同的ABC三台服务器分布不同

二选一如何进行set 和如何进行同步 

可以参考getredis 这个方法的源码 

实现原理这里涉及到了分布式一致性hash 算法

老师的视频课程中有很详细的ppt 动画讲解 

0
1
Tom_Dragon
这里redis数据不是共享的吧?老师安装集群的时候好像没有使用Ruby,2个redis节点应还是2个进程,至于数据的分配是在客户端完成吧。。。
2018-12-05
共1条回复

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

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

2685 学习 · 947 问题

查看课程