1.作者资深:作者是腾讯云Serverless的高级产品经理和研发工程师,从零始参与腾讯云Serverless项目,经验丰富。2.视角立体:从产品和技术两个维度全面讲解Serverless,视角立体、丰富。3.干货满满:涵盖Serverless架构设计、技术原理、发流程、实战案例等4大核心主题。4.内容中立:内容涵盖腾讯云、阿里云、亚马逊云等多个云厂商的技术和产品,非一家之言。5.案例丰富:包含丰富客户场景、实战案例以及大量Z佳实践。6.专家推荐:腾讯云多位高管联袂推荐。
售 价:¥
纸质售价:¥62.30购买纸书
温馨提示:数字商品不支持退换货,不提供源文件,不支持导出打印
为你推荐
版权页
作者简介
前言
第1章 构建Redis开发环境
1.1 Redis概述
1.1.1 对比传统数据库与NoSQL数据库
1.1.2 Redis的特点
1.1.3 Redis更适合以分布式集群的方式提供服务
1.2 了解必要的Docker技能
1.2.1 Docker容器、镜像和仓库
1.2.2 在Windows上安装Docker
1.2.3 Docker镜像相关的命令
1.2.4 Docker容器相关的命令
1.3 安装和配置基于Docker的Redis环境
1.3.1 用docker pull下载最新Redis镜像
1.3.2 用docker run启动Redis容器
1.3.3 用docker logs观察Redis启动效果
1.3.4 通过docker exec进入Redis容器
1.3.5 停止、重启和删除Redis容器
1.3.6 查看Redis的版本
1.3.7 Redis服务器和客户端
1.3.8 总结容器和Redis的相关命令
1.4 本章小结
第2章 实践Redis的基本数据类型
2.1 Redis缓存初体验
2.1.1 用redis-cli启动客户端并缓存数据
2.1.2 设置数据的生存时间
2.2 针对字符串的命令
2.2.1 读写字符串的set和get命令
2.2.2 设置和获取多个字符串的命令
2.2.3 对值进行增量和减量操作
2.2.4 通过getset命令设置新值
2.2.5 针对字符串的其他操作
2.3 针对哈希类型变量的命令
2.3.1 设置并获取哈希值
2.3.2 hsetnx命令
2.3.3 针对key的相关操作
2.3.4 用hexists命令判断值是否存在
2.3.5 对哈希类型数据的删除操作
2.4 针对列表类型变量的命令
2.4.1 读写列表的命令
2.4.2 lpushx和rpushx命令
2.4.3 用list模拟堆栈和队列
2.4.4 用lrange命令获取指定区间内的数据
2.4.5 用lset命令修改列表数据
2.4.6 删除列表数据的命令
2.5 针对集合的命令
2.5.1 读写集合的命令
2.5.2 列表和集合类数据的使用场景
2.5.3 用sismember命令判断元素是否存在
2.5.4 获取集合的交集、并集和差集
2.5.5 用srem命令删除集合数据
2.6 针对有序集合的命令
2.6.1 读写有序集合的命令
2.6.2 通过zincrby命令修改元素的分值
2.6.3 用zscore命令获取指定元素的分数
2.6.4 查看有序集合里的元素排名
2.6.5 删除有序集合里的值
2.7 本章小结
第3章 实践Redis的常用命令
3.1 键操作命令
3.1.1 用exists命令判断键是否存在
3.1.2 用keys命令查找键
3.1.3 用scan命令查找键
3.1.4 重命名键
3.1.5 用del命令删除键
3.1.6 关于键生存时间的命令
3.2 HyperLogLog相关命令
3.2.1 用pfadd添加键值对
3.2.2 用pfcount统计基数值
3.2.3 用pfmerge进行合并操作
3.2.4 统计网站访问总人数
3.3 lua脚本相关命令
3.3.1 把lua脚本装载到缓存里
3.3.2 通过evalsha命令执行缓存中的脚本
3.3.3 清空缓存中lua脚本的命令
3.3.4 用eval命令执行lua脚本
3.4 排序相关命令
3.4.1 用sort命令进行排序
3.4.2 用by参数指定排序模式
3.4.3 用limit参数返回部分排序结果
3.4.4 sort命令里get参数的用法
3.4.5 通过store参数提升性能
3.5 本章小结
第4章 实践Redis服务器和客户端的操作
4.1 Redis服务器管理客户端的命令
4.1.1 获取和设置客户端的名字
4.1.2 通过client list命令查看客户端的信息
4.1.3 通过client pause命令暂停客户端的命令
4.1.4 通过client kill命令中断客户端连接
4.1.5 通过shutdown命令关闭服务器和客户端
4.2 查看Redis服务器的详细信息
4.2.1 通过info命令查看服务器信息
4.2.2 查看客户端连接状况
4.2.3 观察最大连接数
4.2.4 查看每秒执行多少条指令
4.2.5 观察内存用量
4.2.6 通过command命令查看Redis命令
4.2.7 查看指定Redis命令的信息
4.2.8 获取指定命令的所有键
4.3 查看并修改服务器的常用配置
4.3.1 查看服务器的配置
4.3.2 通过修改服务器配置设置密码
4.3.3 用config rewrite命令改写Redis配置文件
4.3.4 启动Redis服务器时加载配置文件
4.4 多个客户端连接远端服务器
4.4.1 多个Redis客户端连接远端服务器
4.4.2 通过docker inspect命令观察IP地址
4.4.3 实践客户端命令
4.4.4 通过info观察服务器状态
4.5 本章小结
第5章 Redis数据库操作实战
5.1 切换数据库操作
5.1.1 查看和设置默认的数据库个数
5.1.2 用select命令切换数据库
5.2 Redis事务操作
5.2.1 事务的概念与ACID特性
5.2.2 实现Redis事务的相关命令
5.2.3 通过discard命令撤销事务中的操作
5.2.4 Redis持久化与事务持久性
5.2.5 用watch命令监视指定键
5.3 地理位置相关操作
5.3.1 用geoadd命令存储地理位置
5.3.2 获取地理位置的经纬度信息
5.3.3 查询指定范围内的地理信息
5.3.4 查询地理位置间的距离
5.4 位图数据类型的应用
5.4.1 setbit和getbit操作
5.4.2 用bitop对位图进行运算
5.4.3 bitcount操作
5.5 慢查询实战分析
5.5.1 慢查询相关的配置参数
5.5.2 用slowlog get命令观察慢查询
5.5.3 慢查询相关命令
5.6 本章小结
第6章 Redis数据持久化操作
6.1 Redis持久化机制概述
6.1.1 基于AOF的持久化机制
6.1.2 基于RDB的持久化机制
6.2 AOF持久化机制实战
6.2.1 AOF配置文件的说明
6.2.2 实践AOF持久化
6.2.3 观察重写AOF文件的效果
6.2.4 模拟数据恢复的流程
6.2.5 修复AOF文件
6.3 RDB持久化机制实战
6.3.1 编写配置文件,生成RDB快照
6.3.2 用快照文件恢复数据
6.3.3 save和bgsave命令
6.4 如何选用持久化方式
6.4.1 对比两种持久化方式
6.4.2 综合使用两种持久化方式
6.4.3 查看持久化状态的命令
6.5 本章小结
第7章 搭建Redis集群
7.1 搭建基于主从复制模式的集群
7.1.1 主从复制模式概述
7.1.2 用命令搭建主从集群
7.1.3 通过配置搭建主从集群
7.1.4 配置读写分离效果
7.1.5 用心跳机制提高主从复制的可靠性
7.1.6 用偏移量检查数据是否一致
7.2 搭建哨兵模式的集群
7.2.1 哨兵模式概述
7.2.2 搭建哨兵模式集群
7.2.3 哨兵节点的常用配置
7.2.4 哨兵模式下的故障自动恢复效果
7.2.5 通过日志观察故障恢复流程
7.2.6 故障节点恢复后的表现
7.3 搭建cluster集群
7.3.1 哈希槽与cluster集群
7.3.2 初步搭建cluster集群
7.3.3 在cluster集群中读写数据
7.3.4 模拟扩容和数据迁移动作
7.3.5 cluster集群的常用配置参数
7.4 本章小结
第8章 Java整合MySQL与Redis
8.1 Java通过Jedis读写Redis
8.1.1 以Maven方式引入Jedis包
8.1.2 通过Jedis读写Redis字符串
8.1.3 操作各种Redis命令
8.1.4 以事务的方式操作Redis
8.1.5 Jedis连接池
8.1.6 用管道的方式提升操作性能
8.2 Java与各种Redis数据类型
8.2.1 读写列表类对象
8.2.2 读写哈希表对象
8.2.3 读写集合对象
8.2.4 读写有序集合对象
8.2.5 操作地理位置数据
8.3 Redis与MySQL的整合
8.3.1 通过Docker安装MySQL开发环境
8.3.2 通过JDBC连接并操作MySQL数据库
8.3.3 引入Redis做缓存
8.3.4 模拟缓存穿透现象
8.3.5 模拟内存使用不当的场景
8.4 Redis缓存实战分析
8.4.1 缓存不存在的键,以防穿透
8.4.2 合理设置超时时间,以防内存溢出
8.4.3 超时时间外加随机数,以防穿透
8.5 本章小结
第9章 Redis应用场景与案例实现
9.1 Redis消息队列实战
9.1.1 消息队列与Redis消息订阅发布模式
9.1.2 消息订阅发布的命令和流程
9.1.3 消息订阅发布的相关命令汇总
9.1.4 Java与消息队列的实战范例
9.2 用Java实战Redis分布式锁
9.2.1 观察分布式锁的特性
9.2.2 加锁与解锁的Redis命令分析
9.2.3 基于Java语言的Redis分布式锁
9.3 用Java实现Redis限流
9.3.1 zset有序集合相关命令与限流
9.3.2 zset有序集合与限流
9.4 Redis压力测试实战
9.5 本章小结
第10章 Redis整合MySQL集群与MyCAT分库分表组件
10.1 Redis整合MySQL主从集群
10.1.1 用Docker搭建MySQL主从集群
10.1.2 准备数据
10.1.3 创建Java项目,准备pom文件
10.1.4 用Java代码读写MySQL集群和Redis
10.1.5 MySQL主从集群整合Redis主从集群
10.2 Redis整合MySQL和MyCAT分库组件
10.2.1 分库分表概述
10.2.2 用MyCAT组件实现分库分表
10.2.3 Java、MySQL与MyCAT的整合范例
10.2.4 Redis集群与MySQL和MyCAT整合范例
10.3 本章小结
第11章 Redis整合lua脚本实战
11.1 在Redis里调用lua脚本
11.1.1 结合Redis叙述lua的特性
11.1.2 通过redis-cli命令运行lua脚本
11.1.3 直接通过eval命令执行脚本
11.1.4 通过return返回脚本运行结果
11.1.5 整理Redis里和lua相关的命令
11.1.6 观察lua脚本阻塞Redis的效果
11.2 Redis整合lua高级实战
11.2.1 通过KEYS和ARGV传递参数
11.2.2 在脚本里引入分支语句
11.2.3 while循环调用
11.2.4 for循环调用
11.2.5 在Java程序里调用Redis的lua脚本
11.2.6 lua脚本有错,不会执行
11.3 Redis整合lua脚本的实例分析
11.3.1 以计数模式实现限流效果
11.3.2 用lua脚本防止超卖
11.4 本章小结
第12章 Redis与Spring Boot的整合应用
12.1 在Spring Boot框架里引入Redis
12.1.1 SSM和Spring Boot框架介绍
12.1.2 准备MySQL数据库和数据表
12.1.3 搭建Spring Boot框架
12.1.4 在框架里引入Redis等组件
12.1.5 启动Spring Boot,观察缓存效果
12.2 Spring Boot框架整合Redis哨兵集群
12.2.1 搭建Redis哨兵集群
12.2.2 在Spring Boot框架里引入Redis哨兵集群
12.2.3 观察整合效果
12.3 Spring Boot框架整合Redis cluster集群
12.3.1 搭建Redis cluster集群
12.3.2 在Spring Boot里使用Redis cluster集群
12.4 在Spring Boot里实现秒杀案例
12.4.1 构建Spring Boot项目
12.4.2 编写启动类
12.4.3 在Controller层里定义秒杀接口
12.4.4 在Service层里通过lua脚本实现秒杀效果
12.4.5 配置Redis连接参数
12.4.6 演示秒杀效果
12.5 本章小结
第13章 Redis整合Spring Cloud微服务
13.1 微服务和Spring Cloud相关概念
13.1.1 传统架构与微服务的比较
13.1.2 Spring Cloud全家桶组件与微服务的关系
13.2 多模块整合Redis,构建微服务体系
13.2.1 用Docker准备Redis和MySQL集群环境
13.2.2 含Redis和Eureka的微服务架构图
13.2.3 开发Eureka服务器
13.2.4 开发含Redis的风控模块(Eureka客户端)
13.2.5 开发含Redis的下单模块(Eureka客户端)
13.3 Redis与Ribbon整合使用
13.3.1 Ribbon负载均衡组件与Redis的整合效果
13.3.2 引入多个风控组件分摊流量
13.3.3 从缓存和负载均衡维度观察整合后的效果
13.4 本章小结
买过这本书的人还买过
读了这本书的人还在读
同类图书排行榜