当前位置:主页 > 书籍配套资源 > Docker配套资源
《基于Docker的Redis入门与实战》源代码,音视频

《基于Docker的Redis入门与实战》源代码,音视频

  • 更新:2021-12-04
  • 大小:900 MB
  • 类别:Docker
  • 作者:金华,胡书敏
  • 出版:机械工业出版社
  • 格式:PDF

  • 资源介绍
  • 相关推荐

本书围绕“高并发大数据”的项目需求,全面讲述分布式缓存组件Redis的基本语法、核心技术和实战技能。

本书分为13章,第1~7章主要介绍Redis入门知识、Redis基本数据类型、Redis常用命令、Redis服务器和客户端实践技巧、Redis数据库操作技巧、Redis AOF和RDB持久化操作技巧、Redis集群的搭建方式,第8~11章主要介绍Redis同MySQL和MyCAT集群的整合技巧、Redis同lua的整合技巧等,第12、13章主要介绍Redis、Spring Boot和Spring Cloud如何构建微服务应用。

目录

  • 前言
  • 第1章 构建Redis开发环境1
  • 1.1 Redis概述1
  • 1.1.1 对比传统数据库与NoSQL数据库1
  • 1.1.2 Redis的特点2
  • 1.1.3 Redis更适合以分布式集群的方式提供服务2
  • 1.2 了解必要的Docker技能3
  • 1.2.1 Docker容器、镜像和仓库3
  • 1.2.2 在Windows上安装Docker3
  • 1.2.3 Docker镜像相关的命令4
  • 1.2.4 Docker容器相关的命令4
  • 1.3 安装和配置基于Docker的Redis环境5
  • 1.3.1 用docker pull下载最新Redis镜像5
  • 1.3.2 用docker run启动Redis容器5
  • 1.3.3 用docker logs观察Redis启动效果6
  • 1.3.4 通过docker exec进入Redis容器6
  • 1.3.5 停止、重启和删除Redis容器7
  • 1.3.6 查看Redis的版本8
  • 1.3.7 Redis服务器和客户端8
  • 1.3.8 总结容器和Redis的相关命令9
  • 1.4 本章小结10
  • 第2章 实践Redis的基本数据类型11
  • 2.1 Redis缓存初体验11
  • 2.1.1 用redis-cli启动客户端并缓存数据11
  • 2.1.2 设置数据的生存时间12
  • 2.2 针对字符串的命令13
  • 2.2.1 读写字符串的set和get命令13
  • 2.2.2 设置和获取多个字符串的命令14
  • 2.2.3 对值进行增量和减量操作15
  • 2.2.4 通过getset命令设置新值16
  • 2.2.5 针对字符串的其他操作17
  • 2.3 针对哈希类型变量的命令17
  • 2.3.1 设置并获取哈希值18
  • 2.3.2 hsetnx命令19
  • 2.3.3 针对key的相关操作19
  • 2.3.4 用hexists命令判断值是否存在20
  • 2.3.5 对哈希类型数据的删除操作21
  • 2.4 针对列表类型变量的命令21
  • 2.4.1 读写列表的命令21
  • 2.4.2 lpushx和rpushx命令23
  • 2.4.3 用list模拟堆栈和队列24
  • 2.4.4 用lrange命令获取指定区间内的数据25
  • 2.4.5 用lset命令修改列表数据26
  • 2.4.6 删除列表数据的命令26
  • 2.5 针对集合的命令28
  • 2.5.1 读写集合的命令28
  • 2.5.2 列表和集合类数据的使用场景29
  • 2.5.3 用sismember命令判断元素是否存在29
  • 2.5.4 获取集合的交集、并集和差集29
  • 2.5.5 用srem命令删除集合数据30
  • 2.6 针对有序集合的命令31
  • 2.6.1 读写有序集合的命令31
  • 2.6.2 通过zincrby命令修改元素的分值33
  • 2.6.3 用zscore命令获取指定元素的分数33
  • 2.6.4 查看有序集合里的元素排名34
  • 2.6.5 删除有序集合里的值35
  • 2.7 本章小结36
  • 第3章 实践Redis的常用命令37
  • 3.1 键操作命令37
  • 3.1.1 用exists命令判断键是否存在37
  • 3.1.2 用keys命令查找键38
  • 3.1.3 用scan命令查找键38
  • 3.1.4 重命名键39
  • 3.1.5 用del命令删除键40
  • 3.1.6 关于键生存时间的命令41
  • 3.2 HyperLogLog相关命令42
  • 3.2.1 用pfadd添加键值对42
  • 3.2.2 用pfcount统计基数值43
  • 3.2.3 用pfmerge进行合并操作43
  • 3.2.4 统计网站访问总人数44
  • 3.3 lua脚本相关命令44
  • 3.3.1 把lua脚本装载到缓存里45
  • 3.3.2 通过evalsha命令执行缓存中的脚本45
  • 3.3.3 清空缓存中lua脚本的命令45
  • 3.3.4 用eval命令执行lua脚本46
  • 3.4 排序相关命令46
  • 3.4.1 用sort命令进行排序46
  • 3.4.2 用by参数指定排序模式48
  • 3.4.3 用limit参数返回部分排序结果48
  • 3.4.4 sort命令里get参数的用法49
  • 3.4.5 通过store参数提升性能50
  • 3.5 本章小结51
  • 第4章 实践Redis服务器和客户端的操作52
  • 4.1 Redis服务器管理客户端的命令52
  • 4.1.1 获取和设置客户端的名字52
  • 4.1.2 通过client list命令查看客户端的信息53
  • 4.1.3 通过client pause命令暂停客户端的命令53
  • 4.1.4 通过client kill命令中断客户端连接54
  • 4.1.5 通过shutdown命令关闭服务器和客户端54
  • 4.2 查看Redis服务器的详细信息55
  • 4.2.1 通过info命令查看服务器信息55
  • 4.2.2 查看客户端连接状况56
  • 4.2.3 观察最大连接数56
  • 4.2.4 查看每秒执行多少条指令56
  • 4.2.5 观察内存用量57
  • 4.2.6 通过command命令查看Redis命令57
  • 4.2.7 查看指定Redis命令的信息58
  • 4.2.8 获取指定命令的所有键58
  • 4.3 查看并修改服务器的常用配置59
  • 4.3.1 查看服务器的配置59
  • 4.3.2 通过修改服务器配置设置密码60
  • 4.3.3 用config rewrite命令改写Redis配置文件61
  • 4.3.4 启动Redis服务器时加载配置文件61
  • 4.4 多个客户端连接远端服务器63
  • 4.4.1 多个Redis客户端连接远端服务器63
  • 4.4.2 通过docker inspect命令观察IP地址64
  • 4.4.3 实践客户端命令65
  • 4.4.4 通过info观察服务器状态65
  • 4.5 本章小结66
  • 第5章 Redis数据库操作实战67
  • 5.1 切换数据库操作67
  • 5.1.1 查看和设置默认的数据库个数67
  • 5.1.2 用select命令切换数据库69
  • 5.2 Redis事务操作70
  • 5.2.1 事务的概念与ACID特性70
  • 5.2.2 实现Redis事务的相关命令70
  • 5.2.3 通过discard命令撤销事务中的操作71
  • 5.2.4 Redis持久化与事务持久性72
  • 5.2.5 用watch命令监视指定键73
  • 5.3 地理位置相关操作75
  • 5.3.1 用geoadd命令存储地理位置75
  • 5.3.2 获取地理位置的经纬度信息76
  • 5.3.3 查询指定范围内的地理信息76
  • 5.3.4 查询地理位置间的距离77
  • 5.4 位图数据类型的应用78
  • 5.4.1 setbit和getbit操作78
  • 5.4.2 用bitop对位图进行运算79
  • 5.4.3 bitcount操作80
  • 5.5 慢查询实战分析81
  • 5.5.1 慢查询相关的配置参数81
  • 5.5.2 用slowlog get命令观察慢查询81
  • 5.5.3 慢查询相关命令82
  • 5.6 本章小结83
  • 第6章 Redis数据持久化操作84
  • 6.1 Redis持久化机制概述84
  • 6.1.1 基于AOF的持久化机制84
  • 6.1.2 基于RDB的持久化机制85
  • 6.2 AOF持久化机制实战85
  • 6.2.1 AOF配置文件的说明85
  • 6.2.2 实践AOF持久化86
  • 6.2.3 观察重写AOF文件的效果88
  • 6.2.4 模拟数据恢复的流程89
  • 6.2.5 修复AOF文件91
  • 6.3 RDB持久化机制实战91
  • 6.3.1 编写配置文件,生成RDB快照92
  • 6.3.2 用快照文件恢复数据93
  • 6.3.3 save和bgsave命令94
  • 6.4 如何选用持久化方式94
  • 6.4.1 对比两种持久化方式95
  • 6.4.2 综合使用两种持久化方式95
  • 6.4.3 查看持久化状态的命令96
  • 6.5 本章小结97
  • 第7章 搭建Redis集群98
  • 7.1 搭建基于主从复制模式的集群98
  • 7.1.1 主从复制模式概述98
  • 7.1.2 用命令搭建主从集群99
  • 7.1.3 通过配置搭建主从集群101
  • 7.1.4 配置读写分离效果103
  • 7.1.5 用心跳机制提高主从复制的可靠性103
  • 7.1.6 用偏移量检查数据是否一致104
  • 7.2 搭建哨兵模式的集群105
  • 7.2.1 哨兵模式概述105
  • 7.2.2 搭建哨兵模式集群106
  • 7.2.3 哨兵节点的常用配置108
  • 7.2.4 哨兵模式下的故障自动恢复效果109
  • 7.2.5 通过日志观察故障恢复流程110
  • 7.2.6 故障节点恢复后的表现112
  • 7.3 搭建cluster集群113
  • 7.3.1 哈希槽与cluster集群113
  • 7.3.2 初步搭建cluster集群114
  • 7.3.3 在cluster集群中读写数据120
  • 7.3.4 模拟扩容和数据迁移动作121
  • 7.3.5 cluster集群的常用配置参数123
  • 7.4 本章小结124
  • 第8章 Java整合MySQL与Redis125
  • 8.1 Java通过Jedis读写Redis125
  • 8.1.1 以Maven方式引入Jedis包125
  • 8.1.2 通过Jedis读写Redis字符串126
  • 8.1.3 操作各种Redis命令128
  • 8.1.4 以事务的方式操作Redis129
  • 8.1.5 Jedis连接池130
  • 8.1.6 用管道的方式提升操作性能131
  • 8.2 Java与各种Redis数据类型132
  • 8.2.1 读写列表类对象132
  • 8.2.2 读写哈希表对象134
  • 8.2.3 读写集合对象135
  • 8.2.4 读写有序集合对象135
  • 8.2.5 操作地理位置数据136
  • 8.3 Redis与MySQL的整合137
  • 8.3.1 通过Docker安装MySQL开发环境138
  • 8.3.2 通过JDBC连接并操作MySQL数据库139
  • 8.3.3 引入Redis做缓存142
  • 8.3.4 模拟缓存穿透现象146
  • 8.3.5 模拟内存使用不当的场景147
  • 8.4 Redis缓存实战分析148
  • 8.4.1 缓存不存在的键,以防穿透148
  • 8.4.2 合理设置超时时间,以防内存溢出150
  • 8.4.3 超时时间外加随机数,以防穿透152
  • 8.5 本章小结153
  • 第9章 Redis应用场景与案例实现154
  • 9.1 Redis消息队列实战154
  • 9.1.1 消息队列与Redis消息订阅发布模式154
  • 9.1.2 消息订阅发布的命令和流程155
  • 9.1.3 消息订阅发布的相关命令汇总159
  • 9.1.4 Java与消息队列的实战范例159
  • 9.2 用Java实战Redis分布式锁162
  • 9.2.1 观察分布式锁的特性162
  • 9.2.2 加锁与解锁的Redis命令分析163
  • 9.2.3 基于Java语言的Redis分布式锁163
  • 9.3 用Java实现Redis限流167
  • 9.3.1 zset有序集合相关命令与限流167
  • 9.3.2 zset有序集合与限流167
  • 9.4 Redis压力测试实战169
  • 9.5 本章小结171
  • 第10章 Redis整合MySQL集群与MyCAT分库分表组件172
  • 10.1 Redis整合MySQL主从集群172
  • 10.1.1 用Docker搭建MySQL主从集群172
  • 10.1.2 准备数据176
  • 10.1.3 创建Java项目,准备pom文件177
  • 10.1.4 用Java代码读写MySQL集群和Redis178
  • 10.1.5 MySQL主从集群整合Redis主从集群181
  • 10.2 Redis整合MySQL和MyCAT分库组件185
  • 10.2.1 分库分表概述185
  • 10.2.2 用MyCAT组件实现分库分表187
  • 10.2.3 Java、MySQL与MyCAT的整合范例190
  • 10.2.4 Redis集群与MySQL和MyCAT整合范例195
  • 10.3 本章小结199
  • 第11章 Redis整合lua脚本实战200
  • 11.1 在Redis里调用lua脚本200
  • 11.1.1 结合Redis叙述lua的特性200
  • 11.1.2 通过redis-cli命令运行lua脚本201
  • 11.1.3 直接通过eval命令执行脚本202
  • 11.1.4 通过return返回脚本运行结果203
  • 11.1.5 整理Redis里和lua相关的命令203
  • 11.1.6 观察lua脚本阻塞Redis的效果204
  • 11.2 Redis整合lua高级实战205
  • 11.2.1 通过KEYS和ARGV传递参数205
  • 11.2.2 在脚本里引入分支语句206
  • 11.2.3 while循环调用207
  • 11.2.4 for循环调用208
  • 11.2.5 在Java程序里调用Redis的lua脚本209
  • 11.2.6 lua脚本有错,不会执行210
  • 11.3 Redis整合lua脚本的实例分析211
  • 11.3.1 以计数模式实现限流效果211
  • 11.3.2 用lua脚本防止超卖214
  • 11.4 本章小结217
  • 第12章 Redis与Spring Boot的整合应用218
  • 12.1 在Spring Boot框架里引入Redis218
  • 12.1.1 SSM和Spring Boot框架介绍218
  • 12.1.2 准备MySQL数据库和数据表220
  • 12.1.3 搭建Spring Boot框架221
  • 12.1.4 在框架里引入Redis等组件222
  • 12.1.5 启动Spring Boot,观察缓存效果228
  • 12.2 Spring Boot框架整合Redis哨兵集群229
  • 12.2.1 搭建Redis哨兵集群229
  • 12.2.2 在Spring Boot框架里引入Redis哨兵集群230
  • 12.2.3 观察整合效果231
  • 12.3 Spring Boot框架整合Redis cluster集群232
  • 12.3.1 搭建Redis cluster集群232
  • 12.3.2 在Spring Boot里使用Redis cluster集群232
  • 12.4 在Spring Boot里实现秒杀案例233
  • 12.4.1 构建Spring Boot项目233
  • 12.4.2 编写启动类235
  • 12.4.3 在Controller层里定义秒杀接口235
  • 12.4.4 在Service层里通过lua脚本实现秒杀效果236
  • 12.4.5 配置Redis连接参数238
  • 12.4.6 演示秒杀效果239
  • 12.5 本章小结242
  • 第13章 Redis整合Spring Cloud微服务243
  • 13.1 微服务和Spring Cloud相关概念243
  • 13.1.1 传统架构与微服务的比较243
  • 13.1.2 Spring Cloud全家桶组件与微服务的关系245
  • 13.2 多模块整合Redis,构建微服务体系246
  • 13.2.1 用Docker准备Redis和MySQL集群环境246
  • 13.2.2 含Redis和Eureka的微服务架构图247
  • 13.2.3 开发Eureka服务器248
  • 13.2.4 开发含Redis的风控模块(Eureka客户端)251
  • 13.2.5 开发含Redis的下单模块(Eureka客户端)259
  • 13.3 Redis与Ribbon整合使用264
  • 13.3.1 Ribbon负载均衡组件与Redis的整合效果265
  • 13.3.2 引入多个风控组件分摊流量265
  • 13.3.3 从缓存和负载均衡维度观察整合后的效果267
  • 13.4 本章小结268

资源下载

资源下载地址1:https://pan.baidu.com/s/1s25NL8zntX4z5kn6MdtFtw

网友留言