redis的高性能、稳定性都是不用怀疑的,但若是redis塞入数据过多,内存过大,那若是出问题,那它可能会给咱们的就是灾难性的。redis
主库宕机,常见的策略为“切主”。具体为从该集群剩余从库中选出一个从库奖其升级为主库, 该从库升级为主库后再讲剩余从库挂载至其下成为其从库。
以上是一个完整的容灾过程,而代价最大的过程为从库的从新挂载,而非主库的切换。数据库
一个20G的redis扩容一个从库须要将近20分钟,这个紧急时刻20分钟业务可以容忍吗?
为何扩容还要业务呢?网络
网络很差的状况下, 从库觉得是断开链接,会自行从作主库,会致使从库雪崩。性能
Redis是单线程的内存数据库,在redis须要执行耗时的操做时,会fork一个新进程来作,好比bgsave,bgrewriteaof。 Fork新进程时,虽然可共享的数据内容不须要复制,但会复制以前进程空间的内存页表,这个复制是主线程来作的,会阻塞全部的读写操做,而且随着内存使用量越大耗时越长。线程