我的工作系统由springweb应用程序组成,它使用redis作为事务计数器,并有条件地阻止事务请求。
交易情况如下:
检查数据是否存在(hget公司)
如果没有,则使用计数0保存新的,并设置过期时间(hset,过期)
增加计数值(增量)
如果增加的计数值达到特定的配置限制,它会将事务设置为“阻塞”(hset)
限值是我公司的经营方针。
这样的读写操作被一个接一个地立即请求。目前,我在一台机器上使用一个redis示例(我想得到redis ha,所以我需要从设备,但同时,我想所有读写redis的操作都只对主设备,因为从设备的数据释放延迟。
经过一些研究,我发现使用redis-ha的代理服务器是一个好主意。但是,使用代理,似乎不可能只使用主示例来接收请求,而只使用从示例来进行故障转移。有可能吗??
提前谢谢。
2条答案
按热度按时间hrysbysz1#
你需要的是redis sentinel。
使用redis sentinel,您可以从sentinel获取主地址,并使用主地址进行读/写。如果主机关闭,redis sentinel将进行故障转移,并选择一个新的主机。然后你可以从哨兵那里得到新主人的地址。
azpvetkf2#
当您将要使用莴苣作为redis集群驱动程序时,您应该将readpreference设置为master,并且应该可以正常工作—示例代码可能如下所示。
请参阅redis群集配置中的操作