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

1.缓存一致性

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

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

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

伪代码如下:

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

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

相关推荐
零域码客17 小时前
Redis 双刃剑:缓存与分布式锁的本质区别
redis·分布式·缓存·并发控制·后端架构
野生技术架构师2 天前
Redis 和 MySQL 如何保证数据一致性?先更新数据库还是先删缓存,延迟双删、MQ、Canal 一次讲透
数据库·redis·缓存
愈努力俞幸运2 天前
token,context window,top_p,temperature,skill,Harness Engineering
数据库·redis·缓存
Patrick在香港2 天前
Claude API 成本直降90%:Prompt Caching 提示词缓存 Python 实战
python·缓存·prompt
NeilYuen3 天前
【vemory】高性能KV存储AOF方案设计
linux·c++·redis·缓存
LuminousCPP3 天前
数据结构基础篇(二):顺序表与链表全方位对比|从内存布局到 CPU 缓存理解底层差异
c语言·数据结构·经验分享·链表·缓存
spter。3 天前
Redis 与 Single-flight 的分工与协作
数据库·redis·缓存
清水白石0083 天前
Python 如何设计一个线程安全的缓存?从锁策略、LRU 到工程化实战
python·安全·缓存
小宋10213 天前
大模型应用如何控制成本与延迟:Token、缓存、流式和降级实战
人工智能·缓存
番茄炒鸡蛋加糖3 天前
项目技术点总结--四大核心技术+缓存
缓存