阅读 232

想要精通Redis?这篇文章不得不看,Redis之父带你实战实践

前言

Redis的诞生

Redis是我在大约3年前为了解决一个实际问题而创造出来的: 简单来说,当时我在尝试做一件使用硬盘存储关系数据库( on-disk SQL database )无法完成的事情——在一台我能够支付得起的小虚拟机上面处理大量写人负载。

我要解决的问题在概念上并不复杂:多个网站会通过- -个小型的JavaScript追踪器( tracker)连续不断地向我的服务器发送页面访问记录(pageview),而我的服务器需要为每个网站保存一定数量的最新页面访问记录,并通过网页将这些记录实时地展示给用户观看。

在最大负载达到每秒数千条页面记录的情况下,无论我使用什么样的数据库模式( schema ),无论我如何进行优化,我所使用的关系数据库都没办法在这个小虚拟机上处理如此大的负载。因为囊中羞涩,我没办法对虚拟机进行升级,并且我觉得应该有更简单的方法来处理一个由推入值组成的列表。最终,我决定自己写一个实验性质的内存数据库原型( prototype),这个数据库使用列表作为基本数据类型,并且能够对列表的两端执行常数时间复杂度的弹出(pop) 和推入(push)操作。长话短说吧,这个内存数据库的想法的确奏效了,于是我用C语言重写了最初的数据库原型,并给它加上了基于子进程实现的持久化特性,Redis 就这样诞生了。

——Salvatore Sanfilippo,“Redis 之父”

Redis实战

在我看来,Redis生态系统中进步最为明显的一个地方,就是redis.io网站以及Redis Google Group 这些由用户和贡献者组成的社区。数以千计的人通过GitHub的问题反馈系统参与到了这个项目里面,他们为Redis编写客户端库、提交补丁并帮助其他遇到麻烦的用户。

时至今日, Redis仍然是一个 BSD授权的社区项目,它没有那些需要付钱才能使用的闭源插件或者功能增强版。Redis的参考文档非常详细和准确,在遇到问题时也很容易就可以找到Redis开发者或者专家来为你排忧解难。

Redis始于实用主义——它是一个程序员因为找不到合适的工具来解决手头上的问题而发明的,这是我认为理论性书籍无法很好地介绍Redis的原因,这也是我喜欢《Redis实战》( Redis inAction)的原因:这本书是为那些想要解决问题的人而写的,它没有乏味地介绍API, 而是通过一系列引人入胜的例子深入地探究了Redis的各项特性以及数据类型。

值得一提的是,《Redis实战》同样来源于Redis社区:本书的作者Josiah在出版这本书之前,已经在很多不同的方面帮助了数以百计的Redis 用户——从模式设计到硬件 延迟问题,他的建议和贡献在Redis Group里随处可见。

本书另一个非常好的地方在于它介绍了服务器运维方面的主题:实际上大部分人在开发应用程序的同时也需要自己部署服务器,而理解服务器运维操作、了解正在使用的硬件和服务器软件的基本限制,有助于写出最大限度地利用硬件和服务器软件的应用程序。

综上所述,《Redis实战》将是一本把读者带人Redis世界、向读者指明正确方向从而避免常见陷阱的书。我认为《Redis实战》对于Redis的生态系统非常有帮助,Redis的用户应该都会喜欢这本书。

——Salvatore Sanfilippo,“Redis 之父”

深入浅出Redis

本书总共分为3个部分:第一部分对Redis进行了基本介绍,并展示了一些Redis的使用示例;第二部分对Redis的多个命令进行了详细的介绍,之后还介绍了Redis的管理操作以及使用Redis构建更复杂的应用程序的方法;第三部分介绍了如何通过内存优化、水平分片以及Lua脚本这3种技术来扩"展Redis。

第1章对Redis进行了基本介绍,列举了Redis 提供的5种数据结构,对比了Redis 与其他数据库之间的相同之处和不同之处,实现了一个可以对文章进行投票的简单文章聚合网站。

想要精通Redis?这篇文章不得不看,Redis之父带你实战实践

第2章介绍了如何使用Redis来提升应用程序的性能以及如何使用Redis来实现基本的网络分析。不太了解Redis的读者应该会从第2章开始逐渐明白Redis在最近几年变得越来越流行的原因——因为它简单易用,而且性能强劲。

想要精通Redis?这篇文章不得不看,Redis之父带你实战实践

第3章基本上是一个命令文档,它陆续介绍了Redis 的常用命令、基本事务命令、排序命令和过期时间命令,并给出了这些命令的使用示例。

想要精通Redis?这篇文章不得不看,Redis之父带你实战实践

第4章介绍了数据持久化、性能测试、故障恢复以及防止数据丢失等概念。这一章前几节介绍的内容都是和Redis管理有关的,而之后的4.4节和4.5节则深入地讨论了Redis事务和流水线命令的性能。

想要精通Redis?这篇文章不得不看,Redis之父带你实战实践

第5章介绍了将Redis用作数据库,并使用它来实现日志、计数器、IP所属地查找程序和服务配置程序的方法。

想要精通Redis?这篇文章不得不看,Redis之父带你实战实践

第6章介绍了一些对于规模日益增长的应用程序非常有用的组件,比如自动补全、加锁、任务队列、消息传递以及文件分发。

想要精通Redis?这篇文章不得不看,Redis之父带你实战实践

限于平台篇幅原因,同时为了大家更好的阅读,小白把Redis相关的文档都整理好了,感兴趣的程序猿(媛)可以 加微信:gyhycx7980   免费获取

目录

第一部分 入门

想要精通Redis?这篇文章不得不看,Redis之父带你实战实践

第二部分 核心知识点

想要精通Redis?这篇文章不得不看,Redis之父带你实战实践


想要精通Redis?这篇文章不得不看,Redis之父带你实战实践

第三部分 进阶内容

想要精通Redis?这篇文章不得不看,Redis之父带你实战实践


想要精通Redis?这篇文章不得不看,Redis之父带你实战实践


关注下面的标签,发现更多相似文章
评论