前言
Redis如今已经成为Web开发社区中最火热的内存数据库之一,而它的诞生距现在不过才4年。随着Web 2.0的蓬勃发展,网站数据快速增长,对高性能读写的需求也越来越多,再加上半结构化的数据比重逐渐变大,人们对早已被铺天盖地地运用着的关系数据库能否适应现今的存储需求产生了疑问。而Redis的迅猛发展,为这个领域注入了全新的思维。
Redis 凭借其全面的功能得到越来越多的公司的青睐,从初创企业到新浪微博这样拥有着几百台Redis服务器的大公司,都能看到Redis的身影。Redis也是一个名副其实的多面手,无论是存储、队列还是缓存系统,都有它的用武之地。
本书将从Redis的历史讲起,结合基础与实践,带领读者一步步进入Redis的世界。
目标读者
本书假定读者是Redis的新手,甚至可能连Redis是什么都没听说过。本书将会详细地介绍Redis是什么以及为什么要使用Redis,旨在能够让读者从零开始逐步晋升为一个优秀的Redis开发者。
本书还包含了很多Redis实践方面的知识,对于有经验的Redis开发者,大可以直接跳过已经掌握的内容,只阅读感兴趣的部分。每章的引言都简要介绍了本章要讲解的内容,供读者参考。
本书并不需要读者有任何Redis的背景知识,不过如果读者有Web后端开发经验或Linux系统使用经验,阅读本书将会更加得心应手。
组织结构
第1章介绍了Redis的历史与特性,主要回答两个初学者最关心的问题,即Redis是什么和为什么要使用Redis。
第2章讲解了如何安装和运行Redis。如果你身旁的计算机没有运行Redis,那么一定不要错过这一章,因为本书后面的部分都需要读者最好能一边阅读一边实践,以提高学习效率。本章中还会介绍Redis命令行客户端的使用方法等基础知识,这些都是实践前需要掌握的知识。
第3章介绍了Redis的数据类型。本章讲解的不仅是每个数据类型的介绍和命令的格式,还会着重讲解每个数据类型分别在实践中如何使用。整个第3章会带领读者从零开始,一步步地使用 Redis构建一个博客系统,旨在帮助读者在学习完本章的内容之后可以直接在自己的项目中上手实践Redis。
第4章引入了一些Redis的进阶知识,比如事务和消息系统等。同样本章还会继续以博客系统为例子,以实践驱动学习。
第5章介绍了如何在各个编程语言中使用 Redis,这些语言包括 PHP、Ruby、Python 和Node.js。其中讲解每种语言时最后都会以一个有趣的例子作为演示,即使你不了解某些语言,阅读这些例子也能让你收获颇丰。
第6章展示了Redis脚本的强大功能。本章会向读者讲解如何借助脚本来扩展Redis,并且会对脚本一些需要注意的地方(如沙盒、随机结果等)进行着重介绍。
第7章介绍了运维方面的知识,包括持久化、复制等,并向读者推荐了几个第三方的Redis管理工具。
附录A收录了Redis命令的不同属性,以及属性的特征。
附录B收录了Redis部分配置参数的章节索引。
排版约定
本书排版使用字体遵从以下约定。
●等宽字:表示在命令行中输入的命令以及返回结果、程序代码、Redis的命令(包括命令语句和命令定义)。
●等宽斜体字(或夹在其中的中文楷体字):表示命令或程序代码中由读者自行替换的参数或变量。
●等宽粗体字:表示命令行中用户的输入内容、伪代码中的Redis命令。
●命令行的输入或输出以如下格式显示:
$redis-cli PING
PONG
●程序代码以如下格式显示:
var redis=require("redis");
var client=redis.createClient();
//将两个对象JSON 序列化后存入数据库中
client.mset(
'user:1',JSON.stringify(bob),
'user:2',JSON.stringify(jeff)
);
代码约定
本书的部分章节采用了伪代码来讲解,这种伪代码类似Ruby和PHP,如:
def hsetnx($key,$field,$value)
$isExists=HEXISTS $key,$field
if $isExists is 0
HSET $key,$field,$value
return 1
else
return 0
其中变量使用$符号标识,Redis命令使用的粗体表示并省略了括号以便于阅读。在命令调用和print等语句中没有$符号的字符串会被当做字符串字面值。
附加文件
本书第5章中每一节都包含了一个完整的程序,通常来讲读者最好自己输入这些代码来加深理解,当然如果要先看到程序的运行结果再开始学习也不失为一个好办法。
这些程序代码都存放在GitHub上(https://github.com/luin/redis-book-assets),可以在 GitHub 上查看与下载。
致谢
在本书写作的过程中,得到了很多朋友的帮助。请允许我在这里占用少许篇幅,向他们致以诚挚的谢意。
感谢人民邮电出版社的杨海玲老师对本书的支持,没有她的悉心指导,本书就无法顺利完成。
感谢刘亚晨、李欣越、寇祖阳和余尧,他们承担了许多额外的工作,使得我可以全身心地投入到写作中。
感谢所有浏览本书并提供意见和建议的人们:张沈鹏、陈硕实、刘其帅、扈煊、李其超、朱沖宇、王诗吟、黄山月、刘昕、韩重远、李申申、杨海朝、田琪等。感谢你们的支持。
另外还要感谢“宋老师”,是的,就是书中的主人公之一。几年前,我刚创业时,办公场所是和某个教育机构合租的,宋老师是该机构的一名英语老师,同时他也是国内一个知名的嘻哈乐团成员之一。他平日风趣的谈吐带给了我们很多欢乐,伴随我们走过了艰苦的创业初期,而我接触Redis,也正是从这段时间开始的。
最后,感谢我的父母和女朋友马梦妍,你们是我生命中最重要的人,感谢你们的理解和支持。
如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。
绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
发布评论