当前位置:首页 > 范文 > 《Redis设计与实现》的读后感大全

《Redis设计与实现》的读后感大全

格式:DOC 上传日期:2024-12-11 19:30:29
《Redis设计与实现》的读后感大全
时间:2024-12-11 19:30:29   小编:

《Redis设计与实现》是一本深入浅出的介绍Redis数据库的著作。作者通过详细解释Redis的设计原理、数据结构和内部实现机制,帮助读者深入理解Redis的工作机制和优势。同时,本书还介绍了Redis在实际应用中的各种场景和优化技巧,为读者提供了丰富的实践经验和参考。

Redis设计与实现读后感(一)

作者写的很不错,深浅皆有,表述也很清楚。

我是从零开始学redis,先看完这本书,再做的实践。目前一月有余,也算小有所得,回头再看这本书,依然有嚼头,有所得,原理讲的够细致。

用的时候随手翻翻,也是不错的。

至于实战,百度这么多攻略可查,写在书里的话完全是骗稿费,远远不如讲原理来的有价值。

Redis设计与实现读后感(二)

这本书很顺利的看完了,收获很多。尽管本书有部分内容陈述有点啰嗦,但也正是这一部分啰嗦把复杂内容讲的非常清晰和易懂,能把不易理解的原理讲的清晰易懂本身就是高水平的体现。本书作者就是这一代表,此书值得推荐。

另外,本书中使用大量图表、伪代码,也让读者理解底层实现有非常大的帮助,另外,作者的语句表达也很流畅。

Redis设计与实现读后感(三)

大年初一~ 今天刚看完第11章,这是我到目前为止看的最舒服的一本书,作者用大量的图去解释意图,C代码也注释的非常清晰,Redis的五种数据结构说的很清楚,RBD和AOF两种持久化介绍的直截了当,篇幅不多,但是分别阐述了两者的优劣,作为了解是很足够了。Redis在工作里用处很大,打算年里看完这本,上班后再抽空去看一下《Redis实战》~

Redis设计与实现读后感(四)

没有能力去一行一行的去阅读源码,只能拜托经典书籍,增加自己的能力。

不得不说,是一本好书。此书虽然没有讲太多的redis的使用,但从底层源码及结构上分析redis。

最棒的是,在很多地方的讲解会有数据结构的图示,真是一目了然。阅读起来真是毫不费力。

不过读此书最好具备一定的数据结构的知识,这样读起来真是行云流水。

Redis设计与实现读后感(五)

本来是为应付面试读的(几次面试当中问到了好多Redis实现方面的问题:Redis如何实现expire、如何实现集群、sentinel作用、事务实现、哪类持久化更安全、各种数据结构的底层实现...), 结果在看了几章之后完全被吸引住了, 深入浅出, 读来流畅痛快, 有种"大陆侯俊杰"的感觉.

Redis设计与实现读后感(六)

本来是为应付面试读的(几次面试当中问到了好多Redis实现方面的问题:Redis如何实现expire、如何实现集群、sentinel作用、事务实现、哪类持久化更安全、各种数据结构的底层实现...), 结果在看了几章之后完全被吸引住了, 深入浅出, 读来流畅痛快, 有种"大陆侯俊杰"的感觉.

Redis设计与实现读后感(七)

一直听说redis源码很简单,结构也简单。很好的新手入门书籍, 要是里面再有些实践方案就好了, 不过书名能看出人家不是干这个的.

学过大学数据结构的, 都能随便看懂的好书, 有些东西平常在网上找文档, 零零碎碎偶尔这看到一点, 那看到一点, 有一本书, 通篇浏览过去, 确实好很多的。个人一直使用这种通篇浏览来复读和总结平常已看到过的零碎知识点。

个人觉得,有些例子有点过于繁琐了。

Redis设计与实现读后感(八)

第一时间入手,花了一个周末读完。总体来说很棒,比网站上的内容丰富了很多。

亮点:

1. 在源码层面,对Redis几乎所有特性都做了深入分析。

