欢迎光临
免费的PDF电子书下载网站

从零开始学Redis PDF下载

编辑推荐

系统全面:全书讲解150多个命令,涵盖大部分应用场景

层层深入:从基本命令到实战应用,逐步提高

实例丰富:每个命令的讲解都结合实例,随学随用

面向实战:配有Java、SpringBoot、Python操作Redis的方法

 ;

内容简介

Redis数据库是目前热门的数据库,拥有巨大的用户量。本书主要分为三个阶段讲解Redis数据库。*部分Redis初始篇,详细介绍了Redis的数据类型、以及Redis的大部分命令并结合实际操作进行了演示。第二部分Redis进阶篇,深入的讲解了Redis的客户端、服务器端、数据结构的底层、以及Redis的排序、事务、持久化、集群等相关功能,同时讲解了它的其他高级功能,比如慢日志查询、流水线、地理位置、位图等,并结合实际操作,步步演示。第三部分Redis实战篇,分别介绍了Java、SpringBoot、Python来操作Redis的实例,帮助读者更好的学习Redis。通过阅读本书,读者可以快速掌握Redis的相关命令及功能用法,并结合实战学习,可以熟练应用于实际的生产开发中。 本书面向大多数软件开发者,比如Redis初学者或者具有相关后台开发经验的开发者。

作者简介

高洪涛:沈阳工业大学硕士,现就职于中国刑事警察学院,副教授。长期从事电子物证检验、数据恢复技术等教学、科研、办案工作,以及数据库技术、公安信息化应用等基础教学工作。主编、参编了《计算机司法检验学》《数据库应用技术》《公安实用计算机技术》等多本教材。刘河飞:软件工程师,目前供职某大型证券金融公司,从事资产交易相关的软件开发工作。擅长Java系列开发,具有丰富的后台开发经验,有着良好的编码习惯。对Redis情有独钟,并一直深入其底层研究,具有丰富的Redis实战经验。

从零开始学Redis PDF下载

目录

