redis和mysql怎样保持数据一致

 服务端获取数据首先从redis获取,如果redis中的数据被删除就从mysql中获取数据,在把数据更新到redis

  1.redis设置固定时间更新,时间不宜太长,缺点是修改mysql数据不会立即更新

 2.更新mysql时同时删除redis的数据,但这个操作不是原子性的,如果这个时候有其他线程插进来也有可能造成数据不一致

3.redis里的数据设置为不过期,定期将mysql的数据更新到redis

以上几种情况都不可避免的有短时间内的数据不一致

如果有场景需要必须同时一致,比如银行,秒杀之类,有以下几种方法

1,所有数据都从MySQL中获取,但性能会很差,无法在高并发场景下使用

2,加锁,保证更新数据和删除缓存的操作的原子性

posted @   思伊不见  阅读(185)  评论(0编辑  收藏  举报
相关博文:
阅读排行:
· TypeScript + Deepseek 打造卜卦网站:技术与玄学的结合
· Manus的开源复刻OpenManus初探
· AI 智能体引爆开源社区「GitHub 热点速览」
· 三行代码完成国际化适配,妙~啊~
· .NET Core 中如何实现缓存的预热?
点击右上角即可分享
微信分享提示