如何在Redis主从集群中通过Redisson限制仅向主节点写入?
Redisson主从集群实现严格读写分离(写仅主节点,读仅从节点)
Redisson在主从模式下,默认所有写操作都会路由到主节点,你无需额外配置就能保证写请求仅发往主节点,结合你已知的readMode=SLAVE配置,即可实现完全的读写分离。
程序化配置示例
Config config = new Config(); config.useMasterSlaveServers() // 指定主节点地址 .setMasterAddress("redis://your-master-ip:port") // 添加从节点地址,支持多个 .addSlaveAddress("redis://your-slave-ip1:port", "redis://your-slave-ip2:port") // 设置读操作仅从从节点获取 .setReadMode(ReadMode.SLAVE) // 显式指定写操作仅发往主节点(默认即为MASTER,显式配置可提升可读性) .setWriteMode(WriteMode.MASTER); RedissonClient redisson = Redisson.create(config);
YAML配置文件示例
masterSlaveServersConfig: masterAddress: "redis://your-master-ip:port" slaveAddresses: - "redis://your-slave-ip1:port" - "redis://your-slave-ip2:port" readMode: SLAVE writeMode: MASTER
关键说明
WriteMode.MASTER是主从模式下的默认写路由策略,显式配置可以让配置逻辑更清晰,避免后续修改时出现误操作。- 当
readMode设为SLAVE时,所有读操作(如get、hgetAll等)会被均匀分配到各个从节点执行;而所有写操作(如set、hset、del等)会强制发送到主节点,由主节点完成数据同步到从节点的流程,完全匹配你需要的读写分离规则。
内容的提问来源于stack exchange,提问作者Yellowjacket
相关产品推荐
相关产品推荐

