读者来信:现在读《Redis设计与实现》和《Redis实战》还有用吗?

最近接到了读者 Minor 的来信, 询问我时至今日阅读《Redis设计与实现》(2014年出版)和《Redis实战》(2015年出版)是否合适, 以及学习 Redis 应该注意的问题等等。 考虑到最近有不少朋友也向我咨询过类似的问题, 故公开这封来信以及回复, 希望能给其他有类似问题的朋友以帮助。

来信

你好,健宏:

首先感谢你的对redis实战的翻译和撰写设计与实现, 以及还未出版的使用手册。

自我介绍一下, 我是一个Oracle DBA, 从业七八年, 我们同年出生。 做关系型数据库久了, 想学一下NoSQL的库, 首当其冲选择了Redis, 而显然最容易搜到的是你的书。

我读了实战这本书的前半段, 后半段偏应用和开发的对我来说有些吃力, 现在正在阅读你的设计与实现。 有个疑问想向您请教, 我看书中说的是3.0版本, 现在版本是5.05了应该, 您的书是否依然坚挺? 或者说我需要在学习您书的过程中注意些什么?

此外, 还请能多点拨一下在redis学习中最应该注意和关注的是什么。

非常感谢。

回复

Minor 你好!

很高兴收到你的来信,《Redis实战》和《Redis设计与实现》分别基于 Redis 2.6 和 3.0 编写 ,现在看来的确有些落后了, 但得益于 Redis 绝佳的向后兼容性,书中大多数内容即使在最新版 Redis 上也仍然是有效的。 不过考虑到上述两本书并未覆盖 Redis 4 和 5 的新功能,所以建议你在阅读完这两本书之后,再补充阅读一些最新的 Redis 资料和书本会比较好。

关于你提到学习 Redis 需要注意的地方,我觉得学习如何使用 Redis 并不难,它比你正在使用的 Oracle 或者其他传统关系式数据库都要简单得多, 但由于 Redis 还是一个高速发展的开源软件,它在设计和细节上还有很多不成熟和不完美的地方,所以如果在使用 Redis 的基础上, 还能够深入地了解 Redis 的内部构造,那么对于理解和使用 Redis 就会有事半功倍的效果。

不过我觉得这一点你已经做得不错了,毕竟开始阅读《Redis设计与实现》就已经开了一个好头。 当别人提起列表(List)的时候,他们可能想到的只是 LPUSH 、LRANGE 等命令本身, 但你想到的却是 LPUSH 命令如何将元素推入到列表底层的链表里面, 而 LRANGE 命令又是如何通过遍历列表底层的链表来获取每个列表元素的,这难道不是很酷吗?! :)

最后祝你阅读快乐,开卷有益!

黄健宏
2019.8.11