面试宝典系列-读《深入学习Redis(2):持久化》概要
原文链接: 深入学习Redis(2):持久化 Redis的5种对象类型(字符串、哈希、列表、集合、有序集合) 查看内存方法:info memory 内存碎片 是Redis在分配、回收物理内存过程中产生的。例如,如果对数据的更改频繁,而且数据之间的大小相差很大,可能导致redis释放的空间在物理内存中并没有释放,但redis又无法有效利用,这就形成了内存碎片。内存碎片不会统计在used_memory中。 内存碎片的产生与对数据进行的操作、数据的特点等都有关;此外,与使用的内存分配器也有关系:如果内存分配器设计合理,可以尽可能的减少内存碎片的产生。后面将要说到的jemalloc便在控制内存碎片方面做的很好。 解决内存碎片: 如果Redis服务器中的内存碎片已经很大,可以通过 安全重启的方式减小内存碎片 :因为重启之后,Redis重新从备份文件中读取数据,在内存中进行重排,为每个数据重新选择合适的内存dan元,减小内存碎片。 jemalloc作为Redis的默认内存分配器,在减小内存碎片方面做的相对比较好。jemalloc在64位系统中,将内存空间划分为小、大、巨大三个范围;每个范围内又划分了许多小的内存块单位;当Redis存储数据时,会选择大小最合适的内存块进行存储。 jemalloc划分的内存dan元如下图所示: 在Redis中,实现高可用的技术主要包括持久化、复制、哨兵和集群