2. 每个章节都有很多生动的配图,便于理解。

3. 附带了注释版的Redis3.0源码,结合着看很爽。

挑刺:

1. 基本是讲原理,涉及实战经验较少。

2. 一些章节的描述稍微有一点点啰嗦。

推荐入手。

Redis设计与实现读后感(九)

算是进阶入门还行 缺少最新的HyperLogLog Geo 淘汰算法 pipeline介绍

建议看下序言 阅读本书指南

第一部分 必须 第二部分 可以 不用那么深究

第三部分 可选

第四部分的话 事务 发布于订阅 排序 可以看看

有一点伊文思 sort 命令后续的多个get 为什么是顺序敏感的呢

get认为是 条件过滤器 ,需要同时满足 应该 不介意get之间的顺序阿

Redis设计与实现读后感(十)

书的结构很清晰,从底层数据结构开始讲起,延伸到单机客户端服务器实现,事件机制,3.0版本的多机集群实现,以及独立功能的实现。原理阐述的很容易理解,可以看出作者对Redis源码确实下了一番功夫。如果只是对Redis的原理有兴趣,那么读这本书够了,但是想了解更多的实现细节,比如在重新分片过程中Redis是如何实现槽上某个键值对原子迁移的等问题,则需要自己去研读源码了。美中不足的地方在于作者没有将源码与讲解结合起来,而是给出的伪代码,虽然更加易于理解,但是总感觉少了点什么。看完这本书,再去看源码应该是一件相对容易的事情了。总体而言,是值得推荐的一本书,读完之后对nosql的理解感觉上了一个档次,而不仅仅停留在把它当做一个map的使用上。

Redis设计与实现读后感(十一)

有段时间因为工作原因研究下一些Nosql数据库,在查找资料时偶然发现了redis的很多推荐都指向这本书《Redis 设计与实现》,当时在网络上能找到v2.9版本的在线版本,冲着推荐便开始阅读,这本书一上来便是数据结构,还是有一定的阅读门槛的,因此初次阅读还是有一定难受的,后来硬着读了下去就发现其中的妙处了。时隔这么久,最近有机会开始阅读《Redis设计与实现》v3.0版本的新书,还是值得再次阅读一番的。

作者通过源码串联,这其实也是作者的强项和一直孜孜以倦而追求的,通过数据结构与对象、单机数据库的实现、多机数据库的实现、独立功能的实现等四部分组成,因为不是计算机专业出身,对于数据结构不是我的专长,所以大略的阅读了没有追求详细解读,这部分内容以后还是需要时间多多学习补一补。对于单机数据库、多机数据库就写的很详细,其中很多内容都通过源码进行原理解释,还是有些茅塞顿开的感觉的。另外中还大量使用图片来进行说明,我觉得对于原理的内容来说是个很好的写作方式,让人读图可知很多内容,比有些大段文字的描述要来的直接。

这就是有时很多大部头书籍也是从源码专业分析来的但是却看得如此费力的原因,缺少专业的图表说明了,并且书中都是说明书的解决缺少自己的理解。这本书作者还是不错的,尽可能再谈自己的理解。推荐想了解Redis的同学买一本仔细阅读下。

Redis设计与实现读后感(十二)

作为看过这本书网络旧版,以及读过redis源码的人,我认为这本书值得一读。与旧版相比,新版完全是重写了,添加了更多更详细的内容,可以看出作者的用心与诚意。而书中并没有简单的粘贴源码或者陷入代码级别的细节中,而是将源码中重要的逻辑和思想抽象出来,深入浅出做讲解。比如第二章2.2 “SDS与C字符串的区别”, 就很好的解释了为什么redis要采用sds的设计,让人能从中学习到redis设计的思想。书中的讲解配有大量的图,一般结合具体的例子,理解起来十分容易。

无论是只是想要理解redis设计的人,还是想要进一步深入阅读源码的人,这本书都是十分值得一读的。

勘误

