redis 分布式中间件设计分析

本文详细阐述了Redis分布式中间件的设计过程,包括从配置文件读取哨兵和分片信息,使用Jedis和ShardedJedis进行读写操作,并通过一致性哈希进行分片。此外,还介绍了如何利用Zookeeper监听配置变化以及订阅Sentinel主从变更,以动态更新连接资源。在执行Redis操作时,根据key路由到相应分片,遵循读写策略选择主机或丛机。最后,确保操作完成后正确释放连接资源。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

redis 分布式中间件设计分析

一、客户端bean实例化的时候

1、读取配置文件,从配置文件中获取哨兵,分片等信息

2、访问哨兵,根据分片masterName 从哨兵中获取主机和丛机ip及端口号数据

3、依赖jedis组件,重新封装Jedis 和 JedisPool 类,使之能够根据读写策略,读的时候随机选择主机或者丛机进行读,写的时候选择主机进行写

4、重新封装ShardedJedis,使其能够根据key进行分片,且采用一致性hash算法进行分片计算

5、添加zk对应的配置文件节点监听,当节点数据发生变化时,重新根据redis连接资源

6、对每个shard添加订阅主从变更数据的监听,当收到sentinel主从变更单数据后,对于该shard的连接资源信息进行更新

二、进行redis 操作的时候

1、先根据key判断路由到哪个shard

2、然后根据读写策略从该shard中找到对应的主机或者丛机的连接资源

3、最后进行操作

4、操作完后归还redis操作的连接资源

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值