![](https://img-blog.csdnimg.cn/20201014180756738.png?x-oss-process=image/resize,m_fixed,h_64,w_64)
Redis
小雨山
这个作者很懒,什么都没留下…
展开
-
Redis的两种持久化方式对比
RDB: 描述:快照存储,具体是将Redis某一时刻的内存数据保存到硬盘文件中,默认保存文件名是dump.rdb。Redis服务启动时,会重新加载dump。rdb中的和数据到内存中恢复数据。 开启方式: (1)save,save是同步的,服务器会阻塞save命令之后的其他客户端的请求; (2)bgsave,bgsave是异步的,客户端发出bgsave请求时,Redis服务器主进程会forks一个子进程来同步数据,此时forks子进程是同步的,完毕后保存...原创 2020-05-11 23:43:24 · 175 阅读 · 0 评论 -
Redis一致性
首先需要明确的是,Redis是不能保证强一致性的。原因有以下两点: (1)Redis集群是异步复制,为了保证性能,客户端请求写入master后,master先回复客户端,然后才将写操作复制给slave。同步期间如果master宕机,slave升为主的期间就会丢失部分数据。 (2)Redis集群可能出现网络分区,这种情况下,一个客户端和至少一个主节点A在内的少数示例所在的分区会被孤立。因为客户端可以继续写入A,但是其他分区由于无法与这个分区通信,就会选举slave ...原创 2020-05-11 17:45:07 · 875 阅读 · 0 评论 -
Redis常见数据丢失情况分析及解决方案
异步复制导致的数据丢失: 描述: 由于master到slave的数据同步是异步的,也就是说master有请求时,master先反馈给客户端,然后才会向slave同步数据。期间可能存在部分数据还没有同步到slave,master就宕机了,然后这部分数据就丢失了。 解决方案: 设置min-slaves-lag的值为n秒,首先至少需要1个slave,一旦slave复制数据和同步的延迟超过n秒,那么就认为master宕机后损失数据过多,然后master拒绝写请...原创 2020-05-11 17:41:49 · 2587 阅读 · 0 评论 -
Redis 缓存穿透 缓存击穿 缓存雪崩 相关描述及解决方案
缓存穿透 描述: key对应数据在缓存和数据库中都不存在,因此,针对不存在的key,首先从缓存中拿不到,接着会从数据库中获取,然而,数据库中也不存在,这样的key如果比较密集,就会压垮数据库。 解决方案: (1)布隆过滤器,布隆过滤器是一种数据结构,优点是高效、占用空间小,缺点是返回结果是概率而不是确切的。我们一般用它来判断某个数据是否存在。原理上说布隆过滤器是一个bit向量或者bit数组,长度为m,如果我们需要映射一个值到布隆过滤器中,首先需要根据n...原创 2020-05-10 17:01:23 · 175 阅读 · 0 评论