Redis应用实例

Redis应用实例
作 者: 黄健宏
出版社: 人民邮电出版社
丛编项:
版权说明: 本书为公共版权或经版权方授权,请支持正版图书
标 签: 暂缺
ISBN 出版时间 包装 开本 页数 字数
未知 暂无 暂无 未知 0 暂无

作者简介

  黄健宏计算机技术图书作者和译者,关注的领域包括数据库、编程语言、操作系统,以及算法和数据结构。他从2011年开始关注Redis,翻译过Redis文档,注释过Redis源代码,发表了大量关于Redis的文章,还撰写了广受Redis使用者喜爱的源码分析书《Redis设计与实现》,并翻译了热销的Redis入门书《Redis实战》。他还是《Redis使用手册》的作者,《SQL实战(第2版)》、《Go语言趣学指南》和《Go Web编程》的译者。

内容简介

本书将从内部组件、外部应用和数据结构3个方面为读者介绍Redis常见、经典的用法与实例,并且所有实例均附有完整的Python代码,方便读者学习和参考。全书分3个部分:第一部分讲内部组件,介绍的实例通常用于系统内部,如缓存、锁、计数器、迭代器、速率限制器等,这些都是很多系统中不可或缺的部分;第二部分讲外部应用,介绍的实例都是一些日常常见的、用户可以直接接触到的应用,如直播弹幕、社交关系、排行榜、分页、地理位置等;第三部分讲数据结构,介绍的实例是一些使用Redis实现的常见数据结构,如先进先出队列、栈、优先队列和矩阵等。本书希望通过展示常见的Redis应用实例来帮助读者了解使用Redis解决各类问题的方法,并加深读者对Redis各项命令及数据结构的认识,使读者真正成为能够使用Redis解决各类问题的Redis专家。本书适合对Redis有基本了解且想要进一步掌握Redis及键值数据库具体应用的技术人群,是理想的Redis技术进阶读物。

图书目录

第 一部分 内部组件

第 1章 缓存文本数据 3

1.1 需求描述 3

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

1.3 实现代码:使用字符串键缓存单项数据 4

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

1.5 实现代码:使用JSON/哈希键缓存多项数据 6

1.6 重点回顾 9

第 2章 缓存二进制数据 11

2.1 需求描述 11

2.2 解决方案 11

2.3 实现代码 12

2.4 重点回顾 13

第3章 锁 15

3.1 需求描述 15

3.2 解决方案 15

3.3 实现代码 16

3.4 扩展方案:带自动解锁功能的锁 17

3.5 重点回顾 19

第4章 带密码保护功能的锁 21

4.1 需求描述 21

4.2 解决方案 21

4.3 实现代码 22

4.4 重点回顾 23

第5章 自增数字ID 25

5.1 需求描述 25

5.2 解决方案:使用字符串键 25

5.3 实现代码:使用字符串键实现自增数字ID生成器 26

5.4 解决方案:使用哈希键 27

5.5 实现代码:使用哈希键实现自增数字ID生成器 27

5.6 重点回顾 28

第6章 计数器 29

6.1 需求描述 29

6.2 解决方案:使用字符串键 29

6.3 实现代码:使用字符串键实现计数器 30

6.4 解决方案:使用哈希键 31

6.5 实现代码:使用哈希键实现计数器 32

6.6 重点回顾 33

第7章 唯一计数器 35

7.1 需求描述 35

7.2 解决方案:使用集合键 35

7.3 实现代码:使用集合键实现唯一计数器 36

7.4 解决方案:使用HyperLogLog键 37

7.5 实现代码:使用HyperLogLog键实现唯一计数器 38

7.6 重点回顾 39

第8章 速率限制器 41

8.1 需求描述 41

8.2 解决方案 41

8.3 实现代码 42

8.4 重点回顾 45

第9章 二元操作记录器 47

9.1 需求描述 47

9.2 解决方案 47

9.3 实现代码 48

9.4 重点回顾 49

第 10章 资源池 51

10.1 需求描述 51

10.2 解决方案 51

