采纳答案成功!
向帮助你的同学说点啥吧!感谢那些助人为乐的人
老师您好,我想请教两个问题。1:在redis sentinel模式下,如何对一个redis集群进行扩容操作?2:一个redis sentinel能够管理多个redis集群,通过master-name区分,假设redisA集群保存用户相关信息,redisB集群保存订单相关信息,那么客户端如何能够在对应的集群中获取用户信息或者订单信息(客户端如何知道什么时候从A中获取,什么时候从B中获取)?
提出这个问题,说明你对sentinel的主要用途不理解。
redis sentinel实际上就是哨兵机制的一种实现,什么是哨兵,哨兵主要做三件事:监控、选主、通知,也就是发现故障、转移故障以及转移成功后通知客户端作相应的调整。哨兵机制并不能实现动态扩容,那是redis cluster干的事情; 另外客户端选择哪个master获取数据,那是由客户端决定的,只要知道master的ip和端口自然可以发送请求到对应的master上;
下面对哨兵具体干了什么也说明一下,便于你理解哨兵。
说具体点就是哨兵负责监控所有主从节点的网络连接和运行状态,如果检测某个从节点挂了,就通知客户端将该从节点的连接信息(ip+端口)从客户端的从库列表中删除,这样客户端就不会继续向挂掉的从节点发送请求了;如果哨兵集群中超过半数的哨兵都检测到主节点挂了,就进入选主阶段(选出新的主,转移故障),哨兵集群中会经过一番选举选出一个哨兵来进行选主和主从切换的操作;
哨兵会先筛选掉网络状态不好的从节点,然后对剩下的从节点按照从库优先级、从库数据复制进度、从库id的打分规则进行三轮打分,只要有从节点在任意一轮打分中得分最高,就会被选为新的主节点
选出主节点后,哨兵会通知其他从节点与新主建立主从关系,并建立连接进行数同步;
哨兵还会通知客户端,让客户端将以后的请求都发送到新主库上来;
如果老的主节点故障恢复了,哨兵会将其作为一个从节点与新主节点建立主从关系,并将其连接信息(ip和端口)发送给客户端,这样以后有读请求也可以发送到这个新的从节点上对外提供读的服务了
redis sentinel模式只能改单个实例的maxmemory
客户端当然不知道,这个业务逻辑你来定义的。例如jedissentinelpool1是A业务,另一个是B业务
登录后可查看更多问答,登录/注册
Redis课程升级!系统梳理Redis知识体系,掌握redis必备!
1.2k 1
1.2k 2
934 12
2.1k 9
829 6