redis为什么内存不宜过大

Posted exman

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了redis为什么内存不宜过大相关的知识,希望对你有一定的参考价值。

redis的高性能、稳定性都是不用怀疑的,但如果redis塞入数据过多,内存过大,那如果出问题,那它可能会给我们的就是灾难性的。

1 主库宕机

主库宕机,常见的策略为“切主”。具体为从该集群剩余从库中选出一个从库奖其升级为主库, 该从库升级为主库后再讲剩余从库挂载至其下成为其从库。
以上是一个完整的容灾过程,而代价最大的过程为从库的重新挂载,而非主库的切换。

2 扩容问题

一个20G的redis扩容一个从库需要将近20分钟,这个紧急时刻20分钟业务能够容忍吗?
为什么扩容还要业务呢?

3 网络不好导致从库从做最终引发雪崩

网络不好的情况下, 从库以为是断开连接,会自行从做主库,会导致从库雪崩。

4 内存越大,触发持久化的操作阻塞主线程的时间越长

Redis是单线程的内存数据库,在redis需要执行耗时的操作时,会fork一个新进程来做,比如bgsave,bgrewriteaof。 Fork新进程时,虽然可共享的数据内容不需要复制,但会复制之前进程空间的内存页表,这个复制是主线程来做的,会阻塞所有的读写操作,并且随着内存使用量越大耗时越长。



作者:不懒狮Blaise
链接:https://www.jianshu.com/p/ec7aa3f916c5
来源:简书
简书著作权归作者所有,任何形式的转载都请联系作者获得授权并注明出处。

以上是关于redis为什么内存不宜过大的主要内容,如果未能解决你的问题,请参考以下文章

redis为什么内存不宜过大

Redis集群搭建及选举原理

聊聊Redis集群搭建及选举原理

关于Redis的工作模式

Redis Sentinel 实现高可用

redis持久化可用性及压力过大问题的解决