1. 首页
  2. 编程语言
  3. 其他
  4. Redis V3.0 中文文档

Redis V3.0 中文文档

上传者: 2018-12-28 11:19:37上传 ZIP文件 1.43MB 热度 30次
第 1 章Redis 介绍. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 8 第 2 章数据类型初探. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 10 字符串 (Strings) . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 11 列表 (Lists). . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 12 集合 (Sets) . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 13 哈希 / 散列 (Hashes) . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 14 有序集合 (Sorted sets) . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 15 位图 (Bitmaps) 和超重对数 (HyperLogLogs) . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 16 第 3 章从入门到精通(上) . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 17 Redis 键 (Keys). . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 19 Redis 字符串 (Strings) . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 20 改变和查询键空间 (key space). . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 22 Redis 过期 (expires):有限生存时间的键. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 23 第 4 章从入门到精通(中) . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 24 Redis 列表(Lists) . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 25 Redis 列表起步. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 26 列表的通用场景(Common use cases) . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 28 上限列表(Capped) . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 29 列表的阻塞操作 (blocking) . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 30 自动创建和删除键. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 32 Redis 哈希/散列 (Hashes). . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 34 Redis 集合 (Sets) . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 35 第 5 章从入门到精通(下) . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 38 Redis 有序集合 (Sorted sets) . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 39 范围操作 (ranges) . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 42 字典分数 (Lexicographical scores). . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 43 更新分数:排行榜 (leader boards) . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 44 位图 (Bitmaps). . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 45 超重对数 (HyperLogLogs). . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 47 其他值得注意的特性 (notable features). . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 48 了解更多 (Learn more) . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 49 第 6 章使用 Redis 实现 Twitter(上). . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 50 前提条件(Prerequisites) . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 52 数据设计(Layout) . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 53 粉丝(followers),关注(following),和帖子(updates). . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 54 身份验证(Authentication) . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 55 第 7 章使用 Redis 实现 Twitter(下). . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 58 帖子(Updates) . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 60 帖子分页(Paginating). . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 62 关注用户(Following users) . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 63 水平伸缩(horizontally scalable) . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 64 第 8 章使用 Redis 作为 LRU 缓存. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 65 maxmemory 配置指令(configuration directive) . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 67 回收策略(Eviction policies) . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 68 回收过程 (Eviction process) . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 69 近似的 LRU 算法(Approximated LRU algorithm) . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 70 第 9 章分片. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 72 分片为何有用(Why useful) . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 74 分片基础(Basics) . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 75 分片的不同实现(Different implementations) . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 76 分片的缺点(Disadvantages) . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 77 数据存储还是缓存(Store or cache) . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 78 预分片(Presharding) . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 79 Redis 分片的实现(Implementations) . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 80 Redis 集群(Redis Cluster) . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 81 Twemproxy . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 82 支持一致性哈希的客户端. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 83 第 10 章复制. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 84 主服务器关闭持久化时的安全性(Safety of replication). . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 86 Redis 复制如何工作(How works) . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 87 部分重同步(partial resynchronization) . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 88 无盘复制(Diskless replication) . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 89 配置(Configuration) . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 90 只读从服务器(Read-only slave) . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 91 认证主服务器(Authenticate to a master) . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 92 N 个副本才能写(Allow writes only with N attached replicas) . . . . . . . . . . . . . . . . . . . . . . . 93 第 11 章持久化. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 94 Redis 持久化(Persistence) . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 96 RDB 优点(RDB advantages) . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 97 RDB 缺点(RDB disadvantages). . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 98 AOF 优点(AOF advantages) . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 99 AOF 缺点(AOF disadvantages) . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 100 我们该选谁(what) . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 101 快照(Snapshotting) . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 102 如何工作(How works) . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 103 只追加文件(Append-only file) . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 104 日志重写(Log rewriting). . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 105 AOF 持久性如何(How durable) . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 106 AOF 损坏了怎么办(corrupted). . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 107 如何工作(How works) . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 103 如何从 RDB 切换到 AOF(How switch) . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 109 AOF 和 RDB 的相互作用(Interactions) . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 110 备份数据(Backing up) . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 111 灾难恢复(Disaster recovery). . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 112 第 12 章集中插入. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 113 使用协议,伙计. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 115 生成 Redis 协议(Generating Redis Protocol) . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 116 管道模式如何工作(How works) . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 118 第 13 章高可用(上) . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 119 分布式特性(Distributed nature) . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 121 获取 Sentinel(Obtaining Sentinel) . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 122 运行 Sentinel(Running Sentinel) . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 123 配置 Sentinel(Configuring Sentinel). . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 124 仲裁人数(Quorum) . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 126 配置纪元 (Configuration epochs) . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 127 配置传播(Configuration propagation). . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 128 SDOWN 和 ODOWN 更多细节. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 129 自动发现(Auto discovery) . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 130 第 14 章高可用(下) . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 131 分割下的一致性(Consistency under partitions) . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 132 Sentinel 的持久化状态 (Sentinel persistent state) . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 134 Sentinel 重配置实例(Sentinel reconfiguration of instances). . . . . . . . . . . . . . . . . . . . . . . . 135 从服务器的选举和优先级(Slave selection and priority) . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 136 Sentinel API . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 138 Sentinel 命令. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 139 运行时重配置 Sentinel(Reconfiguring Sentinel). . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 140 添加和删除 Sentinel(Adding or removing Sentinels). . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 141 删除旧的主服务器或不可达从服务器(unreachable) . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 142 发布和订阅消息(Pub/Sub Messages) . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 143 TILT 模式. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 145 处理 - BUSY 状态. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 146 Sentinel 客户端实现. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 147 第 15 章高可用客户端指引. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 148 支持Redis Sentinel的Redis客户端指引. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 150 支持 Redis Sentinel 的 Redis 客户端指引. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 151 通过 Sentinel 实现 Redis 服务发现(Redis service discovery) . . . . . . . . . . . . . . . . . . . . . . . 152 处理重连(Handling reconnections). . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 154 Sentinel 故障转移断开(Sentinel failover disconnection) . . . . . . . . . . . . . . . . . . . . . . . . . . . 155 连接从服务器(Connecting to slaves) . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 156 连接池(Connection pools). . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 157 错误报告(Error reporting) . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 158 Sentinel 列表自动刷新(Sentinels list automatic refresh) . . . . . . . . . . . . . . . . . . . . . . . . . . . 159 订阅 Sentinel 事件来改进响应能力(Subscribe to Sentinel events to improve responsivenes s). . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 160 额外信息(Additional information) . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 161 第 16 章集群(上) . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 162 Redis 集群(Redis Cluster) . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 164 Redis 集群的 TCP 端口(Redis Cluster TCP ports) . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 165 Redis 集群的数据分片(Redis Cluster data sharding) . . . . . . . . . . . . . . . . . . . . . . . . . . . 166 Redis 集群的主从模型(Redis Cluster master-slave model). . . . . . . . . . . . . . . . . . . . . . 167 Redis 集群的一致性保证(Redis Cluster consistency guarantees) . . . . . . . . . . . . . . . . . 168 创建和使用 Redis 集群(Creating and using a Redis Cluster) . . . . . . . . . . . . . . . . . . . . . 170 创建集群(Creating the cluster) . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 172 与集群共舞(Playing with the cluste) . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 173 第 17 章集群(中) . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 174 使用 redis-rb-cluster 写一个示例应用. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 175 重新分片集群(Resharding the cluster) . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 178 一个更有意思的示例程序. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 180 测试故障转移(Testing the failover) . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 182 第 18 章集群(下) . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 184 手动故障转移(Manual failover) . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 185 添加新节点(Adding a new node) . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 186 添加副本节点(Adding a new node as a replica) . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 188 移除节点(Removing a node) . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 189 副本迁移(Replicas migration) . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 190 升级节点(Upgrading nodes in a Redis Cluster) . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 191 迁移到 Redis 集群(Migrating to Redis Cluster) . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 192 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 13 哈希 / 散列 (Hashes) . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 14 有序集合 (Sorted sets) . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 15 位图 (Bitmaps) 和超重对数 (HyperLogLogs) . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 16 第 3 章从入门到精通(上) . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 17 Redis 键 (Keys). . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 19 Redis 字符串 (Strings) . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 20 改变和查询键空间 (key space). . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 22 Redis 过期 (expires):有限生存时间的键. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 23 第 4 章从入门到精通(中) . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 24 Redis 列表(Lists) . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 25 Redis 列表起步. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 26 列表的通用场景(Common use cases) . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 28 上限列表(Capped) . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 29 列表的阻塞操作 (blocking) . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 30 自动创建和删除键. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 32 Redis 哈希/散列 (Hashes). . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 34 Redis 集合 (Sets) . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 35 第 5 章从入门到精通(下) . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 38 Redis 有序集合 (Sorted sets) . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 39 范围操作 (ranges) . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 42 字典分数 (Lexicographical scores). . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 43 更新分数:排行榜 (leader boards) . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 44 位图 (Bitmaps). . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 45 超重对数 (HyperLogLogs). . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 47 其他值得注意的特性 (notable features). . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 48 了解更多 (Learn more) . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 49 第 6 章使用 Redis 实现 Twitter(上). . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 50 前提条件(Prerequisites) . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 52 数据设计(Layout) . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 53 粉丝(followers),关注(following),和帖子(updates). . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 54 身份验证(Authentication) . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 55 第 7 章使用 Redis 实现 Twitter(下). . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 58 帖子(Updates) . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 60 帖子分页(Paginating). . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 62 关注用户(Following users) . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 63 水平伸缩(horizontally scalable) . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 64 第 8 章使用 Redis 作为 LRU 缓存. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 65 maxmemory 配置指令(configuration directive) . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 67 回收策略(Eviction policies) . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 68 回收过程 (Eviction process) . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 69 近似的 LRU 算法(Approximated LRU algorithm) . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 70 第 9 章分片. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 72 分片为何有用(Why useful) . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 74 分片基础(Basics) . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 75 分片的不同实现(Different implementations) . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 76 分片的缺点(Disadvantages) . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 77 数据存储还是缓存(Store or cache) . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 78 预分片(Presharding) . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 79 Redis 分片的实现(Implementations) . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 80 Redis 集群(Redis Cluster) . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 81 Twemproxy . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 82 支持一致性哈希的客户端. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 83 第 10 章复制. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 84 主服务器关闭持久化时的安全性(Safety of replication). . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 86 Redis 复制如何工作(How works) . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 87 部分重同步(partial resynchronization) . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 88 无盘复制(Diskless replication) . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 89 配置(Configuration) . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 90 只读从服务器(Read-only slave) . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 91 认证主服务器(Authenticate to a master) . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 92 N 个副本才能写(Allow writes only with N attached replicas) . . . . . . . . . . . . . . . . . . . . . . . 93 第 11 章持久化. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 94 Redis 持久化(Persistence) . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 96 RDB 优点(RDB advantages) . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 97 RDB 缺点(RDB disadvantages). . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 98 AOF 优点(AOF advantages) . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 99 AOF 缺点(AOF disadvantages) . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 100 我们该选谁(what) . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 101 快照(Snapshotting) . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 102 如何工作(How works) . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 103 只追加文件(Append-only file) . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 104 日志重写(Log rewriting). . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 105 AOF 持久性如何(How durable) . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 106 AOF 损坏了怎么办(corrupted). . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 107 如何工作(How works) . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 103 如何从 RDB 切换到 AOF(How switch) . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 109 AOF 和 RDB 的相互作用(Interactions) . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 110 备份数据(Backing up) . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 111 灾难恢复(Disaster recovery). . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 112 第 12 章集中插入. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 113 使用协议,伙计. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 115 生成 Redis 协议(Generating Redis Protocol) . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 116 管道模式如何工作(How works) . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 118 第 13 章高可用(上) . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 119 分布式特性(Distributed nature) . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 121 获取 Sentinel(Obtaining Sentinel) . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 122 运行 Sentinel(Running Sentinel) . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 123 配置 Sentinel(Configuring Sentinel). . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 124 仲裁人数(Quorum) . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 126 配置纪元 (Configuration epochs) . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 127 配置传播(Configuration propagation). . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 128 SDOWN 和 ODOWN 更多细节. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 129 自动发现(Auto discovery) . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 130 第 14 章高可用(下) . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 131 分割下的一致性(Consistency under partitions) . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 132 Sentinel 的持久化状态 (Sentinel persistent state) . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 134 Sentinel 重配置实例(Sentinel reconfiguration of instances). . . . . . . . . . . . . . . . . . . . . . . . 135 从服务器的选举和优先级(Slave selection and priority) . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 136 Sentinel API . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 138 Sentinel 命令. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 139 运行时重配置 Sentinel(Reconfiguring Sentinel). . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 140 添加和删除 Sentinel(Adding or removing Sentinels). . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 141 删除旧的主服务器或不可达从服务器(unreachable) . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 142 发布和订阅消息(Pub/Sub Messages) . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 143 TILT 模式. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 145 处理 - BUSY 状态. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 146 Sentinel 客户端实现. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 147 第 15 章高可用客户端指引. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 148 支持Redis Sentinel的Redis客户端指引. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 150 支持 Redis Sentinel 的 Redis 客户端指引. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 151 通过 Sentinel 实现 Redis 服务发现(Redis service discovery) . . . . . . . . . . . . . . . . . . . . . . . 152 处理重连(Handling reconnections). . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 154 Sentinel 故障转移断开(Sentinel failover disconnection) . . . . . . . . . . . . . . . . . . . . . . . . . . . 155 连接从服务器(Connecting to slaves) . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 156 连接池(Connection pools). . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 157 错误报告(Error reporting) . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 158 Sentinel 列表自动刷新(Sentinels list automatic refresh) . . . . . . . . . . . . . . . . . . . . . . . . . . . 159 订阅 Sentinel 事件来改进响应能力(Subscribe to Sentinel events to improve responsivenes s). . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 160 额外信息(Additional information) . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 161 第 16 章集群(上) . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 162 Redis 集群(Redis Cluster) . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 164 Redis 集群的 TCP 端口(Redis Cluster TCP ports) . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 165 Redis 集群的数据分片(Redis Cluster data sharding) . . . . . . . . . . . . . . . . . . . . . . . . . . . 166 Redis 集群的主从模型(Redis Cluster master-slave model). . . . . . . . . . . . . . . . . . . . . . 167 Redis 集群的一致性保证(Redis Cluster consistency guarantees) . . . . . . . . . . . . . . . . . 168 创建和使用 Redis 集群(Creating and using a Redis Cluster) . . . . . . . . . . . . . . . . . . . . . 170 创建集群(Creating the cluster) . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 172 与集群共舞(Playing with the cluste) . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 173 第 17 章集群(中) . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 174 使用 redis-rb-cluster 写一个示例应用. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 175 重新分片集群(Resharding the cluster) . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 178 一个更有意思的示例程序. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 180 测试故障转移(Testing the failover) . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 182 第 18 章集群(下) . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 184 手动故障转移(Manual failover) . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 185 添加新节点(Adding a new node) . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 186 添加副本节点(Adding a new node as a replica) . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 188 移除节点(Removing a node) . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 189 副本迁移(Replicas migration) . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 190 升级节点(Upgrading nodes in a Redis Cluster) . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 191 迁移到 Redis 集群(Migrating to Redis Cluster) . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 192
用户评论