目录 简述 数据操作 key操作 列出key 测试指定key是否存在 删除给定key 返回给定key的value类型 返回从当前数据库中随机选择的一个key 原子的重命名一个key Key的超时设置处理 字符串操作 设置key对应的值为string类型的value 获取key对应的string值 增减操作 追加字符串 截取字符串 改写字符串 返回子字符串 中文字符串处理 取指定key的value值的长度 位操作 列表操作 添加元素 查看列表长度 查看列表元素 查看一段列表 截取列表 删除元素 设置list中指定下标的元素值 阻塞队列 集合操作 添加元素 移除元素 删除并返回元素 随机返回一个元素 集合间移动元素 查看集合大小 判断member是否在set中 集合交集 集合并集 集合差集 获取所有元素 有序集合操作 添加元素 删除元素 增加score 获取排名 获取排行榜 返回给定分数区间的元素 返回集合中score在给定区间的数量 返回集合中元素个数 返回给定元素对应的score 评分的聚合 哈希操作 设置hash值 获取hash值 递增某一个域的值 判断某一个域是否存在 删除域 获取域的数量 获取所有的域名 获取所有域的值 获取所有域名和值 HyperLogLog操作 将元素添加至 HyperLogLog 返回给定 HyperLogLog 的基数估算值 合并多个 HyperLogLog 专题功能 排序 事务 流水线 发布订阅 开发设计规范 Key设计 超时设置 数据异常处理 内存考虑 延迟考虑 典型使用场景参考 客户端推荐 上线部署规划 内存规划 网卡RPS设置 服务器部署位置 持久化设置 多实例配置 具体设置参数 其他好用的配置技巧 常见运维操作 启动 停止 查看和修改配置 批量执行操作 选择数据库 清空数据库 重命名命令 执行lua脚本 设置密码 验证密码 性能测试命令 Redis-cli命令行其他操作 持久化与备份恢复 RDB相关操作 AOF相关操作 备份 恢复 数据迁移 将key从当前数据库移动到指定数据库 问题处理 一般处理流程 探测服务是否可用 探测服务延迟 监控正在请求执行的命令 查看统计信息 获取慢查询 查看客户端 查看日志 延迟检查 检查CPU情况 检查网络情况 检查redis整体情况 检查连接数 检查持久化 检查命令执行情况 内存检查 系统内存查看 系统swap内存查看 info查看内存 dump.rdb文件成生内存报告(rdb-tool) query在线分析 内存抽样分析 统计生产上比较大的key 查看key内部结构和编码等问题 Rss与内存碎片增加问题 测试方法 模拟oom 模拟宕机 模拟hang 快速产生测试数据 模拟RDB load情形 模拟AOF load情形 Redis安全问题 Shell提权问题 高可用和集群简述 高可用与分片的概念 高可用主要场景和对应思路 分片主要场景和对应思路 适用场景对比列表 高可用和集群架构与实践 主从复制-sentinel架构 高可用原理 发现原理 基本切换原理 环境搭建 部署架构 网络规划 用户规划 持久化规划 目录规划 部署步骤 配置文件 维护操作 完整启动 启停redis 手动启动 启停sentinel 查看sentinel状态 查看master地址和端口 查看master配置 重置该sentinel 动态修改sentinel配置 主动切换 主从是否完全一致 接收所有事件信息 高可用和异常测试 测试环境介绍 手动切换测试 主实例宕测试 单从实例宕测试 双从实例宕测试 单sentinel宕测试 双sentinel宕测试 master所在主机整体宕测试 slave所在主机整体宕测试 脑裂测试 quorum测试 Master hang死测试 附:sentinel.conf被修改后的含义 附:sentinel事件含义 其他问题 只读性 事件通知 虚拟IP切换 持久化动态修改 Sentinel最大连接数 Sharding架构(Redis 3.0 Cluster) 高可用与分片原理 集群数据分片 集群的主从复制模型 一致性保证 环境搭建 安装部署 集群配置参数 维护操作 连接集群 查看集群状态 查看集群节点状态 增加节点 删除节点 查看slot分配情况 查看key位于哪个slot 查看slot包含的键值对数量 返回 count 个 slot 槽中的键 重置节点 切换主从关系 Sharding架构(Twemproxy) 高可用原理