第一部分 Redis初始篇
第1章 初识NoSQL 2
1.1 什么是NoSQL 2
1.2 NoSQL与传统关系型数据库的比较 3
1.3 在什么应用场景下使用NoSQL 4
1.4 NoSQL的数据模型 5
1.5 NoSQL数据库的分类 6
1.5.1 NoSQL数据库分类简介 6
1.5.2 各类NoSQL数据库的比较 6
第2章 认识Redis 8
2.1 Redis简介 8
2.1.1 Redis的由来 8
2.1.2 什么是Redis 8
2.1.3 Redis的特性 8
2.1.4 Redis的使用场景 9
2.2 搭建Redis环境 10
2.2.1 在Window环境下搭建 10
2.2.2 在Linux环境下搭建 13
2.3 Redis客户端 14
2.3.1 命令行客户端 14
2.3.2 可视化客户端 15
2.3.3 编程客户端 17
2.4 Redis的启动方式 18
2.4.1 在Window环境下的启动方式 18
2.4.2 在Linux环境下的启动方式 19
第3章 Redis数据类型 21
3.1 Redis数据类型之字符串(String)命令 21
3.1.1 设置键值对 22
3.1.2 获取键值对 24
3.1.3 键值对的偏移量 26
3.1.4 设置键的生存时间 26
3.1.5 键值对的值操作 27
3.1.6 键值对的计算 29
3.1.7 键值对的值增量 31
3.2 Redis数据类型之哈希(Hash)命令 34
3.2.1 设置哈希表域的值 34
3.2.2 获取哈希表中的域和值 36
3.2.3 哈希表统计 38
3.2.4 为哈希表中的域加上增量值 39
3.2.5 删除哈希表中的域 40
3.3 Redis数据类型之列表(List)命令 41
3.3.1 向列表中插入值 41
3.3.2 获取列表元素 44
3.3.3 删除列表元素 46
3.3.4 移动列表 50
3.3.5 列表模式 52
3.4 Redis数据类型之集合(Set)命令 53
3.4.1 向集合中添加元素 53
3.4.2 获取集合元素 54
3.4.3 集合运算 57
3.4.4 删除集合元素 60
3.5 Redis数据类型之有序集合(Sorted Set)命令 61
3.5.1 添加元素到有序集合中 62
3.5.2 获取有序集合元素 63
3.5.3 有序集合排名 69
3.5.4 有序集合运算 71
3.5.5 删除有序集合元素 72
第4章 Redis必备命令 76
4.1 键(key)命令 76
4.1.1 查询键 76
4.1.2 修改键 79
4.1.3 键的序列化 81
4.1.4 键的生存时间 82
4.1.5 键值对操作 85
4.1.6 删除键 89
4.2 HyperLogLog命令 90
4.2.1 添加键值对到HyperLogLog中 90
4.2.2 获取HyperLogLog的基数 91
4.2.3 合并HyperLogLog 92
4.3 脚本命令 92
4.3.1 缓存中的Lua脚本 92
4.3.2 对Lua脚本求值 93
4.3.3 杀死或清除Lua脚本 95
4.4 连接命令 96
4.4.1 解锁密码 96
4.4.2 断开客户端与服务器的连接 97
4.4.3 查看服务器的运行状态 97
4.4.4 输出打印消息 97
4.4.5 切换数据库 98
4.5 服务器命令 98
4.5.1 管理客户端 98
4.5.2 查看Redis服务器信息 101
4.5.3 修改并查看相关配置 108
4.5.4 数据持久化 111
4.5.5 实现主从服务 112
4.5.6 服务器管理 114
第5章 Redis数据库 116
5.1 Redis数据库切换 116
5.2 Redis数据库中的键操作 117
5.2.1 添加键 118
5.2.2 修改键 118
5.2.3 删除键 120
5.2.4 取键值 121
5.3 Redis数据库通知 121
5.3.1 数据库通知分类 122
5.3.2 数据库通知的实现原理 124
第二部分 Redis进阶篇
第6章 Redis客户端与服务器 126
6.1 Redis客户端 126
6.1.1 客户端的名字、套接字、标志和时间属性 126
6.1.2 客户端缓冲区 129
6.1.3 客户端的authenticated属性 131
6.1.4 客户端的argv和argc属性 131
6.1.5 关闭客户端 132
6.2 Redis服务器 132
6.2.1 服务器处理命令请求 132
6.2.2 服务器发送命令 133
6.2.3 服务器执行命令 134
6.2.4 服务器返回命令结果 135
6.3 服务器函数 136
6.3.1 serverCron函数 136
6.3.2 trackOperationsPerSecond函数 137
6.3.3 sigtermHandler函数 137
6.3.4 clientsCron函数 138
6.3.5 databasesCron函数 138
6.4 服务器属性 138
6.4.1 cronloops属性 138
6.4.2 rdb_child_pid与aof_child_pid属性 138
6.4.3 stat_peak_memory属性 139
6.4.4 lruclock属性 140
6.4.5 mstime与unixtime属性 141
6.4.6 aof_rewrite_scheduled属性 141
6.5 Redis服务器的启动过程 141
6.5.1 服务器状态结构的初始化 142
6.5.2 相关配置参数的加载 142
6.5.3 服务器数据结构的初始化 142
6.5.4 数据库状态的处理 143
6.5.5 执行服务器的循环事件 144
第7章 Redis底层数据结构 145
7.1 Redis简单动态字符串 145
7.1.1 SDS的实现原理 145
7.1.2 SDS API函数 147
7.2 Redis链表 148
7.2.1 链表的实现原理 148
7.2.2 链表API函数 150
7.3 Redis压缩列表 151
7.3.1 压缩列表的实现原理 151
7.3.2 压缩列表API函数 153
7.4 Redis快速列表 154
7.4.1 快速列表的实现原理 154
7.4.2 快速列表API函数 156
7.5 Redis字典 157
7.5.1 字典的实现原理 157
7.5.2 字典API函数 160
7.6 Redis整数集合 161
7.6.1 整数集合的实现原理 161
7.6.2 整数集合API函数 163
7.7 Redis跳表 164
7.7.1 跳表的实现原理 164
7.7.2 跳表API函数 166
7.8 Redis中的对象 167
7.8.1 对象类型 167
7.8.2 对象的编码方式 171
第8章 Redis排序 174
8.1 SORT排序命令 174
8.2 升序(ASC)与降序(DESC) 176
8.3 BY参数的使用 177
8.4 LIMIT参数的使用 180
8.5 GET与STORE参数的使用 181
8.6 多参数执行顺序 185
第9章 Redis事务 187
9.1 Redis事务简介 187
9.2 Redis 事务的ACID特性 188
9.2.1 事务的原子性 188
9.2.2 事务的一致性 190
9.2.3 事务的隔离性 192
9.2.4 事务的持久性 193
9.3 Redis事务处理 194
9.3.1 事务的实现过程 194
9.3.2 悲观锁和乐观锁 197
9.3.3 事务的WATCH命令 198
第10章 Redis消息订阅 202
10.1 消息订阅发布概述 202
10.2 消息订阅发布实现 203
10.2.1 消息订阅发布模式命令 203
10.2.2 消息订阅功能之订阅频道 208
10.2.3 消息订阅功能之订阅模式 210
10.3 Redis消息队列 211
10.3.1 消息订阅发布模式的原理 211
10.3.2 消息生产者/消费者模式的原理 212
第11章 Redis持久化 213
11.1 Redis持久化操作概述 213
11.2 Redis持久化机制AOF 214
11.2.1 AOF持久化的配置 214
11.2.2 AOF持久化的实现 215
11.2.3 AOF文件重写 216
11.2.4 AOF文件处理 220
11.2.5 AOF持久化的优劣 221
11.3 Redis持久化机制RDB 222
11.3.1 RDB持久化 222
11.3.2 RDB文件 224
11.3.3 RDB文件的创建与加载 226
11.3.4 创建与加载RDB文件时服务器的状态 228
11.3.5 RDB持久化的配置 228
11.3.6 RDB持久化的优劣 229
11.4 AOF持久化与RDB持久化抉择 230
第12章 Redis集群 231
12.1 Redis集群的主从复制模式 231
12.1.1 什么是主从复制 231
12.1.2 主从复制配置 234
12.1.3 复制功能的原理 237
12.1.4 复制功能的实现步骤 242
12.1.5 Redis读写分离 245
12.1.6 Redis心跳机制 246
12.2 Redis集群的高可用哨兵模式 247
12.2.1 什么是高可用哨兵模式 248
12.2.2 哨兵模式的配置 249
12.2.3 Sentinel的配置选项 255
12.2.4 哨兵模式的实现原理 256
12.2.5 选择“合适”的slave节点作为master节点 263
12.2.6 Sentinel的下线状态 266
12.2.7 Sentinel内部的定时任务 267
12.3 Redis集群搭建 268
12.3.1 什么是Redis集群 268
12.3.2 集群中的节点和槽 269
12.3.3 集群搭建 274
12.3.4 使用Redis集群 285
12.3.5 集群中的错误 287
12.3.6 集群的消息 289
第13章 Redis高级功能 291
13.1 慢查询 291
13.1.1 配置慢查询 291
13.1.2 慢查询的生命周期 293
13.1.3 慢查询日志 294
13.1.4 慢查询命令 296
13.2 流水线 297
13.2.1 什么是Pipeline技术 297
13.2.2 如何使用Pipeline技术 298
13.3 地理位置的应用 298
13.3.1 存储地理位置 298
13.3.2 获取地理位置的经纬度信息 299
13.3.3 计算两地间的距离 300
13.3.4 获取指定范围内的位置信息 300
13.4 位图 302
13.4.1 二进制位数组 302
13.4.2 位数组的表示 304
13.4.3 位数组的实现 305
第三部分 Redis实战篇
第14章 Java操作Redis 310
14.1 Java客户端Jedis 310
14.1.1 Jedis的获取 310
14.1.2 Jedis的使用 311
14.1.3 Jedis常用API 311
14.1.4 Jedis事务 313
14.1.5 Jedis主从复制 316
14.1.6 Jedis的连接池 318
14.2 Java操作Redis数据类型 321
14.2.1 Java操作Redis字符串类型 322
14.2.2 Java操作Redis列表类型 323
14.2.3 Java操作Redis集合类型 325
14.2.4 Java操作Redis哈希表类型 326
14.2.5 Java操作Redis有序集合类型 328
14.3 Java操作Redis实现排行榜 329
14.4 Java操作Redis实现秒杀功能 332
14.5 Java操作Redis实现消息队列 335
14.6 Java操作Redis实现故障转移 338
第15章 SpringBoot操作Redis 343
15.1 在SpringBoot中应用Redis 343
15.1.1 Redis依赖配置 343
15.1.2 Redis配置文件 344
15.2 SpringBoot连接Redis 345
15.3 SpringBoot整合Redis实现缓存 352
第16章 Python操作Redis 364
16.1 在Python中应用Redis 364
16.1.1 在PyCharm中配置Redis 364
16.1.2 Python连接Redis 365
16.2 Python操作R

