Redis入门指南(第2版) pdf
内容简介
《Redis入门指南(第2版)》是一本Redis的入门指导书籍,以通俗易懂的方式介绍了Redis基础与实践方面的知识,包括历史与特性、在开发和生产环境中部署运行Redis、数据类型与命令、使用Redis实现队列、事务、复制、管道、持久化、优化Redis存储空间等内容,并采用任务驱动的方式介绍了PHP、Ruby、Python和Node.js这4种语言的Redis客户端库的使用方法。
作者简介
李子骅(Luin),北京航空航天大学软件学院2009级本科生,阿里巴巴研发工程师。先后工作于街旁网、微软亚洲研究院和楽ニュー株式会社。乐于将自己对技术的感悟与他人分享。
目录
第1章 简介 1
1.1 历史与发展 1
1.2 特性 2
1.2.1 存储结构 2
1.2.2 内存存储与持久化 3
1.2.3 功能丰富 3
1.2.4 简单稳定 4
第2章 准备 7
2.1 安装Redis 7
2.1.1 在POSIX系统中安装 7
2.1.2 在OS X系统中安装 8
2.1.3 在Windows中安装 9
2.2 启动和停止Redis 11
2.2.1 启动Redis 12
2.2.2 停止Redis 14
2.3 Redis命令行客户端 14
2.3.1 发送命令 14
2.3.2 命令返回值 15
2.4 配置 17
2.5 多数据库 17
第3章 入门 19
3.1 热身 19
3.2 字符串类型 21
3.2.1 介绍 22
3.2.2 命令 22
3.2.3 实践 25
3.2.4 命令拾遗 27
3.3 散列类型 32
3.3.1 介绍 33
3.3.2 命令 34
3.3.3 实践 37
3.3.4 命令拾遗 39
3.4 列表类型 40
3.4.1 介绍 41
3.4.2 命令 41
3.4.3 实践 44
3.4.5 命令拾遗 46
3.5 集合类型 48
3.5.1 介绍 48
3.5.2 命令 49
3.5.3 实践 52
3.5.4 命令拾遗 54
3.6 有序集合类型 57
3.6.1 介绍 57
3.6.2 命令 58
3.6.3 实践 62
3.6.4 命令拾遗 63
第4章 进阶 67
4.1 事务 67
4.1.1 概述 68
4.1.2 错误处理 69
4.1.3 WATCH命令介绍 70
4.2 过期时间 72
4.2.1 命令介绍 73
4.2.2 实现访问频率限制之一 75
4.2.3 实现访问频率限制之二 76
4.2.4 实现缓存 77
4.3 排序 78
4.3.1 有序集合的集合操作 78
4.3.2 SORT命令 79
4.3.3 BY参数 81
4.3.4 GET参数 83
4.3.5 STORE参数 84
4.3.6 性能优化 85
4.4 消息通知 85
4.4.1 任务队列 86
4.4.2 使用Redis实现任务队列 87
4.4.3 优先级队列 88
4.4.4 “发布/订阅”模式 90
4.4.5 按照规则订阅 91
4.5 管道 92
4.6 节省空间 93
4.6.1 精简键名和键值 94
4.6.2 内部编码优化 94
第5章 实践 103
5.1 PHP与Redis 103
5.1.1 安装 104
5.1.2 使用方法 104
5.1.3 简便用法 105
5.1.4 实践:用户注册登录功能 107
5.2 Ruby与Redis 111
5.2.1 安装 111
5.2.2 使用方法 111
5.2.3 简便用法 112
5.2.4 实践:自动完成 112
5.3 Python与Redis 116
5.3.1 安装 116
5.3.2 使用方法 116
5.3.3 简便用法 117
5.3.4 实践:在线的好友 117
5.4 Node.js与Redis 123
5.4.1 安装 123
5.4.2 使用方法 123
5.4.3 简便用法 125
5.4.4 实践:IP地址查询 127
第6章 脚本 131
6.1 概览 131
6.1.1 脚本介绍 132
6.1.2 实例:访问频率限制 132
6.2 Lua语言 133
6.2.1 Lua语法 134
6.2.2 标准库 143
6.2.3 其他库 147
6.3 Redis与Lua 147
6.3.1 在脚本中调用Redis命令 148
6.3.2 从脚本中返回值 148
6.3.3 脚本相关命令 149
6.3.4 应用实例 150
6.4 深入脚本 153
6.4.1 KEYS与ARGV 153
6.4.2 沙盒与随机数 154
6.4.3 其他脚本相关命令 154
6.4.4 原子性和执行时间 155
第7章 持久化 157
7.1 RDB方式 157
7.1.1 根据配置规则进行自动快照 158
7.1.2 用户执行SAVE或BGSAVE命令 158
7.1.3 执行FLUSHALL命令 159
7.1.4 执行复制时 159
7.1.5 快照原理 159
7.2AOF方式 160
7.2.1 开启AOF 160
7.2.2 AOF的实现 161
7.2.3 同步硬盘数据 162
第8章 集群 165
8.1 复制 165
8.1.1 配置 165
8.1.2 原理 168
8.1.3 图结构 170
8.1.4 读写分离与一致性 170
8.1.5 从数据库持久化 171
8.1.6 硬盘复制 172
8.1.7 增量复制 172
8.2 哨兵 173
8.2.1 什么是哨兵 174
8.2.2 马上上手 175
8.2.3 实现原理 177
8.2.4 哨兵的部署 180
8.3 集群 181
8.3.1 配置集群 182
8.3.2 节点的增加 185
8.3.3 插槽的分配 185
8.3.4 获取与插槽对应的节点 189
8.3.5 故障恢复 191
第9章 管理 193
9.1 安全 193
9.1.1 可信的环境 193
9.1.2 数据库密码 194
9.1.3 命名命令 194
9.2 通信协议 195
9.2.1 简单协议 195
9.2.2 统一请求协议 197
9.3 管理工具 197
9.3.1 redis-cli 198
9.3.2 phpRedisAdmin 199
9.3.3 Rdbtools 201
附录A Redis命令属性 203
附录B 配置参数索引 209
附录C CRC16实现参考 213
感悟与笔记
1:Redis是一个什么东西哪?
是一个内存数据库
2:Redis有什么特点哪?
具有内存的特点——快、断电即逝
具有数据的特点——主要用来存储数据,可以进行对数据的增删改查
3:我们用Redis主要是为什么哪?毕竟有好多种其他的数据库了?
我们使用这个东西,核心目标就是为了快,为了提高性能,我们不把他当做数据库来使用,我们把它当做缓存
4:缓存是啥玩意?
学习过计算机操作系统的也许都知道缓存是什么东西吧!如果没有学习过,并在北京工作的话,我想一定做过北京地铁吧!地铁上下班高峰的时候,使用围栏的方式将人流拦在列车之外的方式,类极了缓存的控制方式!
更通俗一点就是,我们将数据放到运行速度更快的地方,这样等我们使用的时候就能以更快的速度来获取了,这个更快的地方就是——缓存
5:Redis不是内存数据库吗?怎么又是缓存了哪?
因为他是内存数据库,所以他速度快,并且能存放数据,加上另外一个特性——数据的过期时间,这样他就能当做缓存来使用了!
6:我们在实际的开发中都是怎么使用redis这个缓存的哪?
我们首先将数据放入数据库中,然后通过手动或者定时器的方式将我们认为有效的数据放入redis中,并且为其设置一个过期时间,以后我们的程序依赖数据的时候就直接从缓存中获取!这样确实能够使程序的获取数据的速度变快很多很多的!不信自己试试吧!
7:我们使用缓存有什么需要注意的地方哪?
需要注意的地方估计不少,不过我只能想到以下几点而已:
1)防止缓存出现空档期,我们刷新缓存的时候应该先加入有效的数据,再删除无效的数据
2)合理的设计key,因为redis是通过键值对来存储数据的,设计的不好引起键的冲突就不好了,为了节省空间,最好长度也要合适才行
3)如果我们的数据获取全部依赖缓存,我们缓存必须高可用、高性能、易扩展、易维护才行
4)缓存的空间是有限的,所以,合适的过期时间以及空间不够时采用什么策略丢弃那些数据也挺重要的
5)要考虑好缓存不可用了怎么办?
会员免费下载
链接:https://pan.baidu.com/s/1KY2A1QIh4XbiO9tnV5XziQ
提取码: ****** 查看
成为本站VIP会员即可无限下载。 请先点击百度网盘,看资源是否还在,不在请点击链接通知站长补资源。
资源标签点击标签可查看对应分类的资源