本书主要分为三大部分,共20章。第一部分“数据结构与应用”介绍Redis最核心的九种数据结构,列举了操作这些数据结构的众多命令及其详细信息,并在其中穿插介绍了多个使用Redis命令构建应用序的示例。通过这些程序示例,读者可以进一步加深对命令的认识,并学会如何在实际中应用这些命令,从而达到学而致用的目的。第二部分“附加功能”介绍Redis在数据结构的基础上为用户提供的额外功能。其中包括数据库管理、自动过期功能、流水线与事务、Lua脚本、持久化、发布与订阅、模块管理等。
#Redis
#Redis核心
#数据结构
第1章引言
1.1#Redis简介
1.2内容编排
1.3目标读者
1.4预备工作
1.5执行命令
1.6配置服务器
1.7示例代码
1.8版本说明
1.9读者服务网站
1.10启程
第一部分数据结构与应用
第2章字符串
2.1SET:为字符串键设置值
2.1.1改变覆盖规则
2.1.2其他信息
2.2GET:获取字符串键的值
2.3GETSET:获取旧值并设置新值
示例:缓存
示例:锁
2.4MSET:一次为多个字符串键设置值
2.5MGET:一次获取多个字符串键的值
2.6MSETNX:只在键不存在的情况下,一次为多个字符串键设置值
示例:存储文章信息
2.7STRLEN:获取字符串值的字节长度
2.8字符串值的索引
2.9GETRANGE:获取字符串值指定索引范围上的内容
2.10SETRANGE:对字符串值的指定索引范围进行设置
2.10.1自动扩展被修改的字符串
2.10.2在值里面填充空字节
2.10.3其他信息
示例:给文章存储程序加上文章长度计数功能和文章预览功能
2.11APPEND:追加新内容到值的末尾
2.11.1处理不存在的键
2.11.2其他信息
示例:存储日志
2.12使用字符串键存储数字值
2.13INCRBY、DECRBY:对整数值执行加法操作和减法操作
2.13.1类型限制
2.13.2处理不存在的键
2.13.3其他信息
2.14INCR、DECR:对整数值执行加1操作和减1操作
2.15INCRBYFLOAT:对数字值执行浮点数加法操作
2.15.1处理不存在的键
2.15.2使用INCRBYFLOAT执行浮点数减法操作
2.15.3INCRBYFLOAT与整数值
2.15.4小数位长度限制
2.15.5其他信息
示例:ID生成器
示例:计数器
示例:限速器
2.16重点回顾
第3章散列
3.1散列简介
3.2HSET:为字段设置值
3.2.1使用新值覆盖旧值
3.2.2其他信息
3.3HSETNX:只在字段不存在的情况下为它设置值
3.4HGET:获取字段的值
3.4.1处理不存在的字段或者不存在的散列
3.4.2其他信息
示例:实现短网址生成程序
3.5HINCRBY:对字段存储的整数值执行加法或减法操作
3.5.1执行减法操作
3.5.2处理异常情况
3.5.3其他信息
3.6HINCRBYFLOAT:对字段存储的数字值执行浮点数加法或减法操作
3.6.1增量和字段值的类型限制
3.6.2执行减法操作
3.6.3其他信息
示例:使用散列键重新实现计数器
3.7HSTRLEN:获取字段值的字节长度
3.8HEXISTS:检查字段是否存在
3.9HDEL:删除字段
3.10HLEN:获取散列包含的字段数量
示例:实现用户登录会话
3.11HMSET:一次为多个字段设置值
3.11.1使用新值覆盖旧值
3.11.2其他信息
3.12HMGET:一次获取多个字段的值
3.13HKEYS、HVALS、HGETALL:获取所有字段、所有值、所有字段和值
3.13.1字段在散列中的排列顺序
3.13.2其他信息
示例:存储图数据
示例:使用散列键重新实现文章存储程序
3.14散列与字符串
3.14.1散列键的优点
3.14.2字符串键的优点
3.14.3字符串键和散列键的选择
3.15重点回顾
第4章列表
4.1LPUSH:将元素推入列表左端
4.1.1一次推入多个元素
4.1.2其他信息
4.2RPUSH:将元素推入列表右端
4.2.1一次推入多个元素
4.2.2其他信息
4.3LPUSHX、RPUSHX:只对已存在的列表执行推入操作
4.3.1每次只能推入单个元素
4.3.2其他信息
4.4LPOP:弹出列表最左端的元素
4.5RPOP:弹出列表最右端的元素
4.6RPOPLPUSH:将右端弹出的元素推入左端
4.6.1源列表和目标列表相同
4.6.2处理空列表
4.6.3其他信息
示例:先进先出队列
4.7LLEN:获取列表的长度
4.8LINDEX:获取指定索引上的元素
4.8.1处理超出范围的索引
4.8.2其他信息
4.9LRANGE:获取指定索引范围上的元素
4.9.1获取列表包含的所有元素
4.9.2处理超出范围的索引
4.9.3其他信息
示例:分页
4.10LSET:为指定索引设置新元素
4.10.1处理超出范围的索引
4.10.2其他信息
4.11LINSERT:将元素插入列表
4.11.1处理不存在的元素
4.11.2其他信息
4.12LTRIM:修剪列表
4.12.1处理负数索引
4.12.2其他信息
4.13LREM:从列表中移除指定元素
示例:待办事项列表
4.14BLPOP:阻塞式左端弹出操作
4.14.1解除阻塞状态
4.14.2处理空列表
4.14.3列表名的作用
4.14.4阻塞效果的范围
4.14.5其他信息
4.15BRPOP:阻塞式右端弹出操作
4.16BRPOPLPUSH:阻塞式弹出并推入操作
4.16.1处理源列表为空的情况
4.16.2其他信息
示例:带有阻塞功能的消息队列
4.17重点回顾
第5章集合
5.1SADD:将元素添加到集合
5.1.1忽略已存在元素
5.1.2其他信息
5.2SREM:从集合中移除元素
5.2.1忽略不存在的元素
5.2.2其他信息
5.3SMOVE:将元素从一个集合移动到另一个集合
5.3.1忽略不存在的元素
5.3.2覆盖已存在的元素
5.3.3其他信息
5.4SMEMBERS:获取集合包含的所有元素
5.4.1元素的无序排列
5.4.2其他信息
5.5SCARD:获取集合包含的元素数量
5.6SISMEMBER:检查给定元素是否存在于集合
示例:唯一计数器
示例:打标签
示例:点赞
示例:投票
示例:社交关系
5.7SRANDMEMBER:随机获取集合中的元素
5.7.1返回指定数量的元素
5.7.2其他信息
5.8SPOP:随机地从集合中移除指定数量的元素
5.8.1SPOP与SRANDMEMBER的区别
5.8.2其他信息
示例:抽奖
5.9SINTER、SINTERSTORE:对集合执行交集计算
5.9.1SINTERSTORE命令
5.9.2其他信息
5.10SUNION、SUNIONSTORE:对集合执行并集计算
5.10.1SUNIONSTORE命令
5.10.2其他信息
5.11SDIFF、SDIFFSTORE:对集合执行差集计算
5.11.1SDIFFSTORE命令
5.11.2其他信息
示例:共同