![](https://img-blog.csdnimg.cn/20201014180756918.png?x-oss-process=image/resize,m_fixed,h_64,w_64)
java缓存
文章平均质量分 83
嗵呲咔嚓嗵
欢迎评论,如有异议或不理解的,一起研究讨论
展开
-
缓存与数据库的数据更新
缓存的更新策略更新数据库和Redis本身就不是原子操作,所以无论采取何种方式都不能保证强一致性,只能保证最终一致;只能尽可能降低不一致性发生的几率,不能从根本上完全避免。先更新数据库,在更新缓存业务角度对于读少的场景,浪费性能资源线程安全容易产生脏读。比如A线程更新数据库,B线程更新数据库;B线程更新缓存,A线程更新缓存先删除缓存,再更新数据库线程安全请求A进行更新操作,先删除缓存;请求B查询缓存,发现缓存失效,读取数据库,写入缓存;请求A将数据写入数据库.长时间读取到的都是脏数据解原创 2022-01-06 11:29:34 · 1075 阅读 · 0 评论 -
redis分布式锁的实现和优化
目前实现分布式锁的方式主要有数据库、Redis和Zookeeper三种,本文主要阐述利用Redis的相关命令来实现分布式锁。相关Redis命令SETNX如果当前中没有值,则将其设置为并返回1,否则返回0。EXPIRE将设置为秒后自动过期。GETSET将的值设置为,并返回其原来的旧值。如果原来没有旧值,则返回nil。EVAL与EVALSHARedis 2.6之后支持的功能,可以将一...转载 2019-03-26 13:31:49 · 337 阅读 · 0 评论