Redis
小太阳啊凯
这个作者很懒,什么都没留下…
展开
-
redis分布式锁踩坑实践
Redis 版本一: redis判断是否有值,没有加值 导致问题:1、加锁不是个原子操作2、若加锁后宕机,系统死锁 版本二: redis加锁原子性操作(setnx),锁加过期时间 导致问题:1、若设置过期时间2s,程序执行3s,释放了别人的锁 版本三: redis加锁上放一个随机值,然后判断随机值删除锁 导致问题:1、删除是不是一个原子操作,也会出现删除别人的锁的情况 版本四: redis删除锁通...原创 2019-11-05 15:29:14 · 534 阅读 · 0 评论 -
Redis的过期策略和内存淘汰机制
过期策略 我们set key的时候,都可以给一个expire time,就是过期时间,指定这个key比如说只能存活1个小时,我们自己可以指定缓存到期就失效。 如果假设你设置一个一批key只能存活1个小时,那么接下来1小时后,redis是怎么对这批key进行删除的? 答案是:定期删除+惰性删除 所谓定期删除,指的是redis默认是每隔100ms就随机抽取一些设置了过期时间的key,检查其是否过期,如...原创 2019-11-02 14:35:36 · 124 阅读 · 1 评论 -
分布式缓存数据库一致性问题
缓存和数据库一致性问题,有很多解决方案,没有最完美的方案,只有适合自身业务的尽可能完美的方案。 缓存由于其高并发和高性能的特征,已经在项目中被广泛应用。 查询时一般先查询缓存,如果缓存命中的话,那么直接将数据返回。 如果缓存中没有数据(如失效,或者根本没设置数据),那么,应用程序先从数据库中查询数据,如果不为空,则将数据放在缓存中。 那么更新时,怎么处理缓存和数据库呢?先更新数据库后更新缓存?或...原创 2019-10-30 17:20:24 · 206 阅读 · 0 评论