P91页,9.2节的例子中:

redis[2]> SET msg"another world"

msg与"another world"间少了空格。

P103页,PEXPIREAT的伪代码中:

return0

return 与0间少了空格。

P185页, 以下这句话:

“所以这两个属性记录的事件的精确度并不高:

1. 服务器只会在打印日志,更新服务器的lru时钟,决定是否执行持久化任务,计算服务器上线时间这类对时间精度要求不高的功能上”

这句话感觉没说完,应该是“...的功能上使用这两个属性”

疑问:

21.6节“limit选项的实现”,说会对键进行全排序后取出limit个元素。但是我印象中redis是采用了部分快排(partial quick sort)的算法,即只对一部分的元素排序。

Redis设计与实现读后感(十三)

这是2016年目前读到的最有价值技术书籍!

全书读完最有收获的是第一部分:数据结构与对象

起初没明白为什么会讲数据结构,并且还是C语言-源代码

不过还好,内容安排循序渐进,虽然第一遍看时有些吃力

但是细细琢磨,配着书中丰富的图例,真是竟然看透看懂了

看完第一部分,才意识到,原来后边的内容,全是基于这些数据结构实现的底层逻辑

所以这一部分阅读时尽量不要跳过!

并且对于把Java当主编程语言的同学绝对有很多值得学习和思考的地方!

能学习到新知,并让人产生思考,绝对是一本书的价值体现!

全书作者的文字表达能力虽有不是很通顺的地方,但是图例,完美地弥补了这一点

图例太丰富,太直白,有时候简直比文字都好理解,这一点太佩服作者了!

第二,三部分:单机/多机数据库的实现

既然读懂了Redis特有的数据结构及对象组织方式,那这部分对于理解Redis数据库的实现

简直是太简单了,并且读完有一种豁然开朗的感觉,假如要使用Java语言模拟实现,应该也不难!

第四部分:独立功能实现

全书只有这一部分有一小段儿看不懂:

在BITCOUNT 命令的实现中关于variable-precison SWAR算法的原理解释

虽配有文字和图例,但真是没看懂,没能全部理解!

所以,全书读下来,信息量太大,关于Redis的底层实现逻辑,终于有了个透彻的理解和学习

一开始以为本书会是一个实践指南类的,但是读完数据结构和数据库这两部分

才明白:源码已尽显,实践其实配合书中图例已经算是在边了解底层的同时边实践了

不过还是希望以后再版时,作者能加些实际生产使用的场景案例和运维相关的内容!

Redis设计与实现读后感(十四)

[阅读时间]

2016/3/29开始读,4/26读完全书。每一页用心阅读, 除了第372页对BITCOUNT使用的variable-precison SWAR算法没看懂之外,其他知识都完全理解。

[书与技术在当下的状态]

2014年3月份出的书(也就是我整两年后才开始读),作者当时用的是redis 2.9的版本,而到我看的时候Redis已经出到3.0.7,但这不影响阅读,因为对于2.8版本的复制和Sentinel(HA)功能,还有3.0版本的集群功能都有介绍。

[整本书的结构]

全书包括四个部分,整体来看是从小到大,从简入深,从细节到整体的技术传授。每一章节的内容则是以总-分-总的格式书写,我很喜欢每一章节的一开始和最后的重点回顾,我一般都先看一下这两部分,从而对技术有整体了解,然后带着疑问和需求去细看,回过头来看这种学习效果甚好。

第一部分,数据结构与对象。个人认为是全书最精彩的部分,完全值回书价。作者仔细诠释了redis使用者经常使用的的五种常用数据结构(字符串、列表、哈希、集合、有序集合)之下的六种“底层”数据结构(sds, list, dict, skiplist, intset, skiplist). 数据结构之美被redis和盘托出,连续存储结构与不连续存储结构各自的优缺点被Redis挖掘到了极致。而在数据激增时,数据结构的“变型”更让我兴奋,大数据思想也在其中有所体现。

