两台服务器,一个放程序的,一个放数据库换季,redis装在哪个服务器上好

两台服务器,一个放程序的,一个放数据库换季,redis装在哪个服务器上好,第1张

应用Redis实现数据的读写,同时利用队列处理器定时将数据写入mysql,此种情况存在的问题主要是如何保证mysql与redis的数据同步,二者数据同步的关键在于mysql数据库中

主键,方案是在redis启动时去mysql读取所有表键值存入redis中,往redis写数据时,对redis主键自增并进行读取,若mysql更新

失败,则需要及时清除缓存及同步redis主键。Stringtbname="login"//获取mysql表主键值--redis启动时

longid=MySQL.getID(tbname)//设置redis主键值--redis启动时

redisService.set(tbname,String.valueOf(id))System.out.println(id)longl=redisService.incr(tbname)

System.out.println(l)Loginlogin=newLogin()login.setId(l)

login.setName("redis")redisService.hmset(String.valueOf(login.getId()),login)booleanb=MySQL.insert("insertintologin(id,name)values("+login.getId()+",'"+login.getName()+"')")

/****队列处理器更新mysql失败:**清除缓存数据,同时主键值自减*/if(!b)

{redisService.delKeyAndDecr(tbname,"Login:"+String.valueOf(login.getId()))}System.out.println(redisService.exists("Login:"+String.valueOf(login.getId())))System.out.println(redisService.get(tbname))

在两台服务器上分别部署一套Redis,两台服务器共用一个浮动IP,两套Redis实例则做Master-Slave,始终由浮动IP指向服务器上的Redis实例做Master。使用HA软件来检测Redis实例的运行情况。

如果从机出现异常,则重启从机Redis实例;

当主机出现异常,则进行如下操作:

1) Slave主动断开与Master的连接(通过HA软件调用预置脚本实现),然后HA软件将浮动IP指向备机,进行主备机切换;

2) 切换后,HA软件尝试重启现备机的Redis实例,重启成功后将其配置为现主机Redis实例的Slave,然后开始主从复制。


欢迎分享,转载请注明来源:夏雨云

原文地址:https://www.xiayuyun.com/zonghe/581077.html

(0)
打赏 微信扫一扫微信扫一扫 支付宝扫一扫支付宝扫一扫
上一篇 2023-07-06
下一篇2023-07-06

发表评论

登录后才能评论

评论列表(0条)

    保存