Redis设计与实现读后感

曹驰
2023-12-01

前言

之前一直都是通过一些博客了解redis,也或多或少了解了redis,总感觉不是学的很完整,还是想着通过看书会比较体系一些。经过一顿搜索之后,我选择了Redis设计与实现,
链接:https://pan.baidu.com/s/1pd2f-Ttv4xPAG9YRfafZMA
提取码:zei3
这篇文章我并不打算写这本书的细节,如果你恰好想要了解redis的话,我推荐你可以自己去读一下,我这里提供一下我读完这本书的感想供你参考。

感想

这是我第一次看这本书,我花了3天左右,看完了前3章:数据结构与对象、单机数据库的实现、多机数据库的实现。最后一章的话我还没看完,但是我觉得可以等到有需要的时候看也不迟。
首先是第一章,讲了redis5种数据对象(字符串、列表、哈希、集合、有序集合)的底层实现,我明白了一种数据对象的底层会有不同的实现,比如列表在数据量比较小的时候就会用压缩列表(其实就是连续的内存块,记录偏移量来找下一个元素的位置而不是用指针),但是数据量变大之后就会用双向链表来代替压缩列表,因为连续的内存空间比较苛刻。然后还了解了SDS(动态字符串),哈希表(数组+链表),跳表的底层原理。
然后是第二章,我重点看了9、10、11,讲了redis作为数据库的底层有16个数据库,然后稍微浏览了一下RDB和AOF这两种持久化方式,因为之前看面经八股文就看的比较多了,所以看的比较快。
接着是第三章,讲了3种方式,复制这一部分讲的是redis主从复制的东西,哨兵(sentinel)讲的是如何动态的切换主从结点,防止主节点挂掉后要手动切换的操作,集群进一步的把redis种存的数据放在多台机器里面,这三章是一个层层递进的关系。集群和哨兵的区别就在于哨兵只有一个主节点,集群会有多个主节点,会把数据分成不同的槽存在不同的主节点立面,进一步增加了redis的高可用。
以上就是我读完前三章的感想了,其实静下来读也挺快的。

 类似资料: