谷粒商城——缓存的读写一致性

1.缓存一致性

在此之前需要介绍一下缓存更新(也叫缓存一致性)的两种模式:当对缓存中数据进行修改时,可以用双写模式或失效模式来更新缓存。双写模式指的是将修改后的数据就是写入数据库之后再去写缓存。失效模式指的是将修改后的数据就是写入数据库之后删除对应缓存,当有用户查询时再重新建立新的缓存。

2.不同类型的数据的上锁方式

  1. 对于实时性要求很强的数据,如果修改完数据库,需要保证缓存中的数据也更新为相应的最新值。此时需要在更新数据库之前加上写锁,在更新/删除完缓存后才释放写锁。

伪代码如下:

复制代码
lock.writeLock().lock();
updateDB();
updateCache()/deleteCache();
lock.writeLock().unlock();

2.如果对于数据实时性要求不强的数据(物流信息),可以采用为缓存设置过期时间,以达到过段时间重新更新获取缓存的目的。

相关推荐
rchmin19 小时前
Redis BitMap介绍及使用场景示例
数据库·redis·缓存
Go高并发架构_王工21 小时前
Redis未来展望:Redis 7.0新特性与技术发展趋势
数据库·redis·缓存
qq_455760851 天前
redis - 持久化
数据库·redis·缓存
qq_455760851 天前
redis - 事务
数据库·redis·缓存
Light601 天前
告别缓存浪费:No-Vary-Search,为你的网站性能注入“AI级”智能
缓存·性能优化·cdn·web性能·http缓存·no-vary-search·url参数
清水白石0081 天前
动态规划中的记忆化与缓存:原理、差异与 Python 实战指南
python·缓存·动态规划
遇见火星2 天前
Redis主从复制深度解析:数据高可用与负载均衡的核心方案
数据库·redis·缓存·负载均衡
Ahtacca2 天前
Redis 五大常用数据类型详解及 Java 客户端(RedisTemplate)操作实战
java·数据库·redis·学习·缓存
C_心欲无痕2 天前
nodejs - pnpm解决幽灵依赖
前端·缓存·npm·node.js