《Redis应用实例》详细目录

  • 前言

    • 内容编排

    • 目标读者

    • 代码风格说明

    • 代码注释

    • 关注核心原理而非细枝末节

    • 软件版本信息

    • 获取程序源码

    • 致谢

第一部分:内部组件

  • 缓存文本数据

    • 需求描述

    • 解决方案:使用字符串键缓存单项数据

    • 解决方案:使用JSON/哈希键缓存多项数据

    • 重点回顾

  • 缓存二进制数据

    • 需求描述

    • 解决方案

    • 实现代码

    • 重点回顾

    • 需求描述

    • 解决方案:使用字符串键实现基本的锁功能

    • 扩展方案:带自动释放功能的锁

    • 重点回顾

  • 带密码保护功能的锁

    • 需求描述

    • 解决方案

    • 重点回顾

  • 自增数字ID

    • 需求描述

    • 解决方案:使用字符串键

    • 解决方案:使用哈希键

    • 重点回顾

  • 计数器

    • 需求描述

    • 解决方案:使用字符串键

    • 解决方案:使用哈希键

    • 重点回顾

  • 唯一计数器

    • 需求描述

    • 解决方案:使用集合键

    • 解决方案:使用HyperLogLog键

    • 重点回顾

  • 速率限制器

    • 需求描述

    • 解决方案

    • 实现代码

    • 重点回顾

  • 二元操作记录器

    • 需求描述

    • 解决方案

    • 实现代码

    • 重点回顾

  • 资源池

    • 需求描述

    • 解决方案

    • 实现代码

    • 重点回顾

  • 紧凑字符串

    • 需求描述

    • 解决方案

    • 实现代码

    • 重点回顾

  • 数据库迭代器

    • 需求描述

    • 解决方案

    • 实现代码

    • 扩展实现:数据库采样程序

    • 重点回顾

  • 流迭代器

    • 需求描述

    • 解决方案:使用XRANGE进行迭代

    • 实现代码:使用XRANGE实现流迭代器

    • 解决方案:使用XREAD进行迭代

    • 实现代码:使用XREAD实现流迭代器

    • 重点回顾

第二部分:外部应用

  • 消息队列

    • 需求描述

    • 解决方案

    • 实现代码

    • 扩展实现:直播间弹幕系统

    • 重点回顾

  • 标签系统

    • 需求描述

    • 解决方案

    • 实现代码

    • 扩展实现:为标签查找功能加上缓存

    • 重点回顾

  • 自动补全

    • 需求描述

    • 解决方案

    • 实现代码

    • 扩展实现:自动移除冷门建议表

    • 重点回顾

  • 抽奖

    • 需求描述

    • 解决方案

    • 实现代码

    • 重点回顾

  • 社交关系

    • 需求描述

    • 解决方案

    • 实现代码

    • 重点回顾

  • 登录会话

    • 需求描述

    • 解决方案

    • 实现代码

    • 重点回顾

  • 短网址生成器

    • 需求描述

    • 解决方案

    • 实现代码

    • 扩展实现:为短网址生成器加上缓存

    • 重点回顾

  • 投票

    • 需求描述

    • 解决方案

    • 实现代码

    • 重点回顾

  • 排行榜

    • 需求描述

    • 解决方案

    • 实现代码

    • 重点回顾

  • 分页

    • 需求描述

    • 解决方案

    • 实现代码

    • 重点回顾

  • 时间线

    • 需求描述

    • 解决方案

    • 实现代码

    • 重点回顾

  • 地理位置

    • 需求描述

    • 解决方案

    • 实现代码

    • 扩展实现:实现“摇一摇”功能

    • 扩展实现:为“摇一摇”功能设置缓存

    • 重点回顾

第三部分:数据结构

  • 先进先出队列

    • 需求描述

    • 解决方案

    • 实现代码

    • 扩展实现:反方向的队列

    • 重点回顾

  • 定长队列和淘汰队列

    • 需求描述

    • 解决方案

    • 实现代码

    • 扩展实现:淘汰队列

    • 重点回顾

  • 栈/后进先出队列

    • 需求描述

    • 解决方案

    • 扩展实现:为栈添加更多方法

    • 重点回顾

  • 优先队列

    • 需求描述

    • 解决方案

    • 代码实现

    • 扩展实现:为优先队列加上阻塞操作

    • 重点回顾

  • 循环队列

    • 需求描述

    • 解决方案

    • 实现代码

    • 扩展实现:无重复元素的循环队列

    • 重点回顾

  • 矩阵

    • 需求描述

    • 解决方案:使用列表

    • 解决方案:使用位图

    • 重点回顾

  • 逻辑矩阵

    • 需求描述

    • 解决方案

    • 实现代码

    • 扩展实现:优化内存占用

    • 重点回顾