首页 > 其他分享 >79、缓存---SpringCache---原理与不足

79、缓存---SpringCache---原理与不足

时间:2023-02-04 14:48:38浏览次数:44  
标签:缓存 SpringCache 过期 cache --- 加锁 79

/**
 * Spring-Cache的不足:
 * 1)读模式:
 *      缓存穿透:查询一个null的数据;====》解决:缓存空数据:spring.cache.redis.cache-null-values=true
 *      缓存击穿:大量并发进来同时查询一个正好过期的数据;====》解决:加锁;SpringCache默认是无锁的(sync=true加锁)@Cacheable(value = {"catagory"}, key = "'OneLevelCategory'", sync = true)  加的是本地锁,也足够了
 *      缓存雪崩:大量的key同时过期。====》解决:加随机时间(容易弄巧成拙,本来恰好过期时间不一样,加上随机时间后一样了)
 *                                        加上过期时间:spring.cache.redis.time-to-live=3600000(放入缓存时间不一样,过期时间也就不可能都一样)
 * 2)写模式:(缓存与数据库一致)
 *      1>、读写加锁
 *      2>、引入Canal,感知到Mysqk的更新去更新数据库
 *      3>、读多写少,直接去数据库查询就行
 *
 * 总结:
 *      常规数据(读多写少,及时性一致性要求不高的数据),完全可以使用Spring-Cache;写模式(只要缓存的数据加上过期时间就够了)
 *      特殊数据:特殊设计
 *
 *
 */

标签:缓存,SpringCache,过期,cache,---,加锁,79
From: https://www.cnblogs.com/morehair/p/17091436.html

相关文章