第二部分和第四部分,单机模式和独立功能部分,表述的比较平淡。可是拿出来说的是AOF/RDB持久化功能。缓存的使用为数据一致性和安全性保驾护航,好的设计好的思想。

第三部分,多机实现。包括,复制、HA和集群。我认为这些是redis可以称霸缓存级别数据库的关键所在。作者虽然书写的有些啰嗦,但无碍全局把控,核心设计思想都描述到位。回答了我掉电或短线后的数据如何保护这个问题。但是,对于HA和集群在功能方面的区别,我个人感觉写的不是很清晰,应该可以列一个表格做一下对比。

[总结]

在TeaHour(一个Ruby的Podcast)有一期,主持人推荐了这本书,当时我正看这本书看得痴迷,一听到有同好者,会心一笑。确实是好书一本,尤其是在知道作者是一位90后,并且钻研redis源码多年的份子上。我想是作者对Redis的这份激情,感染了读者们。当然他也很好地诠释了数据结构是如何与NoSQL结合,从而绽放精彩与完美的。

Redis设计与实现读后感(十五)

Redis 整体基于 Event-Loop 结构设计,可以说,是所有基于此模式的典范;

本书一个做得很好的地方,是有一个很清晰的脉络,从书的组织中,不难看出,Redis 大概可以分成 4 层:

1)基础数据结构层

2)Redis 对象结构层

3)Redis DB 层

4)Redis 服务器层

首先,对于基础数据结构,关键是:SDS、链表、字典、跳表、整数集合、ziplist( ziplist 是一个很有趣的结构);他们构成了实现 redis 其他功能的基础;

其次,对于 Redis 对象结构,则是基于基础数据结构实现,外面通过 struct 包了一层,用指针指向具体类型,还有 type 字段标识多态,refcount 实现引用计数(可复用),空转时长(实现 lru,在 maxmemory 开启时使用); 结构包括了:字符串(embstr,连续分配 redisobject & sds 内存,减少分配次数)、hash( < 64 字节用ziplist,反之用 字典)、集合(都是整数,< 512 用 intset,反之用字典)、链表(< 64 字节用 ziplist,反之用 linkedlist);有序集合(<64 用ziplist,反之用 skiplist + 字典);

可以看出,redis 对实际数据结构进行了很多优化,对于 少空间结构用采用连续分配,能更好地使用计算机体系的缓存,这是个两点;

接着,是 db 层,一个 server 由 N 个 db 实现;每个 db 包含了一个指向 键-值 (key-value)空间的字典,一个指向键-超时(key-expire)空间字典,以及一个 指向 键-客户端列表的字典(watched keys- client list);

当然,怀疑 timed_events(事件也是 rdisdb 的一个成员,不过书中没讲)

可见,db 层,实现了 redis 的基础命令,不仅仅是数据结构,还包括了他们生命周期的管理;

最后,server 层,在 db 的基础上,多了:

1)pub-sub 功能:哪些 client 订阅了哪些 key

2)client 管理:有哪些 client,他们缓冲的命令和 reply(事务)、是否为 dirty(watch时候使用)、

3)aof 缓冲区:存放所有待复制的

4)集群管理:包括主服务器地址、复制积压缓冲区(当然,书里没说,应该也在这里)和 cluster state(槽、路由表等等)

总体来说,书很不错,看过对 redis 的套路能有所认识 ... 书更多地是提供体系化的知识和整体图景,细节后面看文档不中啦~~~

还剩页未读,是否继续阅读? 继续免费阅读

下载此文档

范文

Powered 2024 版权所有 ICP备666666号

付费下载
付费获得该文章下载权限
限时特价 2.00
原价:¥10.00
在线支付
付费复制
付费后即可复制文档
特价:2.00元 原价:10.00元
微信支付
x
提示:如无需复制,请不要长按屏幕影响阅读体验
付费下载
付费后即可下载文档
特价:2.00元 原价:10.00元
微信支付
x
付费下载
扫一扫微信支付
支付金额:2.00