Redis使用手册
Redis 方面的集大成之作学习和使用 Redis 必不可少的一本书
- 对一百八十多个 Redis 命令进行了详细且深入的介绍,并提供了相应的执行示例和参考信息,无论是学习新命令还是回顾已知命令的用法,都会非常方便。
- 展示了锁、缓存、计数信号量、队列、分页、好友关系、自动补全、摇一摇、网址缩短器、唯一计数器、排行榜、登录会话等数十个实际可用的 Redis 应用程序的实现方法,帮助读者学习如何将 Redis 应用到实际开发中。(书中展示的所有应用程序代码都会以开源的方式公开。)
- 内容涵盖最新的 Redis 5,帮助读者将 HyperLogLog、位图(bitmap)、地理位置(GEO)、Redis 集群(cluster)、流(Stream)、模块(Module)等新特性知识全部收入囊中。
- 全书所有章节均经过精心设计和编排,既可以在学习 Redis 时用作教程,又可以在使用 Redis 的过程中用作参考书。
- 通过丰富的图示和详细的例子来展示 Redis 的关键技术,让知识不再枯燥难懂。
- 《Redis设计与实现》作者、《Redis实战》译者、《Redis命令参考》译者黄健宏(huangz)最新力作,学习 Redis 的权威之选。
购买
本书在以下网店或应用有售:
目录&试读
以下目录中可点击的部分为试读内容,你也可以下载 PDF 格式的试读文档 。
第一部分:数据结构与应用
- 字符串(String)
- SET:为字符串键设置值
- GET:获取字符串键的值
- GETSET:获取旧值并设置新值
- 示例:缓存
- 示例:锁
- MSET:一次为多个字符串键设置值
- MGET:一次获取多个字符串键的值
- MSETNX:只在键不存在的情况下,一次为多个字符串键设置值
- 示例:储存文章信息
- STRLEN:获取字符串值的字节长度
- 字符串值的索引
- GETRANGE:获取字符串值指定索引范围上的内容
- SETRANGE:对字符串值的指定索引范围进行设置
- 示例:给文章储存程序加上文章长度计数功能和文章预览功能
- APPEND:追加新内容到值的末尾
- 示例:储存日志
- 使用字符串键储存数字值
- INCRBY、DECRBY:对整数值执行加法操作和减法操作
- INCR、DECR:对整数值执行加一操作和减一操作
- INCRBYFLOAT:对数字值执行浮点数加法操作
- 示例:ID 生成器
- 示例:计数器
- 示例:限速器
- 重点回顾
- 散列(Hash)
- 散列简介
- HSET:为字段设置值
- HSETNX:只在字段不存在的情况下为它设置值
- HGET:获取字段的值
- 示例:实现短网址生成程序
- HINCRBY:对字段储存的整数值执行加法或减法操作
- HINCRBYFLOAT:对字段储存的数字值执行浮点数加法或减法操作
- 示例:使用散列键重新实现计数器
- HSTRLEN:获取字段值的字节长度
- HEXISTS:检查字段是否存在
- HDEL:删除字段
- HLEN:获取散列包含的字段数量
- 示例:实现用户登录会话
- HMSET:一次为多个字段设置值
- HMGET:一次获取多个字段的值
- HKEYS、HVALS、HGETALL:获取所有字段、所有值或者所有字段和值
- 示例:储存图数据
- 示例:使用散列键重新实现文章储存程序
- 散列与字符串
- 重点回顾
- 列表(List)
- LPUSH:将元素推入到列表左端
- RPUSH:将元素推入到列表右端
- LPUSHX、RPUSHX:只对已存在的列表执行推入操作
- LPOP:弹出列表最左端的元素
- RPOP:弹出列表最右端的元素
- RPOPLPUSH:将右端弹出的元素推入到左端
- 示例:先进先出队列
- LLEN:获取列表的长度
- LINDEX:获取指定索引上的元素
- LRANGE:获取指定索引范围上的元素
- 示例:分页
- LSET:为指定索引设置新元素
- LINSERT:将元素插入到列表
- LTRIM:修剪列表
- LREM:从列表中移除指定元素
- 示例:待办事项列表
- BLPOP:阻塞式左端弹出操作
- BRPOP:阻塞式右端弹出操作
- BRPOPLPUSH:阻塞式弹出并推入操作
- 示例:带有阻塞功能的消息队列
- 重点回顾
- 集合(Set)
- SADD:将元素添加到集合
- SREM:从集合中移除元素
- SMOVE:将元素从一个集合移动到另一个集合
- SMEMBERS:获取集合包含的所有元素
- SCARD:获取集合包含的元素数量
- SISMEMBER:检查给定元素是否存在于集合
- 示例:唯一计数器
- 示例:打标签
- 示例:点赞
- 示例:投票
- 示例:社交关系
- SRANDMEMBER:随机地获取集合中的元素
- SPOP:随机地从集合里面移除指定数量的元素
- 示例:抽奖
- SINTER、SINTERSTORE:对集合执行交集计算
- SUNION、SUNIONSTORE:对集合执行并集计算
- SDIFF、SDIFFSTORE:对集合执行差集计算
- 示例:共同关注与推荐关注
- 示例:使用反向索引构建商品筛选器
- 重点回顾
有序集合(Sorted Set)
ZADD:添加或更新成员
ZREM:移除指定的成员
ZSCORE:获取成员的分值
ZINCRBY:对成员的分值执行自增或自减操作
ZCARD:获取有序集合的大小
ZRANK、ZREVRANK:获取成员在有序集合中的排名
ZRANGE、ZREVRANGE:获取指定索引范围内的成员
示例:排行榜
ZRANGEBYSCORE、ZREVRANGEBYSCORE:获取指定分值范围内的成员
ZCOUNT:统计指定分值范围内的成员数量
示例:时间线
ZREMRANGEBYRANK:移除指定排名范围内的成员
ZREMRANGEBYSCORE:移除指定分值范围内的成员
ZUNIONSTORE、ZINTERSTORE:有序集合的并集运算和交集运算
示例:商品推荐
ZRANGEBYLEX、ZREVRANGEBYLEX:返回指定字典序范围内的成员
ZLEXCOUNT:统计位于字典序指定范围内的成员数量
ZREMRANGEBYLEX:移除位于字典序指定范围内的成员
示例:自动补全
ZPOPMAX、ZPOPMIN:弹出分值最高和最低的成员
BZPOPMAX、BZPOPMIN:阻塞式最大/最小元素弹出操作
重点回顾
HyperLogLog
HyperLogLog 简介
PFADD:对集合元素进行计数
PFCOUNT:返回集合的近似基数
示例:优化唯一计数器
示例:检测重复信息
PFMERGE:计算多个 HyperLogLog 的并集
示例:实现每周/月度/年度计数器
重点回顾
位图(bitmap)
SETBIT:设置二进制位的值
GETBIT:获取二进制位的值
BITCOUNT:统计被设置的二进制位数量
示例:用户行为记录器
BITPOS:查找第一个指定的二进制位值
BITOP:执行二进制位运算
示例:0-1矩阵
BITFIELD:在位图中储存整数值
示例:紧凑计数器
使用字符串命令对位图进行操作
重点回顾
地理坐标(GEO)
GEOADD:储存坐标
GEOPOS:获取指定位置的坐标
GEODIST:计算两个位置之间的直线距离
示例:具有基本功能的用户地理位置程序
GEORADIUS:查找指定坐标半径范围内的其他位置
GEORADIUSBYMEMBER:查找指定位置半径范围内的其他位置
示例:查找附近用户
GEOHASH:获取指定位置的 Geohash 值
使用有序集合命令操作 GEO 数据
重点回顾
流(Stream)
XADD:追加新元素到流的末尾
XTRIM:对流进行修剪
XDEL:移除指定元素
XLEN:获知流包含的元素数量
XRANGE、XREVRANGE:访问流中元素
XREAD:以阻塞或非阻塞方式获取流元素
示例:消息队列
消费者组
XGROUP:管理消费者组
XREADGROUP:读取消费者组中的消息
XPENDING:显示待处理消息的相关信息
XACK:将消息标记为“已处理”
XCLAIM:转移消息的归属权
XINFO:查看流和消费者组的相关信息
示例:为消息队列提供消费者组功能
重点回顾
第二部分:附加功能
Lua 脚本
EVAL:执行脚本
示例:使用脚本重新实现带有身份验证功能的锁
示例:实现 LPOPRPUSH 命令
SCRIPT LOAD 和 EVALSHA :缓存并执行脚本
脚本管理
内置函数库
脚本调试
重点回顾
持久化
RDB 持久化
AOF 持久化
RDB-AOF 混合持久化
同时使用 RDB 持久化和 AOF 持久化
无持久化
SHUTDOWN:关闭服务器
重点回顾
发布与订阅
PUBLISH:向频道发送消息
SUBSCRIBE:订阅频道
UNSUBSCRIBE:退订频道
PSUBSCRIBE:订阅模式
PUNSUBSCRIBE:退订模式
PUBSUB:查看发布与订阅的相关信息
示例:广播系统
重点回顾
模块
模块的管理
ReJSON 模块
RediSQL 模块
RediSearch 模块
重点回顾
第三部分:多机功能
Sentinel
启动 Sentinel
Sentinel 网络
Sentinel 管理命令
在线配置 Sentinel
实例:使用 redis-py 管理 Sentinel
重点回顾
集群
基本特性
搭建集群
实例:使用客户端连接集群
散列标签
打开/关闭从节点的读命令执行权限
集群管理工具 redis-cli
集群管理命令
槽管理命令
重点回顾
附录
- 附录 C :Redis 命令索引表
代码示例
《Redis使用手册》在书中包含了大量 Redis 应用程序示例,你可以通过访问以下页面来获取这些示例的源码:github.com/huangz1990/RedisGuide-code 。
勘误信息
查看《Redis使用手册》已知错误或报告你发现的错误,请访问此页面。
作者简介
本书作者黄健宏自 2011 年接触 Redis 起就一直在持续地学习和研究 Redis ,并通过写书、翻译、讲授课程等方式与大家分享他了解到的 Redis 知识。
黄健宏分别是《Redis 设计与实现》和《Redis 实战》这两本畅销 Redis 图书的作者和译者。与此同时他还长期翻译并维护着在线的中文 Redis 文档《Redis 命令参考》,这个文档每天都为数量众多的 Redis 使用者提供服务。
作为早期接触 Redis 并且一直深入研究 Redis 的技术人员,黄健宏对 Redis 的应用和源码有深入的了解,他希望通过这本《Redis使用手册》向读者传授最常用和最核心的 Redis 知识,帮助读者了解 Redis 和用好 Redis 。
关于黄健宏的更多信息以及他的联系方式可以在他的个人网站huangz.me上面找到。
© Copyright 2019, 黄健宏. Created using Sphinx 2.0.1.