新書推薦:
《
控制权视角下的家族企业管理与传承
》
售價:HK$
87.4
《
冯友兰和青年谈心系列
》
售價:HK$
167.3
《
利他主义的生意:偏爱“非理性”的市场(英国《金融时报》推荐读物!)
》
售價:HK$
77.3
《
认知行为疗法:心理咨询的顶层设计
》
售價:HK$
99.7
《
FANUC工业机器人装调与维修
》
售價:HK$
99.7
《
吕著中国通史
》
售價:HK$
62.7
《
爱琴海的光芒 : 千年古希腊文明
》
售價:HK$
199.4
《
不被他人左右:基于阿德勒心理学的无压力工作法
》
售價:HK$
66.1
|
編輯推薦: |
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 安装Redis 7
2.1.1 在POSIX中安装 7
2.1.2 在macOS中安装 8
2.1.3 在Windows中安装 9
2.2 启动和停止Redis 10
2.2.1 启动Redis 11
2.2.2 停止Redis 13
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与Redis 111
5.1.1 安装 111
5.1.2 使用方法 112
5.1.3 简便用法 113
5.1.4 实践:用户注册登录功能 114
5.2 Ruby与Redis 118
5.2.1 安装 119
5.2.2 使用方法 119
5.2.3 简便用法 119
5.2.4 实践:自动完成 120
5.3 Python与Redis 123
5.3.1 安装 123
5.3.2 使用方法 123
5.3.3 简便用法 123
5.3.4 实践:在线的好友 124
5.4 Node.js与Redis 129
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与Lua 153
6.3.1 在脚本中调用Redis命令 153
6.3.2 从脚本中返回值 153
6.3.3 脚本相关命令 154
6.3.4 应用实例 155
6.4 深入脚本 158
6.4.1 KEYS与ARGV 158
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 开启AOF 167
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-cli 205
9.3.2 Medis 206
9.3.3 phpRedisAdmin 208
9.3.4 Rdbtools 210
附录A Redis命令属性 211
A.1 REDIS_CMD_WRITE 211
A.2 REDIS_CMD_DENYOOM 213
A.3 REDIS_CMD_NOSCRIPT 214
A.4 REDIS_CMD_RANDOM 215
A.5 REDIS_CMD_SORT_FOR_
SCRIPT 215
A.6 REDIS_CMD_LOADING 215
附录B 配置参数索引 217
附录C CRC16实现参考 219
|
|