zoukankan      html  css  js  c++  java
  • redis为什么内存不宜过大

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

    1 主库宕机

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

    2 扩容问题

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

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

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

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

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



    作者:不懒狮Blaise
    链接:https://www.jianshu.com/p/ec7aa3f916c5
    来源:简书
    简书著作权归作者所有,任何形式的转载都请联系作者获得授权并注明出处。
  • 相关阅读:
    HashMap 使用小结
    linux下的文本处理命令sed&awk&grep
    HashMap和Hashtable的区别 .Properties
    Linux awk简简单单
    linux配置java环境变量(详细)
    linux后台运行程序及恢复
    为什么需要 单例设计模式(Singleton)?
    Linux文本处理命令
    使用Perf4J进行性能分析和监控
    sqlldr的用法总结
  • 原文地址:https://www.cnblogs.com/ExMan/p/11041479.html
Copyright © 2011-2022 走看看