前沿

2016年10月,在工作的过程中我偶然接触到Redis,便开始自学,从学习Redis的安装,到熟悉它的数据类型及相关命令,再到它的实际应用。在企业工作的这段时间里,我也时常用到Redis做缓存系统,实现高并发的存储与读/写,以及Redis相关的高级功能,觉得非常实用。经过不断整理与总结,2018年我决定写本书,与诸位爱好Redis并能实际应用Redis的读者进行分享。
有所得,必有所失。通常我白天正常上班,晚上或周末开始撰写本书。感谢坚持不懈的自己,多少个日夜的坚持,才换来本书的完稿。在得到的同时,我也失去了许多。为了完成本书的编写,我放弃了大量的休息时间,也很少锻炼身体,以致常常生病,同时变成了一个“宅男”,缺少了与人交流沟通的机会。一句话总结就是:沉迷写书,日渐消瘦。
在写作本书的过程中,我深刻地体会到:做事之所以会半途而废,往往不是因为难度较大,而是因为觉得成功离我们较远。确切地说,我们不是因为失败而放弃,而是因为倦怠而失败。在人生的旅途中,我们多思考一下,多坚持一下,同时也多鼓励一下自己,一生中也许会少许多懊悔与惋惜,我们离成功也就会越来越近。在此,我希望阅读本书的读者坚持学习,不断进步。累了,就休息一下,但是不要懈怠;迷茫了,就调整一下自己努力的方向,但是不要放弃努力。既然选择了,就要坚持下去,相信未来的自己一定会感谢现在努力的自己。
夜已深,茶已凉,就不再多叙,望诸君谨记:学虽易,学好难,且学且珍惜。
到目前为止,Redis还在不断更新,用户量也在不断扩大,这也足以说明Redis的强大之处。希望诸君学习愉快,技术更上一层楼。
本书内容简介
全书分3部分。
第一部分(第1~5章)为Redis初始篇,首先介绍了对NoSQL的认识,然后介绍了Redis环境的搭建与启动,以及它的相关客户端,最后介绍了Redis的数据类型命令、必备命令及Redis数据库的相关知识。
第二部分(第6~13章)为Redis进阶篇,首先讲解了Redis客户端与服务器的相关属性与函数,然后结合Redis的底层源码深入讲解了Redis的底层实现和相关的API函数,最后讲解了Redis的相关功能,如排序、事务、消息订阅、持久化、集群,以及其他高级功能,如慢查询、流水线、地理位置、位图等,旨在帮助读者深入理解Redis,并掌握其精髓。
第三部分(第14~16章)为Redis实战篇,这部分结合实际应用,讲解了对Redis数据库的操作,以Java语言、最流行的SpringBoot框架及Python语言为主,并提供了大量的实例代码,旨在提高读者的动手能力,帮助读者真正掌握Redis数据库。
本书的特点
本书以模块化为主,从了解、熟悉Redis,到Redis的进阶学习,最后结合实际应用,为读者展示了Redis数据库的使用。本书前面的章节详细介绍了关于Redis的200多个命令,并结合实际操作为读者演示;后面的章节结合相关的原理图、流程图,为读者介绍了Redis的相关功能,如排序、事务、消息订阅、持久化、集群,以及其他高级功能,如慢查询、流水线、地理位置、位图等。最后以实际应用为主,提供了Java、SpringBoot、Python操作Redis等相关实例。
致谢
首先,非常感谢张增强老师对我的肯定与支持,并给予我宽松的时间,让我得以完成本书的编写。其次,感谢坚持不懈的自己,在多少个黑夜与周末,我不断地坚持,换来了此书的完稿。最后,感谢郭豪、闫凯峰等好友的帮助,在他们的支持下,我不断地向前,不断地进步着。

从零开始学Redis pdf下载声明

本pdf资料下载仅供个人学习和研究使用,不能用于商业用途,请在下载后24小时内删除。如果喜欢,请购买正版

pdf下载地址

版权归出版社和作者所有,下载链接已删除。如果喜欢,请购买正版!

链接地址:从零开始学Redis