关于redis 重启后,数据库中数据未及时加载到redis的问题

     现在项目用到了redis,这样极大的提高了数据提取的效率,但如果逻辑处理时不小心,就会给自己泡坑

           1.完全依赖后台提供的redis数据,当redis占用率高时进行重启时(一般都不进行落地),数据丢失。

           当数据还没有从数据库加载到redis时,而此时又有新数据写入,此时该 缓存再读取的时候,发现缓存存在,而直接进行显示。就造成显示的数据不正确

  的解决方式有二:

           在总入口做预加载,解决说redis重启的问题,但是当没有要缓存的数据的时候,就会造成频繁的扫库

           在插入数据的时候zadd 时,做exists的key存在性判断,只有在存在的情况下才加入缓存。当用的时候,做完全加载


          2.某些场景,要根据有没有缓存来判断数据是否显示。最好在处理不显示的时候,只清其内容,还不清其key,用内容来判断是否显示。

            否则,不显示就删除key的情况,就造成key不存在,而大面积的扫数据库,给数据库带来压力

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值