想要精通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 与其他数据库之间的相同之处和不同之处,实现了一个可以对文章进行投票的简单文章聚合网站。

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

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

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

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

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

目录

第一部分 入门

第二部分 核心知识点

第三部分 进阶内容

全部评论

相关推荐

评论
点赞
收藏
分享
正在热议
# 25届秋招总结 #
442570次浏览 4512人参与
# 春招别灰心,我们一人来一句鼓励 #
41986次浏览 533人参与
# 北方华创开奖 #
107439次浏览 599人参与
# 地方国企笔面经互助 #
7964次浏览 18人参与
# 同bg的你秋招战况如何? #
76743次浏览 563人参与
# 实习必须要去大厂吗? #
55775次浏览 961人参与
# 阿里云管培生offer #
120286次浏览 2220人参与
# 虾皮求职进展汇总 #
115687次浏览 886人参与
# 如果你有一天可以担任公司的CEO,你会做哪三件事? #
11584次浏览 287人参与
# 实习,投递多份简历没人回复怎么办 #
2454714次浏览 34857人参与
# 提前批简历挂麻了怎么办 #
149906次浏览 1977人参与
# 在找工作求抱抱 #
906039次浏览 9421人参与
# 如果公司给你放一天假,你会怎么度过? #
4757次浏览 55人参与
# 你投递的公司有几家约面了? #
33207次浏览 188人参与
# 投递实习岗位前的准备 #
1195950次浏览 18549人参与
# 机械人春招想让哪家公司来捞你? #
157635次浏览 2267人参与
# 双非本科求职如何逆袭 #
662248次浏览 7397人参与
# 发工资后,你做的第一件事是什么 #
12734次浏览 62人参与
# 工作中,努力重要还是选择重要? #
35815次浏览 384人参与
# 简历中的项目经历要怎么写? #
86920次浏览 1516人参与
# 参加完秋招的机械人,还参加春招吗? #
20133次浏览 240人参与
# 我的上岸简历长这样 #
452024次浏览 8088人参与
牛客网
牛客企业服务