本站支持尊重有效期内的版权/著作权,所有的资源均来自于互联网网友分享或网盘资源,一旦发现资源涉及侵权,将立即删除。希望所有用户一同监督并反馈问题,如有侵权请联系站长或发送邮件到ebook666@outlook.com,本站将立马改正
1.本书旨在帮助读者从基础开始了解Redis,由浅入深过渡到实践,以帮助读者尽快在实际项目中用上Redis,做到即学即用。 2.大部分章节采用“任务驱动”式讲解方法,虚构了角色—小白和宋老师,在介绍知识点前先设定一个实践任务,从而提高读者的阅读动力。 3.本书依据Redis 6.0版本进行讲解,相较于上一版中的Redis 3.0,新增了 多Redis使用场景的模块系统,读者也将领略到 多新技能。 4.读者按照书中提示操作,即可领取随书附赠的程序代码,并上手实际操作。 5.本书内容丰富,主要包含以下内容: ·介绍Redis的历史及特性,回答为什么要使用Redis; ·讲解如何在开发环境和生产环境中部署 Redis; ·通过实践看Redis诸多数据类型的适用场景; ·介绍事务、排序、管道、持久化和复制等技术; ·使用Redis实现任务队列; ·深度揭示Redis的存储结构,剖析Redis的存储空间优化方法; ·领略Redis脚本的魅力,了解脚本的细节和技巧; ·介绍Redis的哨兵和集群相关特性; ·基于Redis实现在线用户记录、标签补全和区间查找等实用功能;
本书是一本Redis的入门指导图书,以通俗易懂的方式介绍了Redis基础与实践方面的知识,包括历史与特性,在开发环境和生产环境中部署运行Redis,数据类型与命令,使用Redis实现事务、排序、消息通知、管道、Redis存储空间的优化,持久化等内容,并采用“任务驱动”的方式介绍了PHP、Ruby、Python和Node.js这4种编程语言的Redis客户端库的使用方法。
本书的目标读者不仅包括Redis新手,还包括已经掌握Redis使用方法的读者。对新手而言,本书的内容由浅入深且紧贴实践,让读者能够即学即用;对于已经了解Redis的读者,通过本书的大量实例以及细节介绍,也能发现很多新的技巧。
李子骅(Luin),毕业于北京航空航天大学,目前就职于Fallacy Labs公司,曾先后于阿里巴巴、街旁网任职,也担任过石墨文档技术总监。
第 1章 简介1
1.1 历史与发展1
1.2 特性2
1.2.1 存储结构2
1.2.2 内存存储与持久化3
1.2.3 功能丰富4
1.2.4 简单稳定4
第 2章 准备7
2.1 安装Redis7
2.1.1 在POSIX中安装7
2.1.2 在macOS中安装8
2.1.3 在Windows中安装9
2.2 启动和停止Redis10
2.2.1 启动Redis11
2.2.2 停止Redis13
2.3 Redis命令行客户端13
2.3.1 发送命令13
2.3.2 命令返回值14
2.4 配置15
2.5 多数据库16
第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 介绍32
3.3.2 命令34
3.3.3 实践36
3.3.4 命令拾遗38
3.4 列表类型39
3.4.1 介绍39
3.4.2 命令40
3.4.3 实践43
3.4.4 命令拾遗44
3.5 集合类型46
3.5.1 介绍47
3.5.2 命令47
3.5.3 实践50
3.5.4 命令拾遗52
3.6 有序集合类型55
3.6.1 介绍55
3.6.2 命令56
3.6.3 实践59
3.6.4 命令拾遗60
3.7 流类型63
3.7.1 介绍64
3.7.2 命令65
3.7.3 实践67
3.7.4 命令拾遗68
第4章 进阶71
4.1 事务71
4.1.1 概述72
4.1.2 错误处理73
4.1.3 WATCH命令74
4.2 过期时间76
4.2.1 命令76
4.2.2 实现访问频率限制之一79
4.2.3 实现访问频率限制之二80
4.2.4 实现缓存80
4.3 排序82
4.3.1 有序集合的集合操作82
4.3.2 SORT命令83
4.3.3 BY参数84
4.3.4 GET参数87
4.3.5 STORE参数88
4.3.6 性能优化89
4.4 消息通知89
4.4.1 任务队列90
4.4.2 使用Redis实现任务队列91
4.4.3 优先级队列92
4.4.4 “发布/订阅”模式93
4.4.5 按照规则订阅94
4.4.6 强大的流96
4.4.7 流与消费组98
4.5 管道101
4.6 节省空间102
4.6.1 精简键名和键值103
4.6.2 内 码优化103
第5章 实践111
5.1 PHP与Redis111
5.1.1 安装111
5.1.2 使用方法112
5.1.3 简便用法113
5.1.4 实践:用户注册登录功能114
5.2 Ruby与Redis118
5.2.1 安装119
5.2.2 使用方法119
5.2.3 简便用法119
5.2.4 实践:自动完成120
5.3 Python与Redis123
5.3.1 安装123
5.3.2 使用方法123
5.3.3 简便用法123
5.3.4 实践:在线的好友124
5.4 Node.js与Redis129
5.4.1 安装129
5.4.2 使用方法129
5.4.3 简便用法131
5.4.4 实践:IP地址查询132
第6章 脚本137
6.1 概览137
6.1.1 脚本138
6.1.2 实例:访问频率限制138
6.2 Lua语言139
6.2.1 Lua语法140
6.2.2 标准库149
6.2.3 cjson库和cmsgpack库152
6.3 Redis与Lua153
6.3.1 在脚本中调用Redis命令153
6.3.2 从脚本中返回值153
6.3.3 脚本相关命令154
6.3.4 应用实例155
6.4 深入脚本158
6.4.1 KEYS与ARGV158
6.4.2 沙盒与随机数159
6.4.3 其他脚本相关命令159
6.4.4 原子性和执行时间160
第7章 持久化163
7.1 RDB方式163
7.1.1 根据配置规则进行自动
快照164
7.1.2 执行SAVE或BGSAVE
命令164
7.1.3 执行FLUSHALL命令165
7.1.4 执行复制时165
7.1.5 快照原理165
7.2 AOF方式166
7.2.1 开启AOF167
7.2.2 AOF的实现167
7.2.3 同步硬盘数据169
第8章 集群171
8.1 复制171
8.1.1 配置172
8.1.2 原理174
8.1.3 图结构176
8.1.4 读写分离与一致性177
8.1.5 从数据库持久化177
8.1.6 无硬盘复制177
8.1.7 增量复制178
8.2 哨兵179
8.2.1 什么是哨兵179
8.2.2 马上上手180
8.2.3 实现原理183
8.2.4 哨兵的部署186
8.3 集群187
8.3.1 配置集群187
8.3.2 节点的增加191
8.3.3 插槽的分配191
8.3.4 获取与插槽对应的节点196
8.3.5 故障恢复197
第9章 管理199
9.1 安全199
9.1.1 可信的环境199
9.1.2 数据库密码200
9.1.3 命名命令202
9.2 通信协议202
9.2.1 简单协议202
9.2.2 统一请求协议204
9.3 管理工具205
9.3.1 redis-cli205
9.3.2 Medis206
9.3.3 phpRedisAdmin208
9.3.4 Rdbtools210
附录A Redis命令属性211
A.1 REDIS_CMD_WRITE211
A.2 REDIS_CMD_DENYOOM213
A.3 REDIS_CMD_NOSCRIPT214
A.4 REDIS_CMD_RANDOM215
A.5 REDIS_CMD_SORT_FOR_
SCRIPT215
A.6 REDIS_CMD_LOADING215
附录B 配置参数索引217
附录C CRC16实现参考219