redis和mysql怎样保持数据一致
服务端获取数据首先从redis获取,如果redis中的数据被删除就从mysql中获取数据,在把数据更新到redis
1.redis设置固定时间更新,时间不宜太长,缺点是修改mysql数据不会立即更新
2.更新mysql时同时删除redis的数据,但这个操作不是原子性的,如果这个时候有其他线程插进来也有可能造成数据不一致
3.redis里的数据设置为不过期,定期将mysql的数据更新到redis
以上几种情况都不可避免的有短时间内的数据不一致
如果有场景需要必须同时一致,比如银行,秒杀之类,有以下几种方法
1,所有数据都从MySQL中获取,但性能会很差,无法在高并发场景下使用
2,加锁,保证更新数据和删除缓存的操作的原子性
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· TypeScript + Deepseek 打造卜卦网站:技术与玄学的结合
· Manus的开源复刻OpenManus初探
· AI 智能体引爆开源社区「GitHub 热点速览」
· 三行代码完成国际化适配,妙~啊~
· .NET Core 中如何实现缓存的预热?