C/C++开发社区|CTOLib
介绍
1.
简述
2.
数据操作
2.1.
key操作
2.1.1.
列出key
2.1.2.
测试指定key是否存在
2.1.3.
删除给定key
2.1.4.
返回给定key的value类型
2.1.5.
返回从当前数据库中随机选择的一个key
2.1.6.
原子的重命名一个key
2.1.7.
Key的超时设置处理
2.2.
字符串操作
2.2.1.
设置key对应的值为string类型的value
2.2.2.
获取key对应的string值
2.2.3.
增减操作
2.2.4.
追加字符串
2.2.5.
截取字符串
2.2.6.
改写字符串
2.2.7.
返回子字符串
2.2.8.
中文字符串处理
2.2.9.
取指定key的value值的长度
2.2.10.
位操作
2.3.
列表操作
2.3.1.
添加元素
2.3.2.
查看列表长度
2.3.3.
查看列表元素
2.3.4.
查看一端列表
2.3.5.
截取列表
2.3.6.
删除元素
2.3.7.
设置list中指定下标的元素值
2.3.8.
阻塞队列
2.4.
集合操作
2.4.1.
添加元素
2.4.2.
移除元素
2.4.3.
删除并返回元素
2.4.4.
随机返回一个元素
2.4.5.
集合间移动元素
2.4.6.
查看集合大小
2.4.7.
判断member是否在set中
2.4.8.
集合交集
2.4.9.
集合并集
2.4.10.
集合差集
2.4.11.
获取所有元素
2.5.
有序集合操作
2.5.1.
添加元素
2.5.2.
删除元素
2.5.3.
增加score
2.5.4.
获取排名
2.5.5.
获取排行榜
2.5.6.
返回给定分数区间的元素
2.5.7.
返回集合中score在给定区间的数量
2.5.8.
返回集合中元素个数
2.5.9.
返回给定元素对应的score
2.5.10.
评分的聚合
2.6.
哈希操作
2.6.1.
设置hash值
2.6.2.
获取hash值
2.6.3.
递增某一个域的值
2.6.4.
判断某一个域是否存在
2.6.5.
删除域
2.6.6.
获取域的数量
2.6.7.
获取所有的域名
2.6.8.
获取所有域的值
2.6.9.
获取所有域名和值
2.7.
HyperLogLog操作
2.7.1.
将元素添加至 HyperLogLog
2.7.2.
返回给定 HyperLogLog 的基数估算值
2.7.3.
合并多个 HyperLogLog
3.
专题功能
3.1.
排序
3.2.
事务
3.3.
流水线
3.4.
发布订阅
4.
开发设计规范
4.1.
Key设计
4.2.
超时设置
4.3.
数据异常处理
4.4.
内存考虑
4.5.
延迟考虑
4.6.
典型使用场景参考
4.7.
客户端推荐
5.
上线部署规划
5.1.
内存规划
5.2.
网卡RPS设置
5.3.
服务器部署位置
5.4.
持久化设置
5.5.
多实例配置
5.6.
具体设置参数
5.7.
其他好用的配置技巧
6.
常见运维操作
6.1.
启动
6.2.
停止
6.3.
查看和修改配置
6.4.
批量执行操作
6.5.
选择数据库
6.6.
清空数据库
6.7.
重命名命令
6.8.
执行lua脚本
6.9.
设置密码
6.10.
验证密码
6.11.
性能测试命令
6.12.
Redis-cli命令行其他操作
6.13.
持久化与备份恢复
6.13.1.
RDB相关操作
6.13.2.
AOF相关操作
6.13.3.
备份
6.13.4.
恢复
7.
数据迁移
7.1.
将key从当前数据库移动到指定数据库
8.
问题处理
8.1.
一般处理流程
8.1.1.
探测服务是否可用
8.1.2.
探测服务延迟
8.1.3.
监控正在请求执行的命令
8.1.4.
查看统计信息
8.1.5.
获取慢查询
8.1.6.
查看客户端
8.1.7.
查看日志
8.2.
延迟检查
8.2.1.
检查CPU情况
8.2.2.
检查网络情况
8.2.3.
检查redis整体情况
8.2.4.
检查连接数
8.2.5.
检查持久化
8.2.6.
检查命令执行情况
8.3.
内存检查
8.3.1.
系统内存查看
8.3.2.
系统swap内存查看
8.3.3.
info查看内存
8.3.4.
dump.rdb文件成生内存报告(rdb-tool)
8.3.5.
query在线分析
8.3.6.
内存抽样分析
8.3.7.
统计生产上比较大的key
8.3.8.
查看key内部结构和编码等问题
8.3.9.
Rss与内存碎片增加问题
9.
测试方法
9.1.
模拟oom
9.2.
模拟宕机
9.3.
模拟hang
9.4.
快速产生测试数据
9.5.
模拟RDB load情形
9.6.
模拟AOF load情形
10.
Redis安全问题
10.1.
Shell提权问题
11.
高可用和集群简述
11.1.
高可用与分片的概念
11.2.
高可用主要场景和对应思路
11.3.
分片主要场景和对应思路
11.4.
适用场景对比列表
12.
高可用和集群架构与实践
12.1.
主从复制-sentinel架构
12.1.1.
高可用原理
12.1.1.1.
发现原理
12.1.1.2.
基本切换原理
12.1.2.
环境搭建
12.1.2.1.
部署架构
12.1.2.2.
网络规划
12.1.2.3.
用户规划
12.1.2.4.
持久化规划
12.1.2.5.
目录规划
12.1.2.6.
部署步骤
12.1.2.7.
配置文件
12.1.3.
维护操作
12.1.3.1.
完整启动
12.1.3.2.
启停redis
12.1.3.3.
手动启动
12.1.3.4.
启停sentinel
12.1.3.5.
查看sentinel状态
12.1.3.6.
查看master地址和端口
12.1.3.7.
查看master配置
12.1.3.8.
重置该sentinel
12.1.3.9.
动态修改sentinel配置
12.1.3.10.
主动切换
12.1.3.11.
主从是否完全一致
12.1.3.12.
接收所有事件信息
12.1.4.
高可用和异常测试
12.1.4.1.
测试环境介绍
12.1.4.2.
手动切换测试
12.1.4.3.
主实例宕测试
12.1.4.4.
单从实例宕测试
12.1.4.5.
双从实例宕测试
12.1.4.6.
单sentinel宕测试
12.1.4.7.
双sentinel宕测试
12.1.4.8.
master所在主机整体宕测试
12.1.4.9.
slave所在主机整体宕测试
12.1.4.10.
脑裂测试
12.1.4.11.
quorum测试
12.1.4.12.
Master hang死测试
12.1.4.13.
附:sentinel.conf被修改后的含义
12.1.4.14.
附:sentinel事件含义
12.1.5.
其他问题
12.1.5.1.
只读性
12.1.5.2.
事件通知
12.1.5.3.
虚拟IP切换
12.1.5.4.
持久化动态修改
12.1.5.5.
Sentinel最大连接数
本书使用 GitBook 发布
Redis开发运维实践指南
11.1.2.3 用户规划
用户名
用户所在组
用户目录
权限
备注
redis(10086)
redis (10086)
/redis
sudo(如需要浮动IP时赋予)
--