《Redis应用实例》详细目录¶
前言
内容编排
目标读者
代码风格说明
代码注释
关注核心原理而非细枝末节
软件版本信息
获取程序源码
致谢
第一部分:内部组件¶
缓存文本数据
需求描述
解决方案:使用字符串键缓存单项数据
解决方案:使用JSON/哈希键缓存多项数据
重点回顾
缓存二进制数据
需求描述
解决方案
实现代码
重点回顾
锁
需求描述
解决方案:使用字符串键实现基本的锁功能
扩展方案:带自动释放功能的锁
重点回顾
带密码保护功能的锁
需求描述
解决方案
重点回顾
自增数字ID
需求描述
解决方案:使用字符串键
解决方案:使用哈希键
重点回顾
计数器
需求描述
解决方案:使用字符串键
解决方案:使用哈希键
重点回顾
唯一计数器
需求描述
解决方案:使用集合键
解决方案:使用HyperLogLog键
重点回顾
速率限制器
需求描述
解决方案
实现代码
重点回顾
二元操作记录器
需求描述
解决方案
实现代码
重点回顾
资源池
需求描述
解决方案
实现代码
重点回顾
紧凑字符串
需求描述
解决方案
实现代码
重点回顾
数据库迭代器
需求描述
解决方案
实现代码
扩展实现:数据库采样程序
重点回顾
流迭代器
需求描述
解决方案:使用XRANGE进行迭代
实现代码:使用XRANGE实现流迭代器
解决方案:使用XREAD进行迭代
实现代码:使用XREAD实现流迭代器
重点回顾
第二部分:外部应用¶
消息队列
需求描述
解决方案
实现代码
扩展实现:直播间弹幕系统
重点回顾
标签系统
需求描述
解决方案
实现代码
扩展实现:为标签查找功能加上缓存
重点回顾
自动补全
需求描述
解决方案
实现代码
扩展实现:自动移除冷门建议表
重点回顾
抽奖
需求描述
解决方案
实现代码
重点回顾
社交关系
需求描述
解决方案
实现代码
重点回顾
登录会话
需求描述
解决方案
实现代码
重点回顾
短网址生成器
需求描述
解决方案
实现代码
扩展实现:为短网址生成器加上缓存
重点回顾
投票
需求描述
解决方案
实现代码
重点回顾
排行榜
需求描述
解决方案
实现代码
重点回顾
分页
需求描述
解决方案
实现代码
重点回顾
时间线
需求描述
解决方案
实现代码
重点回顾
地理位置
需求描述
解决方案
实现代码
扩展实现:实现“摇一摇”功能
扩展实现:为“摇一摇”功能设置缓存
重点回顾
第三部分:数据结构¶
先进先出队列
需求描述
解决方案
实现代码
扩展实现:反方向的队列
重点回顾
定长队列和淘汰队列
需求描述
解决方案
实现代码
扩展实现:淘汰队列
重点回顾
栈/后进先出队列
需求描述
解决方案
扩展实现:为栈添加更多方法
重点回顾
优先队列
需求描述
解决方案
代码实现
扩展实现:为优先队列加上阻塞操作
重点回顾
循环队列
需求描述
解决方案
实现代码
扩展实现:无重复元素的循环队列
重点回顾
矩阵
需求描述
解决方案:使用列表
解决方案:使用位图
重点回顾
逻辑矩阵
需求描述
解决方案
实现代码
扩展实现:优化内存占用
重点回顾