理解Redis内存,首先需要掌握Redis内存消耗在哪些方面。
有些内存消耗是必不可少的,而有些可以通过参数调整和合理使用来规避内存浪费。
内存消耗可以分为进程自身消耗和子进程消耗。
Redis是典型的单线程架构,所有的读写操作都是在一条主线程中完成的。
当Redis用于高并发场景时,这条线程就变成了它的生命线。如果出现阻塞,哪怕是很短时间,对于我们的应用来说都是噩梦。
导致阻塞问题的场景大致分为内在原因和外在原因:
在分布式系统中为了解决单点问题,通常会把数据复制多个副本部署到其他机器,满足故障恢复和负载均衡等需求。
Redis也是如此,它为我们提供了复制功能,实现了相同数据的多个Redis副本。
复制功能是高可用Redis的基础,后面章节的哨兵和集群都是在复制的基础上实现高可用的。
复制也是Redis日常运维的常见维护点。因此深刻理解复制的工作原理与使用技巧对我们日常开发运维非常有帮助。
RDB持久化是把当前进程数据生成快照保存到硬盘的过程,触发RDB持 久化过程分为手动触发和自动触发。