10.3 实现代码 52

10.4 重点回顾 54

第 11章 紧凑字符串 57

11.1 需求描述 57

11.2 解决方案 58

11.3 实现代码 58

11.4 重点回顾 60

第 12章 数据库迭代器 61

12.1 需求描述 61

12.2 解决方案 61

12.3 实现代码 62

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

12.5 重点回顾 66

第 13章 流迭代器 67

13.1 需求描述 67

13.2 解决方案:使用XRANGE 67

13.3 实现代码:使用XRANGE实现

流迭代器 69

13.4 解决方案:使用XREAD 70

13.5 实现代码:使用XREAD实现流 迭代器 71

13.6 重点回顾 73

第二部分 外部应用

第 14章 消息队列 77

14.1 需求描述 77

14.2 解决方案 77

14.3 实现代码 78

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

14.5 重点回顾 82

第 15章 标签系统 85

15.1 需求描述 85

15.2 解决方案 85

15.3 实现代码 86

15.4 扩展实现:为根据标签查找目

标功能加上缓存 88

15.5 重点回顾 90

第 16章 自动补全 91

16.1 需求描述 91

16.2 解决方案 91

16.3 实现代码 92

16.4 扩展实现:自动移除冷门输入建议表 94

16.5 重点回顾 96

第 17章 抽奖 97

17.1 需求描述 97

17.2 解决方案 97

17.3 实现代码 98

17.4 重点回顾 100

第 18章 社交关系 101

18.1 需求描述 101

18.2 解决方案 101

18.3 实现代码 102

18.4 重点回顾 105

第 19章 登录会话 107

19.1 需求描述 107

19.2 解决方案 107

19.3 实现代码 108

19.4 重点回顾 110

第 20章 短网址生成器 111

20.1 需求描述 111

20.2 解决方案 111

20.3 实现代码 113

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

20.5 重点回顾 116

第 21章 投票 117

21.1 需求描述 117

21.2 解决方案 117

21.3 实现代码 119

21.4 重点回顾 121

第 22章 排行榜 123

22.1 需求描述 123

22.2 解决方案 123

22.3 实现代码 124

22.4 重点回顾 126

第 23章 分页 127

23.1 需求描述 127

23.2 解决方案 127

23.3 实现代码 129

23.4 重点回顾 131

第 24章 时间线 133

24.1 需求描述 133

24.2 解决方案 133

24.3 实现代码 135

24.4 重点回顾 138

第 25章 地理位置 139

25.1 需求描述 139

25.2 解决方案 139

25.3 实现代码 140

25.4 扩展实现:实现“摇一摇”功能 142

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

25.6 重点回顾 145

第三部分 数据结构

第 26章 先进先出队列 149

26.1 需求描述 149

26.2 解决方案 149

26.3 实现代码 150

26.4 扩展实现:反方向的队列 152

26.5 重点回顾 153

第 27章 定长队列和淘汰队列 155

27.1 需求描述 155

27.2 解决方案 155

27.3 实现代码 157

27.4 扩展实现:淘汰队列 158

27.5 重点回顾 160

第 28章 栈(后进先出队列) 161

28.1 需求描述 161

28.2 解决方案 161

28.3 实现代码 162

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

28.5 重点回顾 164

第 29章 优先队列 165

29.1 需求描述 165

29.2 解决方案 165

29.3 实现代码 167

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

29.5 重点回顾 170

第30章 循环队列 171

30.1 需求描述 171

30.2 解决方案 171

30.3 实现代码 172

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

30.5 重点回顾 176

第31章 矩阵 177

31.1 需求描述 177

31.2 解决方案:使用列表 177

31.3 实现代码:使用列表实现矩阵存储 178

31.4 解决方案:使用位图 180

31.5 实现代码:使用位图实现矩阵存储 181

31.6 重点回顾 184

第32章 逻辑矩阵 185

32.1 需求描述 185

32.2 解决方案 185

32.3 实现代码 186

32.4 扩展实现:优化内存占用 188

32.5 重点回顾 192