Redis
林夕风暴
常在江边站,必有望海心
展开
-
如何通过Redis实现分布式锁
什么是分布式锁(进程之间)? 分布式锁是控制分布式系统或不同系统之间共同访问共享资源的一种锁的实现,如果不同的系统或同一个系统的不同主机之间共享了某个资源时,往往需要互斥来防止彼此干扰,进而保证一致性 分布式锁需要解决的问题 互斥性 任意时刻只能有一个客户端获取锁,不能同时有两个客户端获取到锁 安全性 锁只能被持有该锁的客户端删除,不能由其他客户端删除 死锁 获取锁的客户端因为某些原因而宕机而未能释放锁,其他客户端再也无法获取到该锁而导致了死锁,此时需要有机制来避免这个问题的发生 容错 当部分节点,比如r原创 2020-05-23 10:42:09 · 203 阅读 · 0 评论 -
Redis和Mysql数据库数据一致性问题
双库数据一致性问题产生的原因 Redis与Mysql双库的数据一致性问题为何会出现呢? 其实我们可以考虑这么一个业务场景:我们需要更新部分数据,我们首先更新数据库数据,然后清除Redis缓存中的数据。但是数据库更新操作成功了,然而Redis清除缓存出现异常了,这样会导致出现这么一种情况:数据库中的数据已经更新为最新数据,但是Redis缓存中的数据依旧还是老数据,这时候就会出现Redis与Mysql...原创 2020-05-08 14:11:11 · 1363 阅读 · 0 评论 -
Redis的缓存穿透、缓存击穿和缓存雪崩问题
缓存穿透: 关注点:要查询的数据缓存中没有,数据库中也没有 情景:就是在使用了缓存的基础上,去查询一个缓存中没有,数据库中也没有的空数据,也就是压根不存在的数据 如果被人写一个程序去频繁的调用这个查询空数据的请求,那么就有可能把数据库搞崩溃 解决方案: 1)缓存空对象: 第一次查询缓存中没有,去查询数据库也没有,然后我们把查询关键字当做缓存的key,然后对应的value用空对象代替,然后将这条数据...原创 2020-05-07 13:54:17 · 211 阅读 · 0 评论