redis中缓存的数据与数据库数据一致性的方案

方式1:数据库保存数据,redis不persist

redis启动后,从数据库加载数据

不要求强一致实时性的读请求,都由redis处理
要求强一致实时性的读请求,由数据库处理
写请求有2种处理方式,由数据库处理

  • 应用先写入数据库,然后更新redis
  • 应用先写入数据库,然后其它daemon同步到redis

优点:redis启动不用处理redis数据和数据库不一致
缺点:redis启动给数据库很大的读压力

方式2:数据库和redis分别处理不同的数据类型

数据库处理要求强一致实时性的数据,例如金融数据、交易数据
Redis处理不要求强一致实时性的数据,例如网站最热贴排行榜

Redis和MySQL数据的同步,代码级别大致可以这样做:

  • : 读redis->没有,读MySQL->把mysql数据写回redis
  • : 写mysql->成功,写redis

并发不高的情况:

  • : 读redis->没有,读mysql->把mysql数据写回redis,有的话直接从redis中取;
  • : 写mysql->成功,再写redis;

并发高的情况:

  • : 读redis->没有,读mysql->把mysql数据写回redis,有的话直接从redis中取;
  • 写:异步,先写入redis的缓存,就直接返回;定期或特定动作将数据保存到mysql,可以做到多次更新,一次保存;

redis中缓存的数据与数据库数据一致性的方案

  • qq_43638135
    妲己再美究为妃: 博主没有想过自己接一些私活干吗?我现在还没毕业,但是我也确实听说外挂市场自动化游戏脚本市场挺火热的,并且报酬也很丰厚,但是具体的我也不是很清楚,求解答。 (1个月前 #47楼) 查看回复(2) 举报 回复
    22