命令参
字 串
哈希
列
合
有序 合
发布
事务
本
接
服务器
功 概
事件 型
命令产
期 发 时
事务
事务中
为什么 不支持回
放弃事务
使 操作实 乐
了
使 实
本和事务
发布与
信息 格式
模式
和模式接收同一条信息
总数
例
客户 库实 提
复制
复制功 作原
分 同
只 从服务器
从服务器 关
主服务器只在有 少 个从服务器 情况下 才执 写操作
信协
层
新 一 协
回复
态回复
回复
整数回复
批 回复
多条批 回复
多条批 回复中 元
多命令和
内 命令
性 协 分析器
持久化
持久化
优
优
和 我应 哪一个
快
快 作方式
只 加操作 文件
写
有多 久
如果 文件出 了 怎么办
作方式
怎么从 持久化切换到 持久化
和 之 互作
备份 数据
容 备份
取
启动
主 下 和客 下
个 定期执 任务
动发 和从服务器
故
模式
处 态
客户 实
教
介
数据共享
中 主从复制
一 性保
创建并使
创建
客户
使 写一个 例应
对 新分
一个更有 例应
故
加新 到
一个
引
什么是
实 功 子
协 中 客户 和服务器
分布模型
属性
握手 已实
向
在
向
容
发布 已实 但仍 改善
录 实 参
关于
捐 支持本文档
删 定 一个或多个 。
不存在 会 忽 。
可 本
时 复杂度
为 删 数 。
删 单个字 串 型 时 复杂度为 。
删 单个列 、 合、有序 合或哈希 型 时 复杂度为 为以上数据 构内
元 数 。
回值 删 数 。
删 单个
删 一个不存在
失 有 删
同时删 多个
命令参
序列化 定 并 回 序列化 值 使 命令可以将 个值反序列化为 。
序列化 成 值有以下几个
它带有 位 校 和 于检 在 反序列化之前会先检查校 和。
值 格式和 文件保持一 。
本会 在序列化值当中 如果因为 本不同 成 格式不兼容 么
会拒 对 个值 反序列化操作。
序列化 值不包括任何 存时 信息。
可 本
时 复杂度
查找 定 复杂度为 对 序列化 复杂度为 其中 是构成
对 数 则是 些对 平均大小。
如果序列化 对 是 小 字 串 么复杂度为 。
回值
如果 不存在 么 回 。
否则 回序列化之后 值。
检查 定 是否存在。
可 本
命令参
时 复杂度
回值 存在 回 否则 回 。
为 定 存时 当 期时 存时 为 它会 动删 。
在 中 带有 存时 为『易失 』 。
存时 可以 使 命令来删 整个 来 或 和 命令 写
意味 如果一个命令只是修改 一个带 存时 值 不是 一个新 值来代替
它 么 存时 不会 改变。
如 对一个 执 命令 对一个列 命令 或 对一个哈希 执 命令
操作 不会修改 本 存时 。
另一方 如果使 对一个 改名 么改名后 存时 和改名前一样。
命令 另一 可 是 尝 将一个带 存时 改名成另一个带 存时
时旧 以及它 存时 会 删 后旧 会改名为 因 新
存时 也和原本 一样。
使 命令可以在不删 情况下 存时 新成为一个『持久 』
。
更新 存时
可以对一个已 带有 存时 执 命令 新指定 存时 会取代旧 存时 。
期时 度
在 本中 期时 延 在 之内——也即是 就 已 期 但它 是可 在 期
之后一 之内 到 在新 本中 延 低到 之内。
之前 不同之处
在 之前 本中 修改一个带有 存时 会导 整个 删 一 为是受当时复
制 层 制 作出 在 一 制已 修复。
可 本
时 复杂度
回值
成功 回 。
命令参
当 不存在或 不 为 存时 时 如在低于 本 中你尝 更新
存时 回 。
期时 为
查 剩余 存时
更新 期时
模式 导 会
假 你有一 服务 打 根据 户最 个 来 品推 并且假 户停
么就 录 为了减少 品推 并且保持推 品 新 度 。
些最 录 我们 之为『导 会 』 可以 和 命令在
中实 它 当 户 一个 时候 执 以下代
如果 户停 么它 导 会 就会 当 户 新开始 时候 又会 新
录导 会 品推 。
作 和 似 于为 存时 。
不同在于 命令接受 时 参数是 时 戳 。
可 本
时 复杂度
回值
如果 存时 成功 回 。
当 不存在或 办 存时 回 。
个 将在 期
命令参
查找所有 合 定模式 。
匹 数据库中所有 。
匹 和 。
匹 和 。
匹 和 但不匹 。
号 开
度 常快 但在一个大 数据库中使 它仍 可 成性 如果你 从
一个数据 中查找 定 你最好 是 合 构 来代替。
可 本
时 复杂度 为数据库中 数 。
回值 合 定模式 列 。
一次 个
匹 数据库内所有
将 原子性地从当前实例传 到 标实例 指定数据库上 一旦传 成功 保 会出 在 标实例
上 当前实例上 会 删 。
命令参
个命令是一个原子操作 它在执 时候会 塞 两个实例 到以下任意 果发 成
功 失 到 时。
命令 内 实 是 样 它在当前实例对 定 执 命令 将它序列化 后传 到 标实例
标实例再使 对数据 反序列化 并将反序列化所得 数据 加到数据库中 当前实例就
像 标实例 客户 样 只 到 命令 回 它就会 删 己数据库上 。
参数以 为格式 指定当前实例和 标实例 最大 时 。 明操作并不一定 在
内完成 只是 数据传 时 不 个 数。
命令 在 定 时 定内完成 操作。如果在传 数据时发 或 到了 时
时 么命令会停 执 并 回一个 。
当 出 时 有以下两 可
可 存在于两个实例
可 只存在于当前实例
唯一不可 发 情况就是丢失 因 如果一个客户 执 命令 并且不幸 上
么 个客户 唯一 做 就是检查 己数据库上 是否已 地删 。
如果有其他 发 么 保 只会出 在当前实例中。 当 标实例 定数据库上
可 有和 同名 不 和 命令 有关 。
可
不 实例上 。
替换 标实例上已存在 。
可 本
时 复杂度
个命令在 实例上实 执 命令和 命令 在 标实例执 命令 查 以上
命令 文档可以 到 复杂度 明。
数据在两个实例之 传 复杂度为 。
回值 成功时 回 否则 回 应 。
例
先启动两个 实例 一个使 口 一个使 口。
后 客户 上 口 实例 一个 后将它 到 口 实例上
命令参
成功后 删
使 另一个客户 查 口上 实例
将当前数据库 动到 定 数据库 当中。
如果当前数据库 数据库 和 定数据库 标数据库 有 同名字 定 或 不存在于当前
数据库 么 有任何效果。
因 也可以利 一 性 将 当作 原 。
可 本
时 复杂度
回值 动成功 回 失 则 回 。
存在于当前数据库
使 数据库 为了 晰 再显式指定一次
将 动到数据库
已
使 数据库
实 到了数据库 意命令提 变成了 明 在使 数
当 不存在 时候
命令参
图从数据库 动一个不存在 到数据库 失
使 数据库
实 不存在
当 数据库和 标数据库有 同 时
使 数据库
使 数据库
使 数据库 并 图将 动到数据库
因为两个数据库有 同 失
数据库 变
数据库 也是
命令允 从内 察 定 对 。
它 常 在 或 了 为了 对 使 情况。
当将 作 存 序时 你也可以 命令中 信息 决定
。
命令有多个子命令
回 定 引 所储存 值 次数。 命令主 于 。
回 定 储存 值所使 内 。
命令参
回 定 储存以来 时 有 取也 有 写入 以
为单位。
对 可以以多 方式
字 串可以 为 一 字 串 或 字 串 位数字是为了 。
列 可以 为 或 。 是为 大小 小 列 作 。
合可以 为 或 。 是只储存数字 小 合 。
哈希 可以 为 或 。 是小哈希 。
有序 合可以 为 或 格式。 于 小 有序 合
则 于 任何大小 有序 合。
假如你做了什么 办 再使 时 如将一个只有 个元 合扩展为一个有
万个元 合 型 会 动 换成 型 。
可 本
时 复杂度
回值
和 回数字。
回 应 型。
一个字 串
只有一个引
待一 后查 时
提取 它处于 态
不再处于
字 串 方式
大 数字也 为字 串
数字 为
命令参
定 存时 将 个 从『易失 』 带 存时 换成『持久 』 一个不带 存时
、 不 期 。
可 本
时 复杂度
回值
当 存时 成功时 回
如果 不存在或 有 存时 回 。
为 存时
存时
个命令和 命令 作 似 但是它以 为单位 存时 不像 命令
样 以 为单位。
可 本
时 复杂度
回值
成功 回
不存在或 失 回
回值以 为单位
可以 出准 数
命令参
个命令和 命令 似 但它以 为单位 期 时 戳 不是像
样 以 为单位。
可 本
时 复杂度
回值
如果 存时 成功 回 。
当 不存在或 办 存时 时 回 。 查 命令 取更多信息
回
回
个命令 似于 命令 但它以 为单位 回 剩余 存时 不是像 命令 样 以 为
单位。
可 本
复杂度
回值
当 不存在时 回 。
当 存在但 有 剩余 存时 时 回 。
否则 以 为单位 回 剩余 存时 。
在 以前 当 不存在 或 有 剩余 存时 时 命令 回 。
不存在
存在 但 有 剩余 存时
命令参
有剩余 存时
从当前数据库中 机 回 不删 一个 。
可 本
时 复杂度
回值
当数据库不为 时 回一个 。
当数据库为 时 回 。
数据库不为
多个
查 数据库内所有 明 并不删
数据库为
删 当前数据库所有
命令参
将 改名为 。
当 和 同 或 不存在时 回一个 。
当 已 存在时 命令将 旧值。
可 本
时 复杂度
回值 改名成功时提 失 时候 回一个 。
存在且 不存在
不复存在
取 代之
当 不存在时 回
已存在时 会 旧
原来 值 了
命令参
当且仅当 不存在时 将 改名为 。
当 不存在时 回一个 。
可 本
时 复杂度
回值
修改成功时 回 。
如果 已 存在 回 。
不存在 改名成功
存在时 失
反序列化 定 序列化值 并将它和 定 关 。
参数 以 为单位为 存时 如果 为 么不 存时 。
在执 反序列化之前会先对序列化值 本和数据校 和 检查 如果 本不
同或 数据不完整 么 会拒 反序列化 并 回一个 。
如果 已 存在 并且 定了 么使 反序列化得出 值来代替 原有 值
反地 如果 已 存在 但是 有 定 么命令 回一个 。
更多信息可以参 命令。
可 本
命令参
时 复杂度
查找 定 复杂度为 对 反序列化 复杂度为 其中 是构成
对 数 则是 些对 平均大小。
有序 合 反序列化复杂度为 因为有序 合 次插入 复杂度为
。
如果反序列化 对 是 小 字 串 么复杂度为 。
回值
如果反序列化成功 么 回 否则 回一个 。
创建一个 作为 命令 入
将序列化数据 到另一个 上
在 有 定 情况下 再次尝 反序列化到同一个 失
定 对同一个 反序列化成功
尝 使 无效 值 反序列化 出
回或保存 定列 、 合、有序 合 中 排序 元 。
排序 以数字作为对 值 为双 度 数 后 。
一
最 单 使 方 是 和
命令参
回 值从小到大排序 果。
回 值从大到小排序 果。
假 列 保存了今日 开 么可以 命令对它 排序
开 列
排序
序排序
使 修 对字 串 排序
因为 命令 排序对 为数字 当 对字 串 排序时 显式地在 命令之后 加
修
址
按数字 排序
按字 排序
如果 地 了 境变 别 。
命令参
使 修 制 回 果
排序之后 回元 数 可以 修 制 修 接受 和 两个参数
指定 元 数 。
指定 个指定 元 之后 回多少个对 。
以下例子 回排序 果 前 个对 为 有元 。
加 数据 列 值为 指
回列 中最小 个值
可以 合使 多个修 。以下例子 回从大到小排序 前 个对 。
使 外 排序
可以使 外 数据作为权 代替 接对 值 方式来 排序。
假 在有 户数据如下
以下代 将数据 入到 中
命令参
情况下 接按 中 值排序
使 可以 按其他 元 来排序。
如 以下代 按 大小来排序
是一个占位 它先取出 中 值 后再 个值来查找 应 。
如在对 列 排序时 序就会先取出 值 、 、 、 后使 、
命令参
、 和 值作为排序 权 。
使 可以根据排序 果来取出 应 值。
如 以下代 先排序 再取出 值
合使 和
合使 和 可以 排序 果以更 方式显 出来。
如 以下代 先按 来排序 列 再取出 应 值
在 排序 果 只使 得多。
取多个外
可以同时使 多个 取多个外 值。
以下代 就按 分别 取 和
有一个 外 参数 则 就是——可以 取 排序 值。
以下代 就将 值、及其 应 和 回为 果
命令参
取外 但不 排序
将一个不存在 作为参数传 可以 排序操作 接 回 果
在单 使 时 什么实 处。
不 将 和 合 就可以在不排序 情况下 取多个外 当于执 一个整合
取操作 似于 数据库 关 字 。
以下代 了 如何在不引 排序 情况下 使 、 和 取多个外
将哈希 作为 或 参数
了可以将字 串 之外 哈希 也可以作为 或 参数来使 。
如 对于前 出 户信息
我们可以不将 户 名字和 别保存在 和 两个字 串 中 是
一个带有 域和 域 哈希 来保存 户 名字和 别信息
命令参
之后 和 可以 格式来 取哈希 中 域 值 其中 哈希
则 哈希 域
保存排序 果
情况下 操作只是 单地 回排序 果 并不 任何保存操作。
指定一个 参数 可以将排序 果保存到 定 上。
如果 指定 已存在 么原有 值将 排序 果 。
数据
排序后 果
命令参
可以 将 命令 执 果保存 并 为 果 存时 以 来产 一个 操作
果 存。
样就可以 免对 操作 只有当 果 期时 才 再 一次 操作。
另外 为了 实 一 你可 加 以 免多个客户 同时 存 建 也就是多个客户
同一时 操作 并保存为 果 具体参 命令。
可 本
时 复杂度
为 排序 列 或 合内 元 数 为 回 元 数 。
如果只是使 命令 取数据 有 排序 时 复杂度 。
回值
有使 参数 回列 形式 排序 果。
使 参数 回排序 果 元 数 。
以 为单位 回 定 剩余 存时 。
可 本
时 复杂度
回值
当 不存在时 回 。
当 存在但 有 剩余 存时 时 回 。
否则 以 为单位 回 剩余 存时 。
在 以前 当 不存在 或 有 剩余 存时 时 命令 回 。
不存在
存在 但 有 剩余 存时
命令参
有剩余 存时
回 所储存 值 型。
可 本
时 复杂度
回值
不存在
字 串
列
合
有序
哈希
字 串
列
合
命令参
命令及其 关 命令、 命令和 命令 于增 地 代
一 元
命令 于 代当前数据库中 数据库 。
命令 于 代 合 中 元 。
命令 于 代哈希 中 值对。
命令 于 代有序 合中 元 包括元 成员和元 分值 。
以上列出 四个命令 支持增 式 代 它们 次执 只会 回少 元 所以 些命令可以 于 产
境 不会出 像 命令、 命令带来 ——当 命令 于处 一个大 数据
库时 又或 命令 于处 一个大 合 时 它们可 会 塞服务器 数 之久。
不 增 式 代命令也不是 有 举个例子 使 命令可以 回 合 当前包含 所
有元 但是对于 增 式 代命令来 因为在对 增 式 代 中 可 会 修
改 所以增 式 代命令只 对 回 元 提供有 保
。
因为 、 、 和 四个命令 工作方式 常 似 所以 个文档会一并介
四个命令 但是 住
命令、 命令和 命令 一个参数总是一个数据库 。
命令则不 在 一个参数提供任何数据库 ——因为它 代 是当前数据库中 所有数据
库 。
命令 基本
命令是一个基于 标 代器 命令 次 之后 会向 户
回一个新 标 户在下次 代时 使 个新 标作为 命令 标参数 以 来延 之前
代 。
当 命令 标参数 为 时 服务器将开始一次新 代 当服务器向 户 回值为
标时 代已 束。
以下是一个 命令 代 例
命令参
在上 个例子中 一次 代使 作为 标 开始一次新 代。
二次 代使 是 一次 代时 回 标 也即是命令回复 一个元 值—— 。
从上 例可以 到 命令 回复是一个包含两个元 数 一个数 元 是 于 下一
次 代 新 标 二个数 元 则是一个数 个数 中包含了所有 代 元 。
在 二次 命令时 命令 回了 标 代已 束 整个数据 已
完整 历 了。
以 作为 标开始一次新 代 一 命令 到命令 回 标 我们 个 为一次完
整 历 。
命令 保
命令 以及其他增 式 代命令 在 完整 历 情况下可以为 户带来以下保 从完整 历
开始 到完整 历 束期 一 存在于数据 内 所有元 会 完整 历 回 意味 如果有一个
元 它从 历开始 到 历 束期 存在于 历 数据 当中 么 命令总会在某次 代中
将 个元 回 户。
因为增 式命令仅仅使 标来 录 代 态 所以 些命令带有以下
同一个元 可 会 回多次。处 复元 工作交 应 序 如 可以 将 代
回 元 仅仅 于可以安全地 复执 多次 操作上。
如果一个元 是在 代 中 加到数据 又或 是在 代 中从数据 中 删 么
个元 可 会 回 也可 不会 是未定义 。
命令 次执 回 元 数
增 式 代命令并不保 次执 回某个 定数 元 。
增 式命令 可 会 回 个元 但只 命令 回 标不是 应 序就不应 将 代 作 束。
不 命令 回 元 数 总是 合一定 则 在实 中
对于一个大数据 来 增 式 代命令 次最多可 会 回数十个元
对于一个 够小 数据 来 如果 个数据 底层 为 数据 构
于是小 合 、小哈希 和小有序 合 么增 代命令将在一次 中 回数据
中 所有元 。
最后 户可以 增 式 代命令提供 来指定 次 代 回元 最大值。
命令参
增 式 代命令不保 次 代所 回 元 数 但我们可以使 对命令 为
一定 度上 整。
基本上 作 就是 户告 代命令 在 次 代中应 从数据 回多少元 。
只是对增 式 代命令 一 提 但是在大多数情况下 提 是有效 。
参数 值为 。
在 代一个 够大 、 哈希 实 数据库、 合 、哈希 或 有序 合 时 如果 户 有使
么命令 回 元 数 常和 指定 一样 或 指定
数 多一些。
在 代一个 为整数 合 一个只 整数值构成 小 合 、或 为压 列
不同值构成 一个小哈希或 一个小有序 合 时 增 式 代命令 常会无 指定
值 在 一次 代就将数据 包含 所有元 回 户。
并 次 代 使 同 值。
户可以在 次 代中按 己 意改变 值 只 得将上次 代 回 标 到下次 代
就可以了。
和 命令一样 增 式 代命令也可以 提供一个 格 模式参数 命令只 回和 定模式
匹 元 一 可以 在执 增 式 代命令时 定 参数来实 。
以下是一个使 代 例
意 是 对元 模式匹 工作是在命令从数据 中取出元 之后 向客户 回元 之前 时
内 所以如果 代 数据 中只有少 元 和模式 匹 么 代命令或 会在多次执 中
不 回任何元 。
以下是 情况 一个例子
命令参
如你所 以上 大 分 代 不 回任何元 。
在最后一次 代 我们 将 参数 为 强制命令为本次 代扫描更多元 从 使
得命令 回 元 也变多了。
并发执 多个 代
在同一时 可以有任意多个客户 对同一数据 代 客户 次执 代 传入一个 标 并
在 代执 之后 得一个新 标 个 标就包含了 代 所有 态 因 服务器无 为 代 录任
何 态。
中 停 代
因为 代 所有 态 保存在 标 服务器无 为 代保存任何 态 所以客户 可以在中 停 一
个 代 无 对服务器 任何 。
即使有任意数 代在中 停 也不会产 任何 。
使 标 增 式 代
使 断 、 数、 出 围或 其他 常 标来执 增 式 代并不会 成服务器崩
但可 会 命令产 未定义 为。
未定义 为指 是 增 式命令对 回值所做 保 可 会不再为 。
只有两 标是合
在开始一个新 代时 标必 为 。
增 式 代命令在执 之后 回 于延 代 标。
命令参
代 保
增 式 代命令所使 只保 在数据 大小有 情况下 代才会停 换句
如果 代数据 大小不断地增 增 式 代命令可 也无 完成一次完整 代。
从 上可以 出 当一个数据 不断地变大时 想 个数据 中 所有元 就 做 来 多 工
作 否 束一个 代取决于 户执 代 度是否 数据 增 度更快。
可 本
时 复杂度
增 式 代命令 次执 复杂度为 对数据 一次完整 代 复杂度为 其
中 为数据 中 元 数 。
回值
命令、 命令、 命令和 命令 回一个包含两个元
回复 回复 一个元 是字 串 无 号 位整数 标 回复 二个元 是另一个
回复 个 回复包含了本次 代 元 。
命令 回 个元 是一个数据库 。
命令 回 个元 是一个 合成员。
命令 回 个元 是一个 值对 一个 值对 一个 和一个值 成。
命令 回 个元 是一个有序 合元 一个有序 合元 一个成员
和一个分值 成。
字 串
如果 已 存在并且是一个字 串 命令将 加到 原来 值 末尾。
如果 不存在 就 单地将 定 为 就像执 一样。
可 本
时 复杂度 平摊
回值 加 之后 中字 串 度。
对不存在 执
保 不存在
对不存在 同于
字 度
对已存在 字 串
度从 个字 增加到 个字
模式 时 序列
可以为一 列定 数据 提供一 凑 方式 常 之为时 序列。
当一个新数据到 时候 执 以下命令
后可以 以下 方式 时 序列 各 属性
出时 序列中数据 数
命令参
可以 于 机 。只 有 关 时 信息 我们就可以在 中使
本和 命令实 二分查找。
可以 于 或修改已存在 时 序列。
个模式 唯一 是我们只 增 时 序列 不 对时 序列 因为 前 有对字
串 修剪 命令 但是 不 怎么 个模式 储存方式 是可以 下大 。
可以 使 时 戳作为时 序列 名 样一来 可以 免单个 因为保存 大 时
序列 占 大 内存 另一方 也可以 下大 命名 。
下 是一个时 序列 例子
定字 串中 为 位 数 。
一 情况下 定 整个字 串 会 数 指定 外 或 参数 可以 数只在
定 位上 。
和 参数 和 命令 似 可以使 数值 如 最后一个位
倒数 二个位 以 推。
不存在 当成是 字 串来处 因 对一个不存在 操作 果为 。
可 本
时 复杂度
回值 为 位 数 。
字 串
命令参
模式 使 实 户上 次数
对于一些 定 型 常有效。
假 在我们希望 录 己 上 户 上 如 户 上 了多少天 户 上
了多少天 如 以 作为数据 从 决定 哪些 户参加 动—— 个模式可以使
和 来实 。
如 当 户在某一天上 时候 我们就使 以 户名作为 将 天所代
上 日作为 参数 并将 个 上 为 为 。
举个例子 如果今天是 上 天 户 在今天 么执 命令
如果明天 也 么执 命令 以 推。
当 总共以来 上 次数时 就使 命令 执 得出 果就
是 上 总天数。
更 实 可以参 博文 墙外 。
性
前 上 次数 例子 即使 年 占 也只是 个 户 位 也即是 个
户 字 。对于 大小 数据来 处 度就像 和 复杂度
操作一样快。
如果你 数据 常大 么可以 使 以下两 方
将一个大 分散到不同 中 作为小 来处 。使 本可以很方便地完
成 一工作。
使 和 参数 次只对所 分位 将位 工作
放到客户 并且对 果 存 。
对一个或多个保存二 制位 字 串 位元操作 并将 果保存到 上。
可以是 、 、 、 四 操作中 任意一
对一个或多个 并 并将 果保存到 。
对一个或多个 或 并将 果保存到 。
对一个或多个 异或 并将 果保存到 。
对 定 并将 果保存到 。
了 操作之外 其他操作 可以接受一个或多个 作为 入。
处 不同 度 字 串
当 处 不同 度 字 串时 个字 串所 少 分会 作 。
也 作是包含 字 串序列。
命令参
可 本
时 复杂度
回值 保存到 字 串 度 和 入 中最 字 串 度 。
复杂度为 当处 大型 或 大数据 时 最好将任务指
到 属 免 塞主 。
将 中储存 数字值减一。
如果 不存在 么 值会先 初始化为 后再执 操作。
如果值包含 型 或字 串 型 值不 为数字 么 回一个 。
本操作 值 制在 位 有 号数字 之内。
关于 增 减 操作 更多信息 参 命令。
可 本
时 复杂度
回值 执 命令之后 值。
字 串
命令参
对存在 数字值
对不存在 值
对存在但不是数值
将 所储存 值减去减 。
如果 不存在 么 值会先 初始化为 后再执 操作。
如果值包含 型 或字 串 型 值不 为数字 么 回一个 。
本操作 值 制在 位 有 号数字 之内。
关于更多 增 减 操作 更多信息 参 命令。
可 本
时 复杂度
回值 减去 之后 值。
对已存在
对不存在
命令参
回 所关 字 串值。
如果 不存在 么 回 值 。
假如 储存 值不是字 串 型 回一个 因为 只 于处 字 串值。
可 本
时 复杂度
回值
当 不存在时 回 否则 回 值。
如果 不是字 串 型 么 回一个 。
对不存在 或字 串 型
对不是字 串 型
对 所储存 字 串值 取指定偏 上 位 。
当 字 串值 度大 或 不存在时 回 。
可 本
字 串
命令参
时 复杂度
回值 字 串值指定偏 上 位 。
对不存在 或 不存在 回
对已存在
回 中字 串值 子字 串 字 串 截取 围 和 两个偏 决定 包括 和
在内 。
数偏 从字 串最后开始 数 最后一个字 倒数 二个 以 推。
保 子字 串 值域 不 实 字 串 值域来处 出 围 值域 。
在 本 叫作 。
可 本
时 复杂度
为 回 字 串 度。
复杂度最 字 串 回值 度决定 但因为从已有字 串中取出子字 串 操作 常廉价
所以对于 度不大 字 串 操作 复杂度也可 作 。
回值 截取得出 子字 串。
回 引 字 包括
不支持回 操作
数 引
从 一个到最后一个
命令参
值域 围不 实 字 串 分 动
将 定 值 为 并 回 旧值 。
当 存在但不是字 串 型时 回一个 。
可 本
时 复杂度
回值
回 定 旧值。
当 有旧值时 也即是 不存在时 回 。
有旧值 回
回旧值
模式
可以和 合使 实 一个有原子性 复位操作 数器 。
举例来 次当某个事件发 时 可 对一个名为 操作 常我们
在一个原子时 内同时完成 得 数器 值和将 数器值复位为 两个操作。
可以 命令 来实 一 标。
一个原子内完成 和 操作
数器
字 串
命令参
将 中储存 数字值增一。
如果 不存在 么 值会先 初始化为 后再执 操作。
如果值包含 型 或字 串 型 值不 为数字 么 回一个 。
本操作 值 制在 位 有 号数字 之内。
是一个 对字 串 操作 因为 有专 整数 型 所以 内储存 字 串 为
十 制 位有 号整数来执 操作。
可 本
时 复杂度
回值 执 命令之后 值。
数字值在 中以字 串 形式保存
模式 数器
数器是 原子性 增操作可实 最 模式了 它 想 当 单 当某个操作发 时 向
发 一个 命令。
如在一个 应 序中 如果想 户在一年中 天 击 么只 将 户 以及 关 日期
信息作为 并在 次 户 击 时 执 一次 增操作即可。
如 户名是 击时 是 年 月 日 么执 命令 。
可以 以下几 方式扩展 个 单 模式
可以 合使 和 来 到只在 定 存时 内 数 。
客户 可以 使 命令原子性地 取 数器 当前值并将 数器 更多信息 参
命令。
使 其他 增 减操作 如 和 户可以 执 不同 操作增加或减少 数器
值 如在 戏中 分器就可 到 些命令。
模式 器
器是 化 器 它 于 制一个操作可以 执 。
器 典型 是 制公开 次数 以下是一个 器实 例 它将 最大 数 制
在 个 地址 十个之内
命令参
个实 为 个 地址使 一个不同 数器 并 命令 存时 样 就会
动删 期 数器 。
意 我们使 事务打包执 命令和 命令 免引入 争条件 保 次 时 可
以 地对 数器 增操作并 存时 。
以下是另一个 器实
个 器只使 单个 数器 它 存时 为一 如果在一 内 个 数器 值大于
么 就会 。
个新 器在思 方 是 有 但它在实 方 不够严 如果我们仔 察一下 就会
发 在 和 之 存在 一个 争条件 假如客户 在执 之后 因为某些原因 如客
户 失 忘 么 个 数器就会一 存在下去 成 个 户只 次
噢 是个
个实 中 争条件 我们可以将它 化为一个 本 并放到 中 个方 仅 于
及以上 本
将 数器作为 本放到 上 我们保 了 和 两个操作 原子性 在 个
本实 不会引入 争条件 它可以 作 很好。
关于在 中 本 更多信息 参 命令。
有另一 争条件 方 就是使 列 构来代替 命令 个方 无 本支持
因 它在 以下 本也可以 得很好
字 串
命令参
新 器使 了列 构作为容器 于对 次数 检查 一个事务包
和 两个命令 于在 一次执 数时创建列 并 地 期时 最后
在后 数操作中 增加操作。
将 所储存 值加上增 。
如果 不存在 么 值会先 初始化为 后再执 命令。
如果值包含 型 或字 串 型 值不 为数字 么 回一个 。
本操作 值 制在 位 有 号数字 之内。
关于 增 减 操作 更多信息 参 命令。
可 本
时 复杂度
回值 加上 之后 值。
存在且是数字值
不存在时
命令参
不是数字值时
为 中所储存 值加上 数增 。
如果 不存在 么 会先将 值 为 再执 加 操作。
如果命令执 成功 么 值会 更新为 执 加 之后 新值 并且新值会以字 串 形式 回
。
无 是 值 是增 可以使 像 、 、 样 指数 号
来 但是 执 命令之后 值总是以同样 形式储存 也即是 它们总
是 一个数字 一个 可 小数 和一个任意位 小数 分 成 如 、 如
小数 分尾 会 如果有 会将 数改为整数 如 会 保存成 。
之外 无 加 所得 数 实 度有多 果也最多只 小
数 后十七位。
当以下任意一个条件发 时 回一个
值不是字 串 型 因为 中 数字和 数 以字 串 形式保存 所以它们 属于字
串 型
当前 值或 定 增 不 为双 度 数
可 本
时 复杂度
回值 执 命令之后 值。
值和增 不是指数 号
值和增 是指数 号
值可以是指数 号
字 串
命令参
但执 之后格式会 改成 指数 号
可以对整数 型执
后 会
值小数 分可以是
但 会将无 忽 掉 有 将 变为整数
回所有 一个或多个 定 值。
如果 定 有某个 不存在 么 个 回 值 。因 命令 不失 。
可 本
时 复杂度 为 定 数 。
回值 一个包含所有 定 值 列 。
不存在 回
命令参
同时 一个或多个 对。
如果某个 定 已 存在 么 会 新值 原来 旧值 如果 不是你所希望 效果
使 命令 它只会在所有 定 不存在 情况下 操作。
是一个原子性 操作 所有 定 会在同一时 内 某些 定 更新 另一
些 定 有改变 情况 不可 发 。
可 本
时 复杂度 为 数 。
回值 总是 回 因为 不可 失
旧值例子
同时 一个或多个 对 当且仅当所有 定 不存在。
即使只有一个 定 已存在 也会拒 执 所有 定 操作。
是原子性 因 它可以 作 多个不同 不同字 唯一性 对
所有字 么全 么全不 。
可 本
时 复杂度 为 数 。
回值
当所有 成功 回 。
如果所有 定 失 少有一个 已 存在 么 回 。
字 串
命令参
对不存在
定 当中有已存在
已 存在 操作失
因为 是原子性操作 有
也 有 修改
个命令和 命令 似 但它以 为单位 存时 不是像 命令 样 以
为单位。
可 本
时 复杂度
回值 成功时 回 。
将字 串值 关 到 。
如果 已 持有其他值 就 写旧值 无 型。
对于某个原本带有 存时 来 当 命令成功在 个 上执 时 个 原有 将
。
可 参数
命令参
从 本开始 命令 为可以 一 列参数来修改
期时 为 。 效果 同于
。
期时 为 。 效果
同于 。
只在 不存在时 才对 操作。 效果 同于 。
只在 已 存在时 才对 操作。
因为 命令可以 参数来实 和 、 和 三个命令 效果 所以将来
本可 会废弃并最 、 和 三个命令。
可 本
时 复杂度
回值 在 本以前 命令总是 回 。
从 本开始 在 操作成功完成时 才 回 。
如果 了 或 但因为条件 到 成 操作未执 么命令 回 批 回复
。
对不存在
对已存在
使
使
字 串
命令参
使
不存在 成功
已 存在 失
持原值不变
使
因为 不存在 失
先 一个值
新值成功
或 可以和 或 合使
命令参
和 可以同时出 但后 出 会 前 出
是 参数 值
是 参数 值
使 模式
命令 是一 在 中实 单方 。
客户 执 以上 命令
如果服务器 回 么 个客户 得 。
如果服务器 回 么客户 取 失 可以在 后再 。
期时 到 之后 将 动 放。
可以 以下修改 个 实 更健壮
不使 固定 字 串作为 值 是 一个不可 机字 串 作为口
令串 。
不使 命令来 放 是发 一个 本 个 本只在客户 传入 值和 口令串
匹 时 才对 删 。
两个改动可以 持有 期 客户 删 有 情况出 。
以下是一个 单 本 例
个 本可以 命令来 。
字 串
命令参
对 所储存 字 串值 或 指定偏 上 位 。
位 或 取决于 参数 可以是 也可以是 。
当 不存在时 动 成一个新 字 串值。
字 串会 伸展 以 保它可以将 保存在指定 偏 上。当字 串值 伸展时
位 以 填充。
参数必 大于或 于 小于 映射 制在 之内 。
对使 大 操作来 内存分 可 成 服务器 塞。具体参
命令 告 分。
可 本
时 复杂度
回值 指定偏 原来储存 位。
初始化为
将值 关 到 并将 存时 为 以 为单位 。
如果 已 存在 命令将 写旧值。
个命令 似于以下两个命令
存时
不同之处是 是一个原子性 操作 关 值和 存时 两个动作会在同一时 内完成
命令在 作 存时 常实 。
可 本
时 复杂度
回值
成功时 回 。
当 参数不合 时 回一个 。
命令参
在 不存在时
值
剩余 存时
已 存在时 旧值
将 值 为 当且仅当 不存在。
定 已 存在 则 不做任何动作。
是『 』 如果不存在 则 写。
可 本
时 复杂度
回值
成功 回 。
失 回 。
不存在
成功
尝 失
有
字 串
命令参
参数 写 定 所储存 字 串值 从偏 开始。
不存在 当作 字 串处 。
命令会 保字 串 够 以便将 在指定 偏 上 如果 定 原来储存 字
串 度 偏 小 如字 串只有 个字 但你 是 么原字 和偏 之
将 字 来填充。
意你 使 最大偏 是 因为 字 串 大小 制在 兆
以内。如果你 使 更大 你可以使 多个 。
当 成一个很 字 串时 分 内存 操作有时候可 会 成服务器
塞 。在 年 上 偏 为 内存分
偏 为 内存分 偏 内存分
偏 为 内存分 。 意 次内存分 成
功之后 再对同一个 操作 无 再 新内存。
可 本
时 复杂度
对小 字 串 平摊复杂度 。 关于什么字 串是 小 参 命令
否则为 为 参数 度。
回值 修改之后 字 串 度。
对 字 串
对 字 串 不存在
对不存在 使
处 填充
模式
因为有了 和 命令 你可以将 字 串 作具有 机 时 性数
在很多 实 例中 是 常快 且 效 储存方式 具体 参 命令 『模式 时 序列』
命令参
分。
回 所储存 字 串值 度。
当 储存 不是字 串值时 回一个 。
可 本
复杂度
回值
字 串值 度。
当 不存在时 回 。
取字 串 度
不存在 度为
字 串
哈希
删 哈希 中 一个或多个指定域 不存在 域将 忽 。
在 以下 本 次只 删 单个域 如果你 在一个原子时 内删 多个
域 将命令包含在 块内。
可 本
时 复杂度 为 删 域 数 。
回值 成功 域 数 不包括 忽 域。
数据
删 单个域
删 不存在 域
删 多个域
命令参
查 哈希 中 定域 是否存在。
可 本
时 复杂度
回值
如果哈希 含有 定域 回 。
如果哈希 不含有 定域 或 不存在 回 。
回哈希 中 定域 值。
可 本
时 复杂度
回值
定域 值。
当 定域不存在或是 定 不存在时 回 。
域存在
域不存在
哈希
命令参
回哈希 中 所有 域和值。
在 回值 个域名 之后是域 值 所以 回值 度是哈希 大小 两倍。
可 本
时 复杂度 为哈希 大小。
回值
以列 形式 回哈希 域和域 值。
不存在 回 列 。
域
值
为哈希 中 域 值加上增 。
增 也可以为 数 当于对 定域 减 操作。
如果 不存在 一个新 哈希 创建并执 命令。
如果域 不存在 么在执 命令前 域 值 初始化为 。
对一个储存字 串值 域 执 命令将 成一个 。
本操作 值 制在 位 有 号数字 之内。
可 本
时 复杂度
回值 执 命令之后 哈希 中域 值。
为 数
对 域
命令参
为 数
尝 对字 串值 域执 命令
定一个字 串值
命令执 失
原值不变
为哈希 中 域 加上 数增 。
如果哈希 中 有域 么 会先将域 值 为 后再执 加 操作。
如果 不存在 么 会先创建一个哈希 再创建域 最后再执 加 操作。
当以下任意一个条件发 时 回一个
域 值不是字 串 型 因为 中 数字和 数 以字 串 形式保存 所以它们 属
于字 串 型
域 当前 值或 定 增 不 为双 度 数
命令 功 和 命令 似 查 命令 取更多
关信息。
可 本
时 复杂度
回值 执 加 操作之后 域 值。
哈希
命令参
值和增 是普 小数
值和增 是指数 号
对不存在 执
对不存在 域
新增 域
回哈希 中 所有域。
可 本
时 复杂度 为哈希 大小。
回值
一个包含哈希 中所有域 。
当 不存在时 回一个 。
哈希
命令参
哈希 不存在
回哈希 中域 数 。
时 复杂度
回值
哈希 中域 数 。
当 不存在时 回 。
回哈希 中 一个或多个 定域 值。
如果 定 域不存在于哈希 么 回一个 值。
因为不存在 当作一个 哈希 来处 所以对一个不存在 操作将 回一个只
带有 值 。
可 本
哈希
命令参
时 复杂度 为 定域 数 。
回值 一个包含多个 定域 关 值 值 排列 序和 定域参数 序一样。
一次 多个域
回值 序和传入参数 序一样
不存在 域 回 值
同时将多个 域 值 对 到哈希 中。
命令会 哈希 中已存在 域。
如果 不存在 一个 哈希 创建并执 操作。
可 本
时 复杂度 为 对 数 。
回值
如果命令执 成功 回 。
当 不是哈希 型时 回一个 。
将哈希 中 域 值 为 。
如果 不存在 一个新 哈希 创建并 操作。
如果域 已 存在于哈希 中 旧值将 。
可 本
时 复杂度
回值
如果 是哈希 中 一个新建域 并且值 成功 回 。
如果哈希 中域 已 存在且旧值已 新值 回 。
命令参
一个新域
一个旧域
将哈希 中 域 值 为 当且仅当域 不存在。
域 已 存在 操作无效。
如果 不存在 一个新哈希 创建并执 命令。
可 本
时 复杂度
回值
成功 回 。
如果 定域已 存在且 有操作 执 回 。
操作无效 域 已存在
回哈希 中所有域 值。
可 本
时 复杂度 为哈希 大小。
回值
一个包含哈希 中所有值 。
当 不存在时 回一个 。
哈希
哈希 不存在
哈希
命令参
具体信息 参 命令。
命令参
哈希
列
是列 塞式 弹出原 。
它是 命令 塞 本 当 定列 内 有任何元 可供弹出 时候 接将 命令 塞
到 待 时或发 可弹出元 为 。
当 定多个 参数时 按参数 先后 序依次检查各个列 弹出 一个 列 头元 。
塞 为
当 时 如果 定 内 少有一个 列 么弹出 到 一个 列 头元 并
和 弹出元 所属 列 名字一 成 果 回 。
当存在多个 定 时 按 定 参数排列 先后 序 依次检查各个列 。
假 在有 、 和 三个列 其中 不存在 和 持有 列
。 以下命令
保 回 元 来 因为它是按 查找 查找 查找 样
序 一个找到 列 。
保 删
为 列 增加一个值
为 列 增加一个值
列 为 接 列 一个元 弹出
弹出元 所属 列
弹出元 所属 值
塞 为
如果所有 定 不存在或包含 列 么 命令将 塞 接 到 待 时 或有另一个客户
对 定 任意一个执 或 命令为 。
时参数 接受一个以 为单位 数字作为值。 时参数 为 塞时 可以无 期延
。
命令参
保两个 不存在
因为 一开始不存在 所以操作会 塞 到另一客户 对 或 列
是
弹出 值
待 数
待 时 情况
待 数
同 多个客户 同时 塞
同 可以 多个客户 同时 塞。
不同 客户 放 一个 列中 按『先 塞先服务』 序为 执
命令。
在 事务中
可以 于 批 地发 多个命令并 入多个回复 但把它 在
块当中 有意义。因为 整个服务器 塞以保 块执 时 原子性 为 了其他客户 执
或 命令。
因 一个 包 在 块内 命令 为 得就像 一样 对 列 回
对 列 弹出列 元 不 任何 塞操作。
对 列 操作
不 塞 即 回
对 列 操作
列
不 塞 即 回
列
命令参
可 本
时 复杂度
回值
如果列 为 回一个 。
否则 回一个含有两个元 列 一个元 是 弹出元 所属 二个元 是 弹出元
值。
模式 事件提
有时候 为了 待一个新元 到 数据中 使 方式对数据 探查。
另一 更好 方式是 使 提供 塞原 在新元 到 时 即 处 新元 到 时 就
一 塞住 免 占 。
对于 我们似乎 一个 塞 命令 但实 上 使 或 就 很好地
决 个 。
使 元 客户 可以执 似以下 代
加元 客户 则执 以下代
是列 塞式 弹出原 。
它是 命令 塞 本 当 定列 内 有任何元 可供弹出 时候 接将 命令 塞
到 待 时或发 可弹出元 为 。
当 定多个 参数时 按参数 先后 序依次检查各个列 弹出 一个 列 尾 元 。
关于 塞操作 更多信息 查 命令 了弹出元 位 和 不同之外 其他
一 。
可 本
时 复杂度
回值
假如在指定时 内 有任何元 弹出 则 回一个 和 待时 。
反之 回一个含有两个元 列 一个元 是 弹出元 所属 二个元 是 弹出元
值。
命令参
弹出元
弹出元 值
是 塞 本 当 定列 不为 时
和 一样。
当列 为 时 命令将 塞 接 到 待 时 或有另一个客户 对 执
或 命令为 。
时参数 接受一个以 为单位 数字作为值。 时参数 为 塞时 可以无 期延
。
更多 关信息 参 命令。
可 本
时 复杂度
回值
假如在指定时 内 有任何元 弹出 则 回一个 和 待时 。
反之 回一个含有两个元 列 一个元 是 弹出元 值 二个元 是 待时 。
列
弹出元 值
待时
列
列
命令参
模式 安全 列
参 命令 『安全 列』模式。
模式 循 列
参 命令 『循 列 』模式。
回列 中 下标为 元 。
下标 参数 和 以 为底 也就是 以 列 一个元 以 列
二个元 以 推。
你也可以使 数下标 以 列 最后一个元 列 倒数 二个元 以 推。
如果 不是列 型 回一个 。
可 本
时 复杂度
为到 下标 中 元 数 。
因 对列 头元 和尾元 执 命令 复杂度为 。
回值
列 中下标为 元 。
如果 参数 值不在列 区 围内 回 。
不在 区 围内
将值 插入到列 当中 位于值 之前或之后。
当 不存在于列 时 不执 任何操作。
命令参
当 不存在时 为 列 不执 任何操作。
如果 不是列 型 回一个 。
可 本
时 复杂度 为寻找 中 元 数 。
回值
如果命令执 成功 回插入操作完成之后 列 度。
如果 有找到 回 。
如果 不存在或为 列 回 。
对一个 列 插入 查找一个不存在
失
对一个 列 执 命令
失
回列 度。
如果 不存在 则 为一个 列 回
如果 不是列 型 回一个 。
可 本
时 复杂度
回值 列 度。
列
命令参
列
列
并 回列 头元 。
可 本
时 复杂度
回值
列 头元 。
当 不存在时 回 。
头元
将一个或多个值 插入到列 头
如果有多个 值 么各个 值按从左到右 序依次插入到 头 如 对 列
执 命令 列 值将是 同于原子性地执 、
和 三个命令。
如果 不存在 一个 列 会 创建并执 操作。
命令参
当 存在但不是列 型时 回一个 。
在 本以前 命令 只接受单个 值。
可 本
时 复杂度
回值 执 命令后 列 度。
加入单个元
加入 复元
列 允 复元
加入多个元
将值 插入到列 头 当且仅当 存在并且是一个列 。
和 命令 反 当 不存在时 命令什么也不做。
可 本
时 复杂度
回值 命令执 之后 度。
对 列 执
是一个 列
尝 失 因为列 为
列
命令参
对 列 执
先 创建一个有一个元 列
次 执 成功
回列 中指定区 内 元 区 以偏 和 指定。
下标 参数 和 以 为底 也就是 以 列 一个元 以 列
二个元 以 推。
你也可以使 数下标 以 列 最后一个元 列 倒数 二个元 以 推。
意 命令和 区 函数 区别
假如你有一个包含一 个元 列 对 列 执 果是一个包含 个元 列
明 下标也在 命令 取值 围之内 区 和某些 区 函数可 不一
如 、 和 函数。
出 围 下标
出 围 下标值不会引 。
如果 下标 列 最大下标 减去 大 么 回一个 列 。
如果 下标 下标 大 将 值 为 。
可 本
时 复杂度 为偏 为指定区 内元 数 。
回值 一个列 包含指定区 内 元 。
命令参
根据参数 值 列 中与参数 元 。
值可以是以下几
从 头开始向 尾搜 与 元 数 为 。
从 尾开始向 头搜 与 元 数 为 对值。
中所有与 值。
可 本
时 复杂度 为列 度。
回值
元 数 。
因为不存在 作 所以当 不存在时 命令总是 回 。
先创建一个 内容排列是
查 所有元
从 头到 尾 最先发 两个
两个元
剩 个元
从 尾到 头 一个
剩下两个元
列
命令参
中所有
两个
将列 下标为 元 值 为 。
当 参数 出 围 或对一个 列 不存在 时 回一个 。
关于列 下标 更多信息 参 命令。
可 本
时 复杂度
对头元 或尾元 操作 复杂度为 。
其他情况下 为 为列 度。
回值 操作成功 回 否则 回 信息。
对 列 不存在
对 列
出 围
列 度为
命令参
对一个列 修剪 就是 列 只保 指定区 内 元 不在指定区 之内 元 将 删
。
举个例子 执 命令 只保 列 前三个元 其余元 全 删 。
下标 参数 和 以 为底 也就是 以 列 一个元 以 列
二个元 以 推。
你也可以使 数下标 以 列 最后一个元 列 倒数 二个元 以 推。
当 不是列 型时 回一个 。
命令 常和 命令或 命令 合使 举个例子
个例子模拟了一个日志 序 次将最新日志 放到 列 中 并且只保 最新 。
意当 样使 命令时 时 复杂度是 因为平均情况下 次只有一个元 。
意 命令和 区 函数 区别
假如你有一个包含一 个元 列 对 列 执 果是一个包含 个元
列 明 下标也在 命令 取值 围之内 区 和某些 区 函数可 不一
如 、 和 函数。
出 围 下标
出 围 下标值不会引 。
如果 下标 列 最大下标 减去 大 或 回
一个 列 因为 已 将整个列 。
如果 下标 下标 大 将 值 为 。
可 本
时 复杂度 为 元 数 。
回值
命令执 成功时 回 。
情况 常 情况 和 在列 引 围之内
是一个包含 个字 串 列
删 列 引为 元
列
命令参
删 了
情况 列 最大下标 大
保 列 引 引 上 元
只有 引 上 元 删 了 其他元 在
情况 和 列 最大下标 大 并且
列
情况 和 列 最大下标 大 并且
新建 一个新列
执
同样
并 回列 尾元 。
可 本
时 复杂度
回值
命令参
列 尾元 。
当 不存在时 回 。
回 弹出 元
列 剩下 元
命令 在一个原子时 内 执 以下两个动作
将列 中 最后一个元 尾元 弹出 并 回 客户 。
将 弹出 元 插入到列 作为 列 头元 。
举个例子 你有两个列 和 列 有元 列 有元
执 之后 列 包含元 列
包含元 并且元 会 回 客户 。
如果 不存在 值 回 并且不执 其他动作。
如果 和 同 则列 中 尾元 动到 头 并 回 元 可以把
情况 作列 旋 操作。
可 本
时 复杂度
回值 弹出 元 。
和 不同
查 所有元
执 一次
列
命令参
再执 一次 实 和 位
和 同
旋 到了 头
次是 旋 到了 头
模式 安全 列
列 常 作 列 于在不同 序之 有序地交换 息 。一个客户
命令将 息放入 列中 另一个客户 或 命令取出 列中 待时 最
息。
不幸 是 上 列方 是『不安全』 因为在 个 中 一个客户 可 在取出一个 息之后崩
未处 完 息也就因 丢失。
使 命令 或 它 塞 本 可以 决 个 因为它不仅 回一个
息 同时 将 个 息 加到另一个备份列 当中 如果一切 常 当一个客户 完成某个 息 处
之后 可以 命令将 个 息从备份 删 。
最后 可以 加一个客户 专 于 备份 它 动地将 一定处 时 息 新放入 列中去
处 息 客户 可 已 崩 样就不会丢失任何 息了。
命令参
模式 循 列
使 同 作为 命令 两个参数 客户 可以 一个接一个地 取列 元 方
式 取得列 所有元 不必像 命令 样一下子将所有列 元 从服务器传 到客户 中
两 方式 总复杂度 是 。
以上 模式 在以下 两个情况下也 常工作
有多个客户 同时对同一个列 旋 它们 取不同 元 到所有元 取
完 之后又从头开始。
有客户 在向列 尾 右 加新元 。
个模式使得我们可以很容易实 样一 有 个客户 不断地对一些元 处
且处 必 尽可 地快。一个典型 例子就是服务器 控 序 它们 在尽可 时 内
并 地检查一 保它们 可 性。
意 使 个模式 客户 是易于扩展 且安全 因为就 接收到元 客户 失
元 是保存在列 不会丢失 到下个 代来临 时候 别 客户 又可以 处 些元 了。
将一个或多个值 插入到列 尾 最右 。
如果有多个 值 么各个 值按从左到右 序依次插入到 尾 如对一个 列
执 得出 果列 为 同于执 命令 、
、 。
如果 不存在 一个 列 会 创建并执 操作。
当 存在但不是列 型时 回一个 。
在 本以前 命令 只接受单个 值。
可 本
时 复杂度
回值 执 操作后 度。
加单个元
加 复元
列 允 复元
列
命令参
加多个元
将值 插入到列 尾 当且仅当 存在并且是一个列 。
和 命令 反 当 不存在时 命令什么也不做。
可 本
时 复杂度
回值 命令执 之后 度。
不存在
对不存在 失
存在且是一个 列
先 插入一个元
在是一个列 型 操作成功
命令参
列
合
将一个或多个 元 加入到 合 当中 已 存在于 合 元 将 忽 。
假如 不存在 则创建一个只包含 元 作成员 合。
当 不是 合 型时 回一个 。
在 本以前 只接受单个 值。
可 本
时 复杂度 是 加 元 数 。
回值 加到 合中 新元 数 不包括 忽 元 。
加单个元
加 复元
加多个元
命令参
回 合 基数 合中元 数 。
可 本
时 复杂度
回值
合 基数。
当 不存在时 回 。
合
合
回一个 合 全 成员 合是所有 定 合之 差 。
不存在 为 。
可 本
时 复杂度 是所有 定 合 成员数 之和。
回值 交 成员 列 。
合
命令参
个命令 作 和 似 但它将 果保存到 合 不是 单地 回 果 。
如果 合已 存在 则将其 。
可以是 本 。
可 本
时 复杂度 是所有 定 合 成员数 之和。
回值 果 中 元 数 。
回一个 合 全 成员 合是所有 定 合 交 。
不存在 为 。
当 定 合当中有一个 时 果也为 根据 合 定律 。
可 本
时 复杂度 为 定 合当中基数最小 合 为 定 合 个数。
回值 交 成员 列 。
命令参
个命令 似于 命令 但它将 果保存到 合 不是 单地 回 果 。
如果 合已 存在 则将其 。
可以是 本 。
可 本
时 复杂度 为 定 合当中基数最小 合 为 定 合 个数。
回值 果 中 成员数 。
判断 元 是否 合 成员。
可 本
时 复杂度
回值
如果 元 是 合 成员 回 。
如果 元 不是 合 成员 或 不存在 回 。
合
命令参
回 合 中 所有成员。
不存在 为 合。
可 本
时 复杂度 为 合 基数。
回值 合中 所有成员。
不存在或 合为
合
将 元 从 合 动到 合。
是原子性操作。
如果 合不存在或不包含指定 元 则 命令不执 任何操作 仅 回 。否则
元 从 合中 并 加到 合中去。
当 合已 包含 元 时 命令只是 单地将 合中 元
删 。
当 或 不是 合 型时 回一个 。
可 本
时 复杂度
回值
如果 元 成功 回 。
如果 元 不是 合 成员 并且 有任何操作对 合执 么 回
。
命令参
并 回 合中 一个 机元 。
如果只想 取一个 机元 但不想 元 从 合中 可以使 命令。
可 本
时 复杂度
回值
机元 。
当 不存在或 是 时 回 。
如果命令执 时 只提供了 参数 么 回 合中 一个 机元 。
合
命令参
从 本开始 命令接受可 参数
如果 为 数 且小于 合基数 么命令 回一个包含 个元 数 数 中 元 各
不 同。如果 大于 于 合基数 么 回整个 合。
如果 为 数 么命令 回一个数 数 中 元 可 会 复出 多次 数 度为
对值。
操作和 似 但 将 机元 从 合中 并 回 则仅仅 回 机元
不对 合 任何改动。
可 本
时 复杂度
只提供 参数时为 。
如果提供了 参数 么为 为 回数 元 个数。
回值
只提供 参数时 回一个元 如果 合为 回 。
如果提供了 参数 么 回一个数 如果 合为 回 数 。
加元
只 定 参数 回一个 机元
定 为 参数 回 个 机元
个 机元 不 同
定 为 参数 回 个 机元
元 可 会 复出 多次
如果 是整数 且大于 于 合基数 么 回整个 合
命令参
如果 是 数 且 对值大于 合 基数
么 回 数 度为 对值
并不会修改 合内容
合为 时 回 或 数
合 中 一个或多个 元 不存在 元 会 忽 。
当 不是 合 型 回一个 。
在 本以前 只接受单个 值。
可 本
时 复杂度 为 定 元 数 。
回值 成功 元 数 不包括 忽 元 。
数据
合
命令参
单个元
不存在元
多个元
回一个 合 全 成员 合是所有 定 合 并 。
不存在 为 。
可 本
时 复杂度 是所有 定 合 成员数 之和。
回值 并 成员 列 。
个命令 似于 命令 但它将 果保存到 合 不是 单地 回 果 。
如果 已 存在 则将其 。
可以是 本 。
可 本
命令参
时 复杂度 是所有 定 合 成员数 之和。
回值 果 中 元 数 。
信息 参 命令。
合
有序 合
将一个或多个 元 及其 值加入到有序 当中。
如果某个 已 是有序 成员 么更新 个 值 并 新插入 个
元 来保 在 位 上。
值可以是整数值或双 度 数。
如果 不存在 则创建一个 有序 并执 操作。
当 存在但不是有序 型时 回一个 。
对有序 更多介 参 。
在 本以前 次只 加一个元 。
可 本
时 复杂度 是有序 基数 为成功 加 新成员 数 。
回值 成功 加 新成员 数 不包括 些 更新 、已 存在 成员。
加单个元
加多个元
命令参
加已存在元 且 值不变
有改变
加已存在元 但是改变 值
元 值 改变
回有序 基数。
可 本
时 复杂度
回值
当 存在且是有序 型时 回有序 基数。
当 不存在时 回 。
加一个成员
再 加一个成员
对不存在 操作
有序 合
命令参
回有序 中 值在 和 之 包括 值 于 或 成员 数 。
关于参数 和 使 方 参 命令。
可 本
时 复杂度 为有序 基数 为值在 和 之 元 数 。
回值 值在 和 之 成员 数 。
数据
在 之 人数
在 之 人数
为有序 成员 值加上增 。
可以 传 一个 数值 减去 应 值 如 就是
值减去 。
当 不存在 或 不是 成员时 同于
。
当 不是有序 型时 回一个 。
值可以是整数值或双 度 数。
可 本
时 复杂度
回值 成员 新 值 以字 串形式 。
加 啦
命令参
回有序 中 指定区 内 成员。
其中成员 位 按 值 增 从小到大 来排序。
具有 同 值 成员按字典序 来排列。
如果你 成员按 值 减 从大到小 来排列 使 命令。
下标参数 和 以 为底 也就是 以 有序 一个成员 以 有序 二个成
员 以 推。
你也可以使 数下标 以 最后一个成员 倒数 二个成员 以 推。
出 围 下标并不会引 。
如 当 值 有序 最大下标 大 或是 时 命令只是 单地
回一个 列 。
另一方 假如 参数 值 有序 最大下标 大 么 将 当作最大下标来处 。
可以 使 来 成员和它 值一并 回 回列 以
格式 。
客户 库可 会 回一些更复杂 数据 型 如数 、元 。
可 本
时 复杂度 为有序 基数 为 果 基数。
回值 指定区 内 带有 值 可 有序 成员 列 。
显 整个有序 成员
显 有序 下标区 成员
下标 出最大下标时 情况
有序 合
命令参
当 定区 不存在于有序 时 情况
回有序 中 所有 值介于 和 之 包括 于 或 成员。有序 成员按
值 增 从小到大 次序排列。
具有 同 值 成员按字典序 来排列 属性是有序 提供 不 外
。
可 参数指定 回 果 数 及区 就像 中 意当
很大时 定位 操作可 历整个有序 最坏复杂度为 时 。
可 参数决定 果 是单单 回有序 成员 是将有序 成员及其 值一 回。
本 可 。
区 及无
和 可以是 和 样一来 你就可以在不 有序 最低和最 值 情况下
使 命令。
情况下 区 取值使 区 小于 于或大于 于 你也可以 参数前增加 号来使 可
开区 小于或大于 。
举个例子
回所有 合条件 成员
则 回所有 合条件 成员。
可 本
时 复杂度 为有序 基数 为 果 基数。
回值 指定区 内 带有 值 可 有序 成员 列 。
数据
显 整个有序
显 整个有序 及成员 值
命令参
显 工 所有成员
显 工 大于 小于 于 成员
回有序 中成员 排名。其中有序 成员按 值 增 从小到大 序排列。
排名以 为底 也就是 值最小 成员排名为 。
使 命令可以 得成员按 值 减 从大到小 排列 排名。
可 本
时 复杂度
回值
如果 是有序 成员 回 排名。
如果 不是有序 成员 回 。
显 所有成员及其 值
显 排名 二
有序 中 一个或多个成员 不存在 成员将 忽 。
当 存在但不是有序 型时 回一个 。
在 本以前 次只 删 一个元 。
有序 合
命令参
可 本
时 复杂度 为有序 基数 为 成功 成员 数 。
回值 成功 成员 数 不包括 忽 成员。
数据
单个元
多个元
不存在元
有序 中 指定排名 区 内 所有成员。
区 分别以下标参数 和 指出 包含 和 在内。
下标参数 和 以 为底 也就是 以 有序 一个成员 以 有序 二个成
员 以 推。
你也可以使 数下标 以 最后一个成员 倒数 二个成员 以 推。
命令参
可 本
时 复杂度 为有序 基数 为 成员 数 。
回值 成员 数 。
下标 区 内 成员
有序 只剩下一个成员
有序 中 所有 值介于 和 之 包括 于 或 成员。
本 开始 值 于 或 成员也可以不包括在内 情 参
命令。
可 本
时 复杂度 为有序 基数 为 成员 数 。
回值 成员 数 。
显 有序 内所有成员及其 值
所有 在 到 内 员工
剩下 有序 成员
回有序 中 指定区 内 成员。
有序 合
命令参
其中成员 位 按 值 减 从大到小 来排列。
具有 同 值 成员按字典序 序 排列。
了成员按 值 减 次序排列 一 外 命令 其他方 和 命令一样。
可 本
时 复杂度 为有序 基数 为 果 基数。
回值 指定区 内 带有 值 可 有序 成员 列 。
增排列
减排列
回有序 中 值介于 和 之 包括 于 或 所有 成员。有序 成
员按 值 减 从大到小 次序排列。
具有 同 值 成员按字典序 序 排列。
了 成 员 按 值 减 次 序 排 列 一 外 命 令 其 他 方
和 命令一样。
可 本
时 复杂度 为有序 基数 为 果 基数。
回值 指定区 内 带有 值 可 有序 成员 列 。
序排列所有成员
命令参
序排列 介于 和 之 成员
回有序 中成员 排名。其中有序 成员按 值 减 从大到小 排序。
排名以 为底 也就是 值最大 成员排名为 。
使 命令可以 得成员按 值 增 从小到大 排列 排名。
可 本
时 复杂度
回值
如果 是有序 成员 回 排名。
如果 不是有序 成员 回 。
数据
工 排 二
工 最
回有序 中 成员 值。
如果 元 不是有序 成员 或 不存在 回 。
可 本
时 复杂度
回值 成员 值 以字 串形式 。
数据
有序 合
命令参
意 回值是字 串
定 一个或多个有序 并 其中 定 数 必 以 参数指定 并将 并 果
储存到 。
情况下 果 中某个成员 值是所有 定 下 成员 值之 和 。
使 你可以为 个 定有序 分别 指定一个乘 因子 个 定
有序 所有成员 值在传 合函数 之前 先乘以 有序 因子。
如果 有指定 乘 因子 为 。
使 你可以指定并 果 合方式。
使 参数 可以将所有 合中某个成员 值之 和 作为 果 中 成员 值 使
参数 可以将所有 合中某个成员 最小 值作为 果 中 成员 值 参数
则是将所有 合中某个成员 最大 值作为 果 中 成员 值。
可 本
时 复杂度 为 定有序 基数 总和 为 果 基数。
回值 保存到 果 基数。
公司决定加 了 序员
命令参
定 一个或多个有序 交 其中 定 数 必 以 参数指定 并将 交 果
储存到 。
情况下 果 中某个成员 值是所有 定 下 成员 值之和
关于 和 描 参 命令。
可 本
时 复杂度 为 定 中基数最小 有序 为 定有序 数 为
果 基数。
回值 保存到 果 基数。
显 有序 内所有成员及其 值
有序 合
命令参
信息 参 命令。
命令参
有序 合
发布
一个或多个 合 定模式 。
个模式以 作为匹 如 匹 所有以 开头 、 、
匹 所有以 开头 、 如 。
可 本
时 复杂度 是 模式 数 。
回值 接收到 信息 参 下 代 明 。
和 两个模式
是执 之后 反 信息
才是接收到 一条信息
是 二条
以 推
回值 型 显 成功
模式
前已 模式 数
回值 型 信息
信息匹 模式
信息本 标
信息 内容
命令参
将信息 发 到指定 。
可 本
时 复杂度 其中 是 数 则是使 模式
客户 数 。
回值 接收到信息 数 。
对 有 发 信息
向有一个 发 信息
向有多个 发 信息
是一个查 与发布 态 内 命令 它 数个不同格式 子命令 成 以下将分别对
些子命令 介 。
可 本
列出当前 。
指 是 些 少有一个 模式 客户 不 在内。
参数是可
发布
命令参
如果不 出 参数 么列出 与发布 中 所有 。
如果 出 参数 么只列出和 定模式 匹 些 。
复杂度 为 数 对于 度 和模式来 将 模式匹 复杂度 为常
数 。
回值 一个 成 列 。
和 两个
和 两个
先 打印所有
意 即使一个 有多个 它也只 出一次 如
接下来 打印 些与模式 匹
因为 不匹 所以它 有 打印
回 定 数 模式 客户 不 在内。
复杂度 为 定 数 。
回值 一个多条批 回复 回复中包含 定 以及 数 。格式
为 数 数 如 。
回复中 排列 序和执 命令时 定 排列 序一 。不 定任何 接 个命令也是可
以 在 情况下 命令只 回一个 列 。
和 两个
命令参
和 两个
打印各个 数
客户 数
有任何
回 模式 数 。
意 个命令 回 不是 模式 客户 数 是客户 所有模式 数 总和。
复杂度 。
回值 一个整数回复 。
和 两个模式
一个模式
发布
命令参
回当前 模式 数 为
意 当有多个客户 同 模式时 同 也 在 之内
如 再新建一个客户 它也
时再 模式 数 就会得到数 为
指 客户 所有 定模式。
如果 有模式 指定 也即是 一个无参数 执 么客户 使
命令 所有模式 会 。在 情况下 命令会 回一个信息 告 客户 所有 模式。
可 本
时 复杂度 其中 是客户 已 模式 数 则是 中所有客户 模式 数
。
回值 个命令在不同 客户 中有不同 。
定 一个或多个 信息。
可 本
时 复杂度 其中 是 数 。
回值 接收到 信息 参 下 代 明 。
和 两个
是执 之后 反 信息
才是接收到 一条信息
是 二条
命令参
回值 型 显 成功
名字
前已 数
回值 型 信息
来 从 个 发 来
信息内容
指 客户 定 。
如果 有 指定 也即是 一个无参数 执 么客户 使 命
令 所有 会 。在 情况下 命令会 回一个信息 告 客户 所有 。
可 本
时 复杂度 是客户 已 数 。
回值 个命令在不同 客户 中有不同 。
发布
事务
取 事务 放弃执 事务块内 所有命令。
如果 在使 命令 某个 或某些 么取 所有 同于执 命令 。
可 本
时 复杂度 。
回值 总是 回 。
执 所有事务块内 命令。
假如某个 或某些 处于 命令 之下 且事务块中有和 个 或 些 关 命令
么 命令只在 个 或 些 有 其他命令所改动 情况下执 并 效 否则 事务 打断
。
可 本
时 复杂度 事务块内所有命令 时 复杂度 总和。
回值
事务块内所有命令 回值 按命令执 先后 序排列。
当操作 打断时 回 值 。
命令参
事务 成功执
且事务成功执
且事务 打断
就在 时 另一个客户 修改了 值
因为 修改 事务执 失
事务
命令参
标 一个事务块 开始。
事务块内 多条命令会按 先后 序 放 一个 列当中 最后 命令原子性 地执 。
可 本
时 复杂度 。
回值 总是 回 。
标 事务开始
多条命令按 序入
执
取 命令对所有 。
如果在执 命令之后 命令或 命令先 执 了 么就不 再执
了。
因为 命令会执 事务 因 命令 效果已 产 了 命令在取 事务 同时
也会取 所有对 因 两个命令执 之后 就 有必 执 了。
可 本
时 复杂度
回值 总是 。
命令参
一个 或多个 如果在事务执 之前 个 或 些 其他命令所改动 么事务将 打断。
可 本
时 复杂度 。
回值 总是 回 。
事务
本
从 本开始 内 器 可以使 命令对 本 值。
参数是一 本 序 它会 在 服务器上下文中 本不必 也不应 定
义为一个 函数。
参数 于指定 名参数 个数。
名参数 从 三个参数开始 在 本中所 到 些
些 名参数可以在 中 全局变 数 为基址 形式 以
推 。
在命令 最后 些不是 名参数 加参数 可以在 中 全局变 数
形式和 变 似 、 如 。
上 几 明可以 一个 单 例子来概括
其中 是 值 本 数字 指定了 名参数 数
和 是 名参数 分别使 和 最后 和 则是 加
参数 可以 和 它们。
在 本中 可以使 两个不同函数来执 命令 它们分别是
两个函数 唯一区别在于它们使 不同 方式处 执 命令所产 在后 『 处 』 分会
到 一 。
和 两个函数 参数可以是任何格式 好 命令
意 是 上 本 实 了将 值 为 但是 它 反了 命令
义 因为 本 使 所有 应 数 来传 就像 样
命令参
使 形式来传 是有原因 因为不仅仅是 个命令 所有 命令 在执
之前 会 分析 来 定命令会对哪些 操作。
因 对于 命令来 必 使 形式来传 才 保分析工作 地执 。 之外 使
形式来传 有很多其他好处 它 一个 别 就是 保 可以将你 发
到 。 对 工作 在 当中 但是 本功 成可以与 功 保持兼
容。 不 条 并不是强制性 从 使得 户有机会 单实例
代价是 样写出 本不 所兼容。
在 数据 型和 数据 型之 换
当 或 函数执 命令 时候 命令 回值会 换成 数据 构。同样
地 当 本在 内 器 时 本 回值也会 换成 协
后 将值 回 客户 。
数据 型之 换 循 样一个 原则 如果将一个 值 换成 值 之后再将 换所得
值 换回 值 么 个 换所得 值应 和最初时 值一样。
换句 型和 型之 存在 一一对应 换关 。
以下列出 是 换 则
从 换到
整数 换成 数字
回复 换成 字 串
多条 回复
换成 内可 有其他别 数据 型
态回复 换成
内 域包含了 态信息
回复 换成
内 域包含了 信息
回复和 多
条回复 换成 布尔值
从 换到
数字 换成 整数
字 串 换成 回复
数 换成 多条 回复
一个带单个 域 换成
态回复
一个带单个 域 换成
回复
布尔值 换成 回复
从 换到 有一条 外 则 条 则 有和它对应 从 换到 则
布尔值 换成 整数回复中
本
命令参
以下是几个 型 换 例子
在上 三个代 例 前两个 了如何将 值 换成 值 最后一个例子更复杂一些 它
了一个将 值 换成 值 后再将 值 换成 值 型 。
本 原子性
使 单个 器去 所有 本 并且 也保 本会以原子性 方式执
当某个 本 在 时候 不会有其他 本或 命令 执 。 和使 包围 事
务很 似。在其他别 客户 来 本 效果 么是不可 么就是已完成
。
另一方 也意味 执 一个 慢 本并不是一个好主意。写一个 得很快很 本并不
因为 本 开 常少 但是当你不得不使 一些 得 慢 本时 小心 因
为当 些 本在慢吞吞地 时候 其他客户 会因为服务器 忙 无 执 命令。
处
前 命令介 分 和 唯一区别在于它们对 处 不同。
当 在执 命令 中发 时 本会停 执 并 回一个 本 出信
息会 明 成 原因
和 不同 出 时并不引发 是 回一个带 域
于
带宽和
命令 你在 次执 本 时候 发 一次 本主体 。 有一个内 存机
制 因 它不会 次 新 本 不 在很多场合 付出无 带宽来传 本主体并不是最佳 择。
为了减少带宽 实 了 命令 它 作 和 一样 于对 本 值 但它接
受 一个参数不是 本 是 本 校 和 。
命令 如下
命令参
如果服务器 得 定 校 和所指定 本 么执 个 本
如果服务器不 得 定 校 和所指定 本 么它 回一个 提 户使
代替
以下是 例
客户 库 底层实 可以一 乐 地使 来代替 并期望 使 本已 保存在服
务器上了 只有当 发 时 才使 命令 新发 本 样就可以最大 度地 带
宽。
也 明了执 命令时 使 格式来传 名参数和 加参数 性 因为如果将参数 写
在 本中 么 次当参数改变 时候 新发 本 即使 本 主体并 有改变 反 使
格式来传 名参数和 加参数 就可以在 本主体不变 情况下 接使 命令对
本 复 免去了无 带宽 。
本 存
保 所有 本 会 久保存在 本 存当中 意味 当 命令在一个 实
例上成功执 某个 本之后 后 对 个 本 所有 命令 会成功执 。
刷新 本 存 唯一办 是显式地 命令 个命令会 所有 本 存。
常只有在云 境中 实例 改作其他客户或 别 应 序 实例时 才会执 个命令。
存可以 时 储存 不产 内存 原因是 它们 体 常小 且数 也 常少 即使 本在概念
上 似于实 一个新命令 即使在一个大 模 序 有成 上千 本 即使 些 本会 常修改 即便
如 储存 些 本 内存仍 是微不 。
事实上 户会发 不 存中 本实 上是一个好主意。 如 对于一个和 保持持久
化 接 序来 它可以 信 执 一次 本会一 保 在内存当中 因
它可以在 中使 命令 不必担心因为找不到所 本 产 候我们会 到在
中执 本 关 。
命令
提供了以下几个 命令 于对 本子 控制
所有 本 存
根据 定 本校 和 检查指定 本是否存在于 本 存
将一个 本 入 本 存 但并不 即 它
杀 当前 在 本
本
命令参
函数 本
在 写 本方 一个 就是 本应 写成 函数 。
也就是 本应 具有以下属性
对于同样 数据 入 定 同 参数 本执 写命令总是 同 。 本执 操作不
依 于任何 显式 数据 不 依 于 本在执 中、或 本在不同执 时期之 可 变
更 态 并且它也不 依 于任何来 备 外 入。
使 时 像 样 机命令 或 使 机数 成器
似以上 些操作 会 成 本 值无 次 得出同样 果。
为了 保 本 合上 所 属性 做了以下工作
有 时 或 其他内 态 命令
会 回一个 样 本 些 本在执 机命令之后 如 、
或 会执 可以修改数据 命令。如果 本只是执 只 操
作 么就 有 一 制。 意 机命令并不一定就指 些带 字 命令 任何带有 定
性 命令 会 为是 机命令 如 命令就是 方 一个很好 例子。
当从 本中 些 回无序元 命令时 执 命令所得 数据在 回 之前会先执
一个 字典序排序 。举个例子 因为 保存 是无
序 元 所以在 命令 客户 中 接执 回 元 是无序 但是 假如
在 本中执 么 回 总是排 序 元 。
对 伪 机数 成函数 和 修改 使得 次在 新 本
时候 总是拥有同样 值。 意味 次 本时 只 不使 么
产 机数序列总是 同 。
尽 有 么多 制 但 户 是可以 一个 单 技巧写出带 机 为 本 如果他们 。
假 在我们 写一个 本 个 本从列 中弹出 个 机数。一个 写 例子如下
个 序 次 会 成带有以下元 列
命令参
上 序 次 只 成同样 列 并不是太大。 么 怎样修改 个 本 使得它仍 是
一个 函数 合 但是 次 可以产 不同 机元 呢
一个 单 办 是 为 本 加一个 外 参数 个参数作为 机数 成器 值 样
只 本传入不同 本就会 成不同 列 元 。
以下是修改后 本
尽 对于同样 上 本产 列 元 是一样 因为它是一个 函数 但是只 次在执
本 时候传入不同 我们就可以得到带有不同 机元 列 。
会在复制 和写 文件时作为一个参数来传播 保 在 入 文件或 属
处 本时 仍 可以及时得到更新。
意 实 保 和 出和 架构无关 无 是
位 是 位 无 是小 是大 两个函数 出总是 同 。
全局变 保护
为了 不必 数据 境 本不允 创建全局变 。如果一个 本 在多次执 之
持某 态 它应 使 来 态保存。
企图在 本中 一个全局变 不 个变 是否存在 将引 本停 命令会 回一个
工具 或 其他 施 如打印 于实 全局保护 可以 于实
全局变 保护。
实 全局变 保护并不 不 有时候 是会不小心 为之。一旦 户在 本中 入了 全局 态
么 持久化和复制 会无 保 所以 不 使 全局变 。
免引入全局变 一个 是 将 本中 到 所有变 使 关 字定义为局 变 。
库
内 器加 了以下 库
本
命令参
其中 库可以 以 常快 度处 数据 之外 其他别 是 标准库。
个 实例 保 会加 上 列举 库 从 保 个 本 境 是 同 。
使 本散发 日志
在 本中 可以 函数来写 日志
其中 参数是一个字 串 参数可以是以下任意一个值
上 些 和标准 日志 对应。
对于 本散发 日志 只有 些和当前 实例所 日志 同或更 日志才会 散
发。
以下是一个日志 例
执 上 函数会产 样 信息
和最大执 时
本应 仅仅 于传 参数和对 数据 处 它不应 尝 去 外 如文件 或
执 任何 。
之外 本 有一个最大执 时 制 它 值是 一 常 作 本 常可以在几分之
几 之内完成 不了 么多时 个 制主 是为了 因 成 无 循 。
最大执 时 来控制 以 为单位 可以 文件或
使 和 命令来修改它。
当一个 本 到最大执 时 时候 它并不会 动 束 因为 必 保 本执 原子
性 中 停 本 意味 可 会 下未处 完 数据在数据 。
因 当 本 时 最大执 时 后 以下动作会 执
录一个 本 在 时
命令参
开始 新接受其他客户 命令 但是只有 和 两个命令会
处 对于其他命令 服务器只是 单地 回 。
可以使 命令将一个仅执 只 命令 本杀 因为只 命令并不修改数据 因 杀
个 本并不 坏数据 完整性
如果 本已 执 写命令 么唯一允 执 操作就是 它 停 服务器来
当前数据 写入
上下文 中
在 上下文中使 命令时 别小心 因为在 中 必 保 命令 执
序。
一旦在 中因为 命令 发 么 个 就再也 有办 新执
了 否则 命令 执 序就会 打乱。
为了 出 以上所 客户 库实 应 实施以下 其中一 措施
总是在 中使 命令
检查 中 到 所有命令 找到其中 命令 并使 命令检查 到
本是不是全 已 保存在 存 了。如果所 全 本 可以在 存 找到 么就可以放
心地将所有 命令改成 命令 否则 就 在 将 少 本
命令加上去。
可 本
时 复杂度 和 可以在 复杂度内找到 执 本 其余 复杂度取决于执
本本 。
根据 定 校 对 存在服务器中 本 值。
将 本 存到服务器 操作可以 命令 。
个命令 其他地方 如参数 传入方式 和 命令一样。
可 本
时 复杂度 根据 本 复杂度 定。
定一个或多个 本 校 和 回一个包含 和 列 校 和所指定 本是否已
保存在 存当中。
本
命令参
关于使 对 本 值 更多信息 参 命令。
可 本
时 复杂度 为 定 校 和 数 。
回值
一个列 包含 和 前 本不存在于 存 后 本已 在 存 了。
列 中 元 和 定 校 和保持对应关 如列 三个元 值就 三个
校 和所指定 本在 存中 态。
入一个 本
存
所有 本 存。
关于使 对 本 值 更多信息 参 命令。
可 本
复杂度 为 存中 本 数 。
回值 总是 回
杀 当前 在 本 当且仅当 个 本 有执 任何写操作时 个命令才 效。
个命令主 于 时 本 如一个因为 发 无 本 如 。
执 之后 当前 在 本会 杀 执 个 本 客户 会从 命令 塞当
中 出 并收到一个 作为 回值。
另一方 假如当前 在 本已 执 写操作 么即使执 也无 将它杀
因为 是 反 本 原子性执 原则 。在 情况下 唯一可 办 是使 命
令 停 整个 来停 本 并 不完整 信息 写入数据库中。
关于使 对 本 值 更多信息 参 命令。
可 本
命令参
时 复杂度
回值 执 成功 回 否则 回一个 。
有 本在执 时
成功杀 本时
尝 杀 一个已 执 写操作 本 失
以下是 本 杀 之后 回 执 本 客户
将 本 加到 本 存中 但并不 即执 个 本。
命令也会将 本 加到 本 存中 但是它会 即对 入 本 值。
如果 定 本已 在 存 了 么不做动作。
在 本 加入到 存之后 命令 可以使 本 校 和来 个 本。
本可以在 存中保 无 时 到执 为 。
关于使 对 本 值 更多信息 参 命令。
可 本
时 复杂度 为 本 度 以字 为单位 。
回值 定 校 和
本
接
文件中 值 使 命令 可以使 密
来保护 服务器。
如果开启了密 保护 在 次 接 服务器之后 就 使 命令 之后才 使 其
他 命令。
如果 命令 定 密 和 文件中 密 服务器会 回 并开始接受命令
入。
另一方 假如密 不匹 服务器将 回一个 并 客户 新 入密 。
因为 性 在很 时 内尝 常多个密 是有可 因 保使
密 够复杂和 够 以免 受密 攻击。
可 本
时 复杂度
回值 密 匹 时 回 否则 回一个 。
密
将密 为
出再 接 新密 对客户 效
未 密 操作 拒
尝 入 密
入 密
密 成功 可以 常操作命令了
命令参
密
将密 为 字 来 密
新 入客户
执 命令不再 密 密 操作成功
打印一个 定 信息 时使 。
可 本
时 复杂度
回值 。
使 客户 向 服务器发 一个 如果服务器 作 常 会 回一个 。
常 于 与服务器 接是否仍 效 或 于 延 值。
可 本
时 复杂度
回值 如果 接 常就 回一个 否则 回一个 接 。
客户 和服务器 接 常
客户 和服务器 接不 常 不 常或服务器未 常
接
命令参
服务器关 与当前客户 接。
一旦所有 待中 回复 如果有 利写入到客户 接就会 关 。
可 本
时 复杂度
回值 总是 回 但是不会 打印显 因为当时 已 出 。
切换到指定 数据库 数据库 引号 数字值指定 以 作为 始 引值。
使 号数据库。
可 本
时 复杂度
回值
使 号数据库
使 号数据库
已 切换到 号数据库 意 在 命令提 多了个
再切换到 号数据库
提 从 改变成了
命令参
接
服务器
执 一个 文件 写操作。 写会创建一个当前 文件 体 优化 本。
即使 执 失 也不会有任何数据丢失 因为旧 文件在 成
功之前不会 修改。
写操作只会在 有其他持久化工作在后台执 时 发 也就是
如果 子 在执 快 保存工作 么 写 操作会 定 到保
存工作完成之后再执 写。在 情况下 回值仍 是 但 会
加上一条 外 信息 明 到保存操作完成之后才 执 。在 或以
上 本 可以使 命令查 是否 定。
如果已 有别 文件 写在执 么 回一个 并且 个新
也不会 定到下次执 。
从 开始 写 发 仅仅 于手动 发 写操作。
持久化文档 文 查 更多 关 。
可 本
时 复杂度 为 加到 文件中 数据数 。
回值 反 信息。
在后台异 保存当前数据库 数据到 。
命令执 之后 即 回 后 出一个新子 原来
处 客户 子 则 将数据保存到 后 出。
客户 可以 命令查 关信息 判断 命令是否执 成功。
持久化文档 查 更多 关 。
可 本
命令参
时 复杂度 为 保存到数据库中 数 。
回值 反 信息。
回 命令为 接 名字。
因为新创建 接 是 有名字 对于 有名字 接 回 回复。
可 本
时 复杂度
回值
如果 接 有 名字 么 回 回复
如果有 名字 么 回名字。
新 接 有名字
名字
回名字
关 地址为 客户 。
应 和 命令 出 其中一 匹 。
因为 使 单 所以当 在执 命令 时候 不会有客户 断开 接。
如果 断开 接 客户 在执 命令 么当 个命令执 之后 在发 下一个命令 时候 它就会收
到一个 告 它 接已 关 。
可 本
时 复杂度 为已 接 客户 数 。
回值 当指定 客户 存在 且 成功关 时 回 。
服务器
命令参
列出所有已 接客户
杀 当前客户 接
之前 接已 关 客户 又 新建 了 接
之前 口是 在是
以人 可 格式 回所有 接到服务器 客户 信息和 数据。
可 本
时 复杂度 为 接到服务器 客户 数 。
回值 命令 回多 字 串 些字 串按以下形式 格式化
个已 接客户 对应一 以 分割
字 串 一 列 属性 值 形式 域 成 个域之 以 格分开
以下是域 含义
客户 地址和 口
套接字所使 文件描
以 已 接时
以 时
客户 下文
客户 在使 数据库
已 数
已 模式 数
在事务中 执 命令数
查 存 度 有查 在 待
查 存 剩余 有剩余
出 存 度
命令参
出列 度 当 出 存 有剩余 时 回复 入 到 个 列
出 存 内存占
文件描 事件 下文
最 一次执 命令
客户 可以 以下 分 成
客户 是 模式下 属
客户 是一 模式下 属
客户 是主
客户 在执 事务
客户 在 待 塞事件
客户 在 待 操作 已废弃
一个受 已 修改 命令将失
在将回复完整地写出之后 关 接
客户 未 塞
尽可 快地关 接
未 任何
文件描 事件可以是
客户 套接字 在事件 中 是可
客户 套接字 在事件 中 是可写
为了 常会对域 加和删 一个安全 客户 应 可以对
出 应 处 如忽 不存在 域 未 域 如 。
为当前 接分 一个名字。
个名字会显 在 命令 果中 于 别当前 在与服务器 接 客户 。
举个例子 在使 构建 列 时 可以根据 接 任务 为信息 产
和信息 分别 不同 名字。
名字使 字 串 型来保存 最大可以占 。另外 为了 免和 命令
出格式发 冲 名字 不允 使 格。
一个 接 名字 可以将 接 名字 为 字 串 。
使 命令可以取出 接 名字。
新创建 接 是 有名字 。
在 应 序发 接 时 为 接 名字是一 很好 手 。
服务器
命令参
可 本
时 复杂度
回值 成功时 回 。
新 接 有名字
名字
回名字
在客户 列 中查
名字
名字
只 格是不
必 双引号显 包围
完
命令 于取得 中 服务器 参数 在
本中 有 分参数 有办 但是在最新 本中 所有 参数 已
可以 了。
接受单个参数 作为搜 关 字 查找所有匹 参数 其中参数和值以“
值对” 方式排列。
如执 命令 服务器就会 回所有以 开头 参数及参数 值
参数名
参数 值
参数名
命令参
参数 值
如果你只是寻找 定 某个参数 你当 也可以 接指定参数 名字
使 命令 可以列出 命令支持 所有参数
所有 所支持 参数 可以在 文件 中找到 不 和
使 格式和 文件所使 格式有以下两 不同
、 些在 文件中所使 储存单位 写 不可以 在 命令中
值只 数字值显式地 定。
像 样 命令是 格式是 。
在 中是 多 文字储存 但在 命令中 它只打印一 文字。
以下是 在 文件中
但是 命令 出只有一
服务器
命令参
上 参数 三个值 在 内最少有 个 改动 或 内最少有 个
改动 又或 内最少有 个 改动 以上三个条件 便 一个 就 发一次保存操
作。
可 本
时 复杂度 不明
回值 定 参数 值。
命令中 某些 数据 包括
命中次数
不命中次数
执 命令 次数
接服务器 次数
期 数
拒 接数
最后执 时
数器 值
可 本
时 复杂度
回值 总是 回 。
前
命令参
后
服务器
命令参
命令参
命令对启动 服务器时所指定 文件 改写 因为
命令可以对服务器 当前 修改 修改后 可 和 文件中所描 不一样
作 就是 尽可 少 修改 将服务器当前所使 录到 文
件中。
写会以 常保守 方式
原有 文件 整体 构和 会 尽可 地保 。
如果一个 已 存在于原有 文件中 么对 写会在 原本所在 位
号 上 。
如果一个 不存在于原有 文件中 并且 为 值 么 写 序不会将
个 加到 写后 文件中。
如果一个 不存在于原有 文件中 并且 为 值 么 个 将
加到 写后 文件 末尾。
未使 会 。 如 如果你在原有 文件上 了数个关于 参数
但 在你将 些 参数 一个或全 关 了 么 些不再使 参数原本所在 就会变成
。
即使启动服务器时所指定 文件已 不再存在 命令也可以 新构建并
成出一个新 文件。
另一方 如果启动服务器时 有 入 文件 么执 命令将引发一个
。
原子性 写
对 文件 写是原子性 并且是一 如果 写出 或 写期 服务器崩 么 写失
原有 文件不会 修改。如果 写成功 么 文件为 写后 新文件。
可 本
回值
一个 态值 如果 写成功则 回 失 则 回一个 。
服务器
命令参
以下是执 前 入到 服务器 文件中关于
其他
其他
在执 以下命令之后
处于关 态
打开
将 修改写入到 中
写后 文件中 将 改写
其他
其他
命令可以动态地 整 服务器 无 启。
你可以使 它修改 参数 或 改变 持久化 方式。
可以修改 参数可以使 命令 来列出 所有 修改
参数 会 即 效。
关于 命令 更多 息 参 命令 明。
关于如何使 命令修改 持久化方式 参 。
可 本
时 复杂度 不明
回值 当 成功时 回 否则 回一个 。
命令参
回当前数据库 数 。
可 本
时 复杂度
回值 当前数据库 数 。
增加一个
是一个 命令 它不应 客户 所使 。
查 命令 取更多信息。
可 本
时 复杂度
回值
当 存在时 回有关信息。
当 不存在时 回一个 。
服务器
命令参
执 一个不合 内存 从 崩 仅在开发时 于 模拟。
可 本
时 复杂度 不明
回值 无
整个 服务器 数据 删 所有数据库 所有 。
命令从不失 。
可 本
时 复杂度 尚未明
回值 总是 回 。
号数据库 数
切换到 号数据库
号数据库 数
所有数据库 所有
不但 号数据库 了
号数据库 以及其他所有数据库 也一样
当前数据库中 所有 。
命令从不失 。
可 本
时 复杂度
命令参
回值 总是 回 。
前 数
后 数
以一 易于 且易于 格式 回关于 服务器 各 信息和 数值。
定可 参数 可以 命令只 回某一 分 信息
一 服务器信息 包含以下域
服务器 本
服务器 宿主操作
架构 或 位
所使 事件处 机制
时所使 本
服务器
服务器 机标 于 和
听 口
服务器启动以来 数
服务器启动以来 天数
以分 为单位 增 时 于
已 接客户 信息 包含以下域
已 接客户 数 不包括 从属服务器 接 客户
当前 接 客户 当中 最 出列
当前 接 客户 当中 最大 入 存
在 待 塞命令 、 、 客户 数
内存信息 包含以下域
分 器分 内存总 以字 为单位
以人 可 格式 回 分 内存总
从操作 度 回 已分 内存总 俗 常 大
小 。 个值和 、 命令 出一 。
服务器
命令参
内存 峰值 以字 为单位
以人 可 格式 回 内存 峰值
引擎所使 内存大小 以字 为单位
和 之
在 时指定 所使 内存分 器。可以是 、
或 。
在 想情况下 值应 只 微 一 儿。
当 且两 值 差 大时 存在 内 或外 内存 。
内存 可以 值 出。
当 时 分内存 操作 换出到交换 了 在 情况下
操作可 会产 明显 延 。
当 放内存时 分 器可 会 也可 不会 将内存 操作 。
如果 放了内存 却 有将内存 操作 么 值可 和操
作 显 内存占 并不一 。
查 值可以 情况是否发 。
和 关信息
一 信息
主 从复制信息
信息
命令 信息
信息
数据库 关 信息
上 出 些值以外 参数 可以是下 两个
回所有信息
回 择 信息
当不带参数 接 命令时 使 作为 参数。
不同 本 可 对 回 一些域 了增加或删减。
因 一个健壮 客户 序在对 命令 出 分析时 应 够 不 域 并且妥善地处
丢失不 域。
可 本
时 复杂度
回值 具体 参 下 代 。
命令参
服务器
命令参
回最 一次 成功将数据保存到 上 时 以 时 戳格式 。
可 本
时 复杂度
回值 一个 时 戳。
实时打印出 服务器接收到 命令 。
可 本
时 复杂度 不明
回值 总是 回 。
以 一个打印值为例
是时 戳
中 是数据库号 是 地址和 口
是 执 命令
命令参
于复制功 内 命令。
更多信息 参 复制 文档。
可 本
时 复杂度 不明
回值 不明
命令执 一个同 保存操作 将当前 实例 所有数据快 以 文件 形式保存
到 。
一 来 在 产 境很少执 操作 因为它会 塞所有客户 保存数据库 任务 常
命令异 地执 。 如果 保存数据 后台子 不幸出 时 可以作为保存数据 最后
手 来使 。
参 文档 持久化 作方式 文 以 取更多 息。
可 本
时 复杂度 为 保存到数据库中 数 。
回值 保存成功时 回 。
命令执 以下操作
停 所有客户
如果有 少一个保存 在 待 执 命令
如果 打开 更新 文件
关 服务器
如果持久化 打开 命令会保 服务器 常关 不丢失任何数据。
另一方 假如只是单 地执 命令 后再执 命令 则 有 一保 ——因为在执
之后、执 之前 时 中 其他客户 可 在和服务器 时如果执 就会
成数据丢失。
和 修
服务器
命令参
使 可 修 可以修改 命令 。 如
执 会强制 数据库执 保存操作 即使 有 定 保存
执 会 数据库执 保存操作 即使已 定有一个或多个保存 你可以将
一 作是强制停 服务器 一个假想 命令
可 本
时 复杂度 不明
回值
执 失 时 回 。
执 成功时不 回任何信息 服务器和客户 接断开 客户 动 出。
命令 于在 时动态地修改复制 功 为。
执 命令 可以将当前服务器 变为指定服务器 从属服务器 。
如果当前服务器已 是某个主服务器 从属服务器 么执 将使当
前服务器停 对旧主服务器 同 丢弃旧数据 开始对新主服务器 同 。
另外 对一个从属服务器执 命令 将使得 个从属服务器关 复制功 并从从属服务器
变回主服务器 原来同 所得 数据 不会 丢弃。
利 『 不会丢弃同 所得数据 』 个 性 可以在主服务器失 时候 将从属服务器
作新 主服务器 从 实 无 断 。
可 本
时 复杂度
为 同 数据数 。
。
回值 总是 回 。
命令参
什么是
是 来 录查 执 时 日志 。
查 执 时 指 是不包括像客户 响应 、发 回复 操作 单单是执 一个查 命令所
时 。
另外 保存在内存 写 度 常快 因 你可以放心地使 它 不必担心因为开启
损害 度。
为 两个 参数 指定 可以 改写 文件或
和 命令对它们动态地 修改。
一个 是 它决定 对执 时 大于多少微
微 查 录。
如执 以下命令将 录所有查 时 大于 于 微 查
以下命令 录所有查 时 大于 微 查
另一个 是 它决定 最多 保存多少条日志 本 是一个
列 当 列大小 时 最旧 一条日志将 删 最新 一条日志加入到
以 推。
以下命令 最多保存 条日志
使 命令可以查 两个 当前值
查
查 可以使 或 命令 前 打印所有 最大
度取决于 值 则只打印指定数 日志。
最新 日志会最先 打印
为 将 成了 微
唯一性 日志标
录命令 执 时 以 时 戳格式
查 执 时 以微 为单位
执 命令 以数 形式排列
完整 命令是
服务器
命令参
日志 唯一 只有在 服务器 启 时候才会 样可以 免对日志 复处 如你可 会
想在 次发 新 慢查 时发 件 你 。
查 当前日志 数
使 命令 可以查 当前日志 数 。
意 个值和 区别 它们一个是当前日志 数 一个是允 录 最大日志 数
。
日志
使 命令 可以 。
可 本
时 复杂度
回值 取决于不同命令 回不同 值。
于复制功 内 命令。
更多信息 参 官 。
可 本
时 复杂度 不明
命令参
回值 不明
回当前服务器时 。
可 本
时 复杂度
回值 一个包含两个字 串 列 一个字 串是当前时 以 时 戳格式 二个字
串是当前 一 已 去 微 数。
服务器
本文档 。
功 前仍在开发中 个文档所描 内容 以及功 具体实 可 会在
未来数周内改变 敬 悉。
功 概
使得客户 可以 或模式 来接收 些以某 方式改动了 数据 事件。
以下是一些 发 事件 例子
所有修改 命令。
所有接收到 命令 。
号数据库中所有已 期 。
事件 与发布功 来 分发 因 所有支持 与发布功 客户 可以
在无 做任何修改 情况下 接使 功 。
因为 前 与发布功 取 是发 即忘 所以如果你 序 可 事
件 么 前 可 并不 合你 当 事件 客户 断
时 它会丢失所有在断 期 分发 它 事件。
未来将会支持更可 事件分发 支持可 会 与发布功 本 变得更可 来实 也可 会
在 本中对 息 与发布 听 从 实 似将事件推入到列 样 操作。
事件 型
对于 个修改数据库 操作 会发 两 不同 型 事件。
如 对 号数据库 执 命令时 将分发两条 息 当于执 以下两个
命令
命令参
一个 可以接收 号数据库中所有修改 事件 二个
则可以接收 号数据库中所有执 命令 。
以 为前 为 以 为前 则
为 事件 。
当 命令执 时
将接收到 执 事件 名字 在 个例子中 就是 。
事件 将接收到 执 事件 名字 在 个例子中 就是 。
因为开启 功 一些 所以在 下 功 处于关 态。
可以 修改 文件 或 接使 命令来开启或关 功
当 参数为 字 串时 功 关 。
另一方 当参数不是 字 串时 功 开启。
参数可以是以下字 任意 合 它指定了服务器 发 哪些 型
字 发
所有 以 为前
事件 所有 以 为前
、 、 型无关 命令
字 串命令
列 命令
合命令
哈希命令
有序 合命令
期事件 当有 期 删 时发
事件 当有 因为 政 删 时发
参数 别名
入 参数中 少 有一个 或 否则 不 其余 参数是什么 不会有任何 分发。
举个例子 如果只想 中和列 关 么参数就应 为 如 。
将参数 为字 串 发 所有 型 。
命令产
以下列 录了不同命令所产 不同
命令为 个 删 产 一个 。
产 两个 为来 产 一个 并为 标
产 一个 。
和 在 期时 时产 一个 。当 时
已 期 或 传入 时 为 数值时 删 并产 一个 。
在命令带有 参数时产 一个 事件。如果 指 于保存排序 果
已 存在 么 序 会发 一个 事件。
命令参
以及它 所有变 、 和 产 。其中 会产
。
为 个 产 一个 。
产 一个 。
、 、 和 产 。
产 。
产 。
和 产 单个 即使有多个 入元 时 也是如 。
和 产 单个 即使有多个 入元 时 也是如 。
产 。如果 弹出 元 是列 最后一个元 么 会产 一个 。
产 。如果 弹出 元 是列 最后一个元 么 会产 一个 。
产 一个 。
产 一个 。
产 一个 。如果 执 之后 列 么 会产 一个 。
和 产 一个 以及一个 。两个命令 会保
在 之前分发。如果从 弹出元 之后 弹出 列 么 会产
一个 。
、 和 只产 一个 。
产 一个 。
产 一个 。
产 一个 。如果执 之后 哈希 么 会产 一个 。
产 一个 即使有多个 入元 时 也是如 。
产 一个 如果执 之后 合 么 会产 一个 。
为来 产 一个 并为 标 产 一个
事件。
产 一个 事件。如果执 之后 合 么 会产 一个 。
、 和 分别产 、 和
三 。如果 于保存 果 已 存在 么 会产 一个 。
产 一个 。 对 意。
产 一个 即使有多个 入元 时 也是如 。
产 一个 即使有多个 入元 时 也是如 。如果执 之后 有序 合
么 会产 一个 。
产 一个 。 对 意。 如果 于保存
果 已 存在 么 会产 一个 。
产 一个 。 对 意。 如果 于保存 果
已 存在 么 会产 一个 。
和 分别产 和 两 。如果 于保
存 果 已 存在 么 会产 一个 。
当一个 因为 期 删 时 产 一个 。
命令产
命令参
当一个 因为 政 删 以回收内存时 产 一个 。
所有命令 只在 改动了之后 才会产 。
如 当 图删 不存在于 合 元 时 删 操作会执 失 因为 有 改动 所以
一操作不会发 。
如果对命令所产 有 最好 是使 以下命令 己来 一下
后 只 在其他 客户 发 命令 就可以 到产 了
期 发 时
使 以下两 方式删 期
当一个 时 序会对 个 检查 如果 已 期 么 将 删 。
底层 会在后台 地查找并删 些 期 从 处 些已 期、但是不会 到 。
当 期 以上两个 序 任意一个发 、并且将 从数据库中删 时 会产 一个 。
并不保 存时 变为 会 即 删 如果 序 有 个 期 或 带有 存
时 常多 么在 存时 变为 到 删 中 可 会有一 显 时
。
因 产 时 为 期 删 时候 不是 存时 变为 时候。
事务
本文档 。
、 、 和 是 事务 基 。
事务可以一次执 多个命令 并且带有以下两个 保
事务是一个单 操作 事务中 所有命令 会序列化、按 序地执 。事务在执 中
不会 其他客户 发 来 命令 所打断。
事务是一个原子操作 事务中 命令 么全 执 么全 不执 。
命令 发并执 事务中 所有命令
如果客户 在使 开启了一个事务之后 却因为断 有成功执 么事务
中 所有命令 不会 执 。
另一方 如果客户 成功在开启事务之后执 么事务中 所有命令 会 执 。
当使 方式做持久化 时候 会使 单个 命令将事务写入到 中。
如果 服务器因为某些原因 员杀 或 上某 件故 么可 只有 分事
务命令会 成功写入到 中。
如果 在 新启动时发 文件出了 样 么它会 出 并 报一个 。
使 序可以修复 一 它会 文件中不完整事务 信息 保服务
器可以 利启动。
从 本开始 可以 乐 实 操作 具体信息
参 文档 后半 分。
命令 于开启一个事务 它总是 回 。
执 之后 客户 可以 向服务器发 任意多条命令 些命令不会 即 执 是 放到一
个 列中 当 命令 时 所有 列中 命令才会 执 。
另一方 客户 可以 事务 列 并放弃执 事务。
以下是一个事务例子 它原子地增加了 和 两个 值
命令参
命令 回复是一个数 数 中 个元 是执 事务中 命令所产 回复。其中 回复元
先后 序和命令发 先后 序一 。
当客户 处于事务 态时 所有传入 命令 会 回一个内容为 态回复 些
入 命令将在 命令 时执 。
事务中
使 事务时可 会 上以下两
事务在执 之前 入 命令可 会出 。 如 命令可 会产 参数数
参数名 或 其他更严 如内存不 如果服务器使 了最
大内存 制 。
命令可 在 之后失 。举个例子 事务中 命令可 处 了 型 如将列 命
令 在了字 串 上 如 。
对于发 在 执 之前 客户 以前 做 是检查命令入 所得 回值 如果命令入 时
回 么入 成功 否则 就是入 失 。如果有命令在入 时失 么大 分客户 会停
并取 个事务。
不 从 开始 服务器会对命令入 失 情况 录 并在客户 命令时 拒
执 并 动放弃 个事务。
在 以前 只执 事务中 些入 成功 命令 忽 些入 失 命令。 新 处 方
式则使得在 中包含事务变得 单 因为发 事务和 取事务 回复 只 和服务器
一次 。
于 些在 命令执 之后所产 并 有对它们 别处 即使事务中有某个 某些命令
在执 时产 了 事务中 其他命令仍 会 执 。
从协 度来 个 会更容易 一些。以下例子中 命令 执 将出 尽 它
是
事务
命令参
回两条批 回复 一条是 二条是 。 于怎样 合 方 来
事务中 则是 客户 己决定 。
最 是 住 样一条 即使事务中有某条 某些命令执 失 了 事务 列中 其他命令仍 会 执
—— 不会停 执 事务中 命令。
以下例子展 是另一 情况 当命令在入 时产 会 即 回 客户
因为 命令 参数格式不 所以 个 命令入 失 。
为什么 不支持回
如果你有使 关 式数据库 么“ 在事务失 时不 回 是 执 余下 命令”
做 可 会 你 得有 奇怪。
以下是 做 优
命令只会因为 失 并且 些 不 在入 时发 或是命令 在了 型
上 也就是 从实 性 度来 失 命令是 成 些 应 在
开发 中 发 不应 出 在 产 境中。
因为不 对回 支持 所以 内 可以保持 单且快 。
有 为 处 事务 做 会产 意 是 在 常情况下 回 并不 决
带来 。举个例子 如果你本来想 命令将 值加上 却不小心加上了 又或
对 型 执 了 回 是 有办 处 些情况 。
于 有任何机制 免 序员 己 成 并且 常不会在 产 境中出 所以
择了更 单、更快 无回 方式来处 事务。
放弃事务
当执 命令时 事务会 放弃 事务 列会 并且客户 会从事务 态中 出
为什么 不支持回
命令参
使 操作实 乐
命令可以为 事务提供 为。
会 并会发 些 是否 改动 了。如果有 少一个 在 执 之
前 修改了 么整个事务 会 取 回 多条批 回复 来 事务已
失 。
举个例子 假 我们 原子性地为某个值 增 操作 假 不存在 。
先我们可 会 样做
上 个实 在只有一个客户 时候可以执 得很好。但是 当多个客户 同时对同一个 样
操作时 就会产 争条件。
举个例子 如果客户 和 取了 原来 值 如 么两个客户 会将 值 为 但
果应 是 才对。
有了 我们就可以 松地 决 了
使 上 代 如果在 执 之后 执 之前 有其他客户 修改了 值 么当
前客户 事务就会失 。 序 做 就是不断 个操作 到 有发 撞为 。
形式 作乐 它是一 常强大 机制。并且因为大多数情况下 不同 客户 会 不
同 撞 情况一 很少 所以 常并不 。
了
使得 命令 有条件地执 事务只 在所有 有 修改 前提下执 如果
个前提不 事务就不会 执 。
如果你使 了一个带 期时 么即使 个 期了 事务仍 可以 常执
关于 方 情况 个帖子
事务
命令参
命令可以 多次。对 从 执 之后开始 效 到 为 。
户 可以在单个 命令中 任意多个 就像 样
当 时 不 事务是否成功执 对所有 会 取 。
另外 当客户 断开 接时 客户 对 也会 取 。
使 无参数 命令可以手动取 对所有 。对于一些 改动多个 事务 有时候
序 同时对多个 加 后检查 些 当前值是否 合 序 。当值 不到 时 就可以
使 命令来取 前对 中 放弃 个事务 并 待事务 下次尝 。
使 实
可以 于创建 有内 原子操作。
举个例子 以下代 实 了原创 命令 它可以原子地弹出有序 合中分值 最小 元
序只 复执 代 到 回值不是 多条回复 即可。
本和事务
从定义上来 中 本本 就是一 事务 所以任何在事务 可以完成 事 在 本 也 完成。
并且一 来 使 本 来得更 单 并且 度更快。
因为 本功 是 才引入 事务功 则更早之前就存在了 所以 才会同时存在两 处
事务 方 。
不 我们并不打 在 时 内就 事务功 因为事务提供了一 即使不使 本 也可以 免 争条件
方 且事务本 实 并不复杂。
不 在不 将来 可 所有 户 会只使 本来实 事务也 不定。如果 发 情况 么
我们将废弃并最 事务功 。
使 实
命令参
事务
发布与
本文档 。
、 和 三个命令实 了发布与 信息 型
在 个实 中 发 发 信息 客户 不是将信息 接发 定 接收
接收信息 客户 是将信息发 后 将信息 发 所有对 个 感兴
。
发 无 任何关于 信息 也无 是 个客户 它发 信息 它只 关 己
感兴 即可。
对发布 和 构 可以极大地提 扩展性 并得到一个更动态
拓扑 。
如 和 客户 可以使 名字作为参数来 命令
当有客户 发 信息到 些 时 会将传入 信息推 到所有 些 客户 。
在 客户 不应 发 和 之外 其他命令。其中
可以 于 更多 则可以 于 已 一个或多个 。
和 执 果会以信息 形式 回 客户 可以 分析所接收信息 一
个元 从 判断所收到 内容是一条 信息 是 或 命令 操作 果。
信息 格式
发 条信息 是一条带有三个元 多条批 回复 。
信息 一个元 标 了信息 型
当前客户 成功地 了信息 二个元 所指 。 信息 三个元 则
录了 前客户 已 总数。
当前客户 成功地 了信息 二个元 所指 。信息 三个元 录
了客户 前仍在 数 。当客户 数 为 时 客户 不再 任何
它可以像往常一样 执 任何 命令。
条信息是 某个客户 执 命令所发 信息。信息 二个
元 是信息来 三个元 则是信息 内容。
举个例子 如果客户 执 以下命令
命令参
么它将收到以下回复
如果在 时 另一个客户 执 以下 命令
么之前 了 客户 将收到以下信息
当 决定 所有 时 它可以执 一个无参数 命令
个命令将接到以下回复
模式
发布与 实 支持模式匹 客户 可以 一个带 号 模式 如果某
个 某些 名字和 个模式匹 么当有信息发 个 些 时候 客户 也会收到 个
些 信息。
如 执 命令
客户 将收到来 、 信息。
客户 模式 可以包含多个 格 如 、 和 。
执 命令
将 模式 其他已 模式不会 影响。
模式接收到 信息 和 接收到 信息 两 格式不太一样
发布与
命令参
模式 接收到 信息 型为 代 有某个客户 向某个
发 了信息 个 刚好匹 了当前客户 所 某个模式。信息 二个元 录了 匹
模式 三个元 录了 匹 名字 最后一个元 则 录了信息 实 内容。
客 户 处 和 回 值 方 式 和 客 户 处
和 方式 似 对信息 一个元 分析 客户 可以判断接收到 信息是
一个 信息 是 或 命令 回值。
和模式接收同一条信息
如果客户 多个模式匹 了同一个 或 客户 同时 了某个 、以及匹 个 某个
模式 么它可 会多次接收到同一条信息。
举个例子 如果客户 执 了以下命令
么当有信息发 到 时 客户 将收到两条信息 一条来 信息 型为 另
一条来 模式 信息 型为 。
总数
在执 、 、 和 命令时 回 果 最后一
个元 是客户 前仍在 和模式总数。
当客户 所有 和模式 也即是 个总数值下 为 时候 客户 将 出 与发布 态。
例
提供了一个使 和 写 性 多 户 天 件 个 件
很好地展 了发布与 功 。
客户 库实 提
因为所有接收到 信息 会包含一个信息来
当信息来 时 来 是某个
当信息来 模式时 来 是某个模式。
因 客户 可以 一个哈希 将 定来 和处 来 回 函数关 来。当有新信息到 时 序
就可以根据信息 来 在 复杂度内 将信息交 回 函数来处 。
和模式接收同一条信息
命令参
发布与
复制
本文档 。
支持 单且易 主从复制 功 功 可以 从服务器
成为主服务器 复制品。
以下是关于 复制功 几个 方
使 异 复制。从 开始 从服务器会以 一次 向主服务器报告复制
处 度。
一个主服务器可以有多个从服务器。
不仅主服务器可以有从服务器 从服务器也可以有 己 从服务器 多个从服务器之 可以构成一个
图 构。
复制功 不会 塞主服务器 即使有一个或多个从服务器 在 初次同 主服务器也可以 处
命令 。
复制功 也不会 塞从服务器 只 在 文件中 了 应 即使从服务器 在
初次同 服务器也可以使 旧 本 数据 来处 命令查 。
不 在从服务器删 旧 本数据 并 入新 本数据 时 内 接 会 塞。
你 可以 从服务器 它在与主服务器之 接断开时 向客户 发 一个 。
复制功 可以单 地 于数据冗余 也可以 多个从服务器处 只 命令
来提升扩展性 如 命令可以交 属 去 。
可以 复制功 来 主服务器免于执 持久化操作 只 关 主服务器 持久化功 后 从服
务器去执 持久化操作即可。
复制功 作原
无 是初次 接 是 新 接 当建 一个从服务器时 从服务器 将向主服务器发 一个 命令。
接到 命令 主服务器将开始执 并在保存操作执 期 将所有新执 写入命令 保
存到一个 冲区 。
当 执 完 后 主服务器将执 保存操作所得 文件发 从服务器 从服务器接收 个
文件 并将文件中 数据 入到内存中。
之后主服务器会以 命令协 格式 将写命令 冲区中 所有内容 发 从服务器。
命令参
你可以 命令来亲 个同 先 上一个 在处 命令 服务器 后
向它发 命令 一 子 你将 到 会 接收到服务器发来 大 数据 文
件 之后 会 到 所有在服务器执 写命令 会 新发 到 会 来。
即使有多个从服务器同时向主服务器发 主服务器也只 执 一次 命令 就可以处 所
有 些从服务器 同 。
从服务器可以在主从服务器之 接断开时 动 在 本之前 断 之后 从服
务器总 执 一次完整 同 操作 但是从 本开始 从服务器可以根
据主服务器 情况来 择执 完整 同 是 分 同 。
分 同
从 开始 在 接 暂性失效之后 主从服务器可以尝 执 原有 复制
不一定 执 完整 同 操作。
个 性 主服务器为 发 复制 创建一个内存 冲区 并且主服务器和所有
从服务器之 录一个复制偏 和一个主服务器 当出
接断开时 从服务器会 新 接 并且向主服务器 执 原来 复制
如果从服务器 录 主服务器 和当前 接 主服务器 同 并且从服务器 录 偏 所
指定 数据仍 保存在主服务器 复制 冲区 么主服务器会向从服务器发 断 时 失
分数据 后复制工作可以 执 。
否则 从服务器就 执 完整 同 操作。
个 分 同 性会 到一个新增 内 命令 以前 旧 本只
有 命令 不 只 从服务器是 或以上 本 它就会根据主服务器 本来决定到底是
使 是
如果主服务器是 或以上 本 么从服务器使 命令来 同 。
如果主服务器是 之前 本 么从服务器使 命令来 同 。
一个从服务器 常 单 只 在 文件中增加以下 一 就可以了
当 你 将代 中 和 替换成你 主服务器 和 口号。
另外一 方 是 命令 入主服务器 和 口 后同 就会开始
只 从服务器
从 开始 从服务器支持只 模式 并且 模式为从服务器 模式。
只 模式 文件中 控制 也可以 命令来开启或关
个模式。
复制
命令参
只 从服务器会拒 执 任何写命令 所以不会出 因为操作失 将数据不小心写入到了从服务器 情
况。
即使从服务器是只 和 式命令仍 是可以使 所以我们 是不应 将服务器
暴 互 或 任何不可信 。不 使 中 命令改名 我们可以 执 某
些命令来提升只 从服务器 安全性。
你可 会感到好奇 既 从服务器上 写数据会 同 数据 也可 在从服务器 启时丢失 么为
什么 一个从服务器变得可写呢
原因是 一些不 临时数据 仍 是可以保存在从服务器上 。 如 客户 可以在从服务器上保
存主服务器 可 性 信息 从 实 故 。
从服务器 关
如果主服务器 了密 么为了 从服务器 同 操作可以 利 我们也
必 为从服务器 应 份 。
对于一个 在 服务器 可以使 客户 入以下命令
久地 个密 么可以将它加入到 文件中
另外 有几个 它们和主服务器执 分 同 时所使 复制 冲区有关 信息可以参
中 带 例文件。
主服务器只在有 少 个从服务器 情况下 才执 写操作
从 开始 为了保 数据 安全性 可以 主服务器只在有 少 个当前已 接从服务
器 情况下 才执 写命令。
不 因为 使 异 复制 所以主服务器发 写数据并不一定会 从服务器接收到 因 数据丢
失 可 性仍 是存在 。
以下是 个 性 作原
从服务器以 一次 主服务器一次 并报告复制 处 情况。
主服务器会 录各个从服务器最后一次向它发 时 。
户可以 指定 延 最大值 以及执 写操作所 少从服
务器数 。
如果 少有 个从服务器 并且 些服务器 延 值 少于
么主服务器就会执 客户 写操作。
你可以将 个 性 作 中 条件放宽 本 尽 不 保 写操作 持久性 但 丢失数
据 口会 严格 制在指定 数中。
另一方 如果条件 不到 和 所指定 条件 么写操作就
不会 执 主服务器会向 执 写操作 客户 回一个 。
以下是 个 性 两个 和它们所 参数
从服务器 关
命令参
信息可以参 中 带 例文件。
复制
信协
本文档 。
协 在以下三个 标之 折中
易于实
可以 效地 机分析
可以很容易地 人 懂
层
客户 和服务器 接来 数据交互 服务器 口号为 。
客户 和服务器发 命令或数据一律以 尾。
服务器接受命令以及命令 参数。
服务器会在接到命令之后 对命令 处 并将命令 回复传 回客户 。
新 一 协
新 一 协 在 本中引入 并最 在 本成为 服务器 信 标准方式。
你 客户 应 按 个新 协 来 实 。
在 个协 中 所有发 服务器 参数 是二 制安全 。
以下是 个协 一 形式
参数数
参数 字 数
参数 数据
参数 字 数
参数 数据
命令参
命令本 也作为协 其中一个参数来发 。
举个例子 以下是一个命令协 打印 本
个命令 实 协 值如下
后我们会 到 格式 了 作命令 协 之外 也 在命令 回复协 中 只有一个参数 回
复格式 为批 回复 。
一协 原本是 在回复协 中 于将列 多个 回 客户 回复格式 为多条批
回复 。
一个多条批 回复以 为前 后 多条不同 批 回复 其中 为 些批 回复 数 。
回复
命令会 回多 不同 型 回复。
检查服务器发回数据 一个字 可以 定 个回复是什么 型
态回复 一个字 是
回复 一个字 是
整数回复 一个字 是
批 回复 一个字 是
多条批 回复 一个字 是
态回复
一个 态回复 或 单 回复 是一 以 开始、 尾 单 字 串。
以下是一个 态回复 例子
客户 库应 回 号之后 所有内容。 如在在上 个例子中 客户 就应 回字 串 。
态回复 常 些不 回数据 命令 回 回复不是二 制安全 它也不 包含新 。
态回复 外开 常少 只 三个字 开头 和 尾 。
信协
命令参
回复
回复和 态回复 常 似 它们之 唯一区别是 回复 一个字 是 态回复
一个字 是 。
回复只在某些地方出 时发 如 当 户对不 数据 型执 命令 或 执 一个不存
在 命令 。
一个客户 库应 在收到 回复时产 一个异常。
以下是两个 回复 例子
在 之后 到 到 一个 格或新 为 中 内容 所 回 型。
是一个 则是一个更 定 。一个客户 实 可以为不同 型 产
不同 型 异常 或 提供一 方式 可以 提供字 串形式 名来捕捉 不
同 。
不 些 性 得并不多 所以并不是 别 一个受 客户 可以 单地 回一个
假 来 一个 条件。
整数回复
整数回复就是一个以 开头 尾 字 串 整数。
如 和 是整数回复。
回整数回复 其中两个命令是 和 。 回 整数 有什么 含义 回
一个 增后 整数值 则 回一个 时 戳 回值 唯一 制是 些数必 够
位有 号整数 。
整数回复也 广 地 于 和 假 如 和 回值
假。
其他一些命令 如 、 和 只在操作 执 了 时候 才 回 否则 回 。
以下命令 回整数回复 、 、 、 、 、 、 、
、 、 、 、 、 、 、 、 。
批 回复
服务器使 批 回复来 回二 制安全 字 串 字 串 最大 度为 。
客户
服务器
服务器发 内容中
一字 为 号
接下来 是 实 回复 度 数字值
之后 一个
再后 是实 回复数据
回复
命令参
最末尾是另一个
对于前 命令 服务器实 发 内容为
如果 值不存在 么批 回复会将 值 作回复 度值 就像 样
客户
服务器
回复 为 批 回复 。
当 对 不存在时 客户 应 回 对 不是 字 串 如 库应 回 库应
回 或 在回复对 中 一个 标志 如 。
多条批 回复
像 样 命令 回多个值 一 标可以 多条批 回复来完成。
多条批 回复是 多个回复 成 数 数 中 个元 可以是任意 型 回复 包括多条批 回复本
。
多条批 回复 一个字 为 后 一个字 串 整数值 个值 录了多条批 回复所包含
回复数 再后 是一个 。
客户
服务器
服务器
服务器
服务器
服务器
服务器
服务器
服务器
服务器
在上 例中 服务器发 所有字 串 尾。
如你所 到 样 多条批 回复所使 格式 和客户 发 命令时使 一 协 格式一模一
样。它们之 唯一区别是
一 协 只发 批 回复。
服务器应 命令时所发 多条批 回复 则可以包含任意 型 回复。
以下例子展 了一个多条批 回复 回复中包含四个整数值 以及一个二 制安全字 串
在回复 一 服务器发 个多条批 回复包含 条回复 再后 则是 条回复
文。
多条批 回复也可以是 就像 样
信协
命令参
客户
服务器
无内容 多条批 回复 也是存在 如当 命令 塞时 最大时
时 它就 回一个无内容 多条批 回复 个回复 数值为
客户
服务器
客户 库应 区别对待 多条回复和无内容多条回复 当 回一个无内容多条回复时 客户 库应
回一个 对 不是一个 数 。
多条批 回复中 元
多条批 回复中 元 可以将 度 为 从 元 不存在 并且也不是一个 字 串
。
当 命令使 对一个不存在 操作时 就会发 多条批 回复中带有 元
情况。
以下例子展 了一个包含 元 多 批 回复
服务器
服务器
服务器
服务器
服务器
服务器
其中 回复中 二个元 为 。
对于 个回复 客户 库应 回 似于 样 回复
多命令和
客户 可以 在一次写入操作中发 多个命令
在发 新命令之前 无 前一个命令 回复。
多个命令 回复会在最后一并 回。
内 命令
当你 和 服务器 但又找不到 手上只有 时候 你可以
别为 情形 内 命令格式来发 命令。
以下是一个客户 和服务器使 内 命令来 交互 例子
客户
服务器
多条批 回复中 元
命令参
以下另一个 回整数值 内 命令 例子
客户
服务器
因为 有了 一 协 中 来声明参数 数 所以在 会 入命令 时候 必 使
格来分割各个参数 服务器在接收到数据之后 会按 格对 户 入 分析 并 取其中 命
令参数。
性 协 分析器
尽 协 常利于人 定义也很 单 但 个协 实 性 仍 可以和二 制协 一样
快。
因为 协 将数据 度放在数据 文之前 所以 序无 像 样 为了寻找某个 字
扫描整个 也无 对发 服务器 义 。
序可以在对协 文本中 各个字 处 同时 查找 字 并 出批 回复或多条批 回复
度 就像 样
得到了批 回复或多条批 回复 度之后 序只 一次 函数 就可以将回复 文数据全
入到内存中 无 对 些数据做任何 处 。
在回复最末尾 和 不作处 丢弃它们。
协 实 性 可以和二 制协 实 性 媲 并且 于 协 单性 大 分
可以 易地实 个协 使得客户 件 数 大大减少。
信协
持久化
本文档 。
文 提供了 持久化 技术性描 推 所有 户 。
更广 地了 持久化 以及 持久化所保 久性 参 文
中文 。
持久化
提供了多 不同 别 持久化方式
持久化可以在指定 时 内 成数据 时 快 。
持久化 录服务器执 所有写操作命令 并在服务器启动时 新执 些命令来 原数
据 。 文件中 命令全 以 协 格式来保存 新命令会 加到文件 末尾。
可以在后台对 文件 写 使得 文件 体 不会 出保存数据 态所
实 大小。
可以同时使 持久化和 持久化。在 情况下 当 启时 它会优先使
文件来 原数据 因为 文件保存 数据 常 文件所保存 数据 更完整。
你 可以关 持久化功 数据只在服务器 时存在。
了 持久化和 持久化之 异同是 常 以下几个小 将 地介 两 持久化功
并对它们 同和不同之处 明。
优
是一个 常 凑 文件 它保存了 在某个时 上 数据 。 文件 常
合 于 备份 如 你可以在最 小时内 小时备份一次 文件 并且在 个月
一天 也备份一个 文件。 样 即使 上 也可以 时将数据 原到不同
本。
常 于 恢复 它只有一个文件 并且内容 常 凑 可以 在加
密后 将它传 到别 数据中心 或 亚 中。
可以最大化 性 在保存 文件时唯一 做 就是 出一个子
后 个子 就会处 接下来 所有保存工作 无 执 任何 操作。
在恢复大数据 时 度 恢复 度 快。
命令参
如果你 尽 免在服务器故 时丢失数据 么 不 合你。 允 你 不同
保存 来控制保存 文件 但是 因为 文件 保存整个数据
态 所以它并不是一个 松 操作。因 你可 会 少 分 才保存一次 文件。在 情况下
一旦发 故 停机 你就可 会丢失好几分 数据。
次保存 时候 出一个子 并 子 来 实 持久化工作。在
数据 庞大时 可 会 常 时 成服务器在某某 内停 处 客户 如果数据
常巨大 并且 时 常 张 么 停 时 可 会 整整一 。
写也 但无 写 执 有多 数据 久性 不会有任何损失。
优
使 持久化会 变得 常 久 你可以 不同
如无 一次 或 次执 写入命令时 。 为
一次 在 下 仍 可以保持 好 性 并且就 发 故 停机 也最多只会丢
失一 数据 会在后台 执 所以主 可以 努力地处 命令 。
文件是一个只 加操作 日志文件 因 对 文件 写入不
即使日志因为某些原因 包含了未写入完整 命令 如写入时 已 写入中 停机
工具也可以 易地修复 。
可以在 文件体 变得 大时 动地在后台对 写 写后 新 文件包
含了恢复当前数据 所 最小命令 合。整个 写操作是 对安全 因为 在创建新
文件 中 会 将命令 加到 有 文件 即使 写 中发 停机 有
文件也不会丢失。 一旦新 文件创建完 就会从旧 文件切换到新 文件 并
开始对新 文件 加操作。
文件有序地保存了对数据库执 所有写入操作 些写入操作以 协 格式保存 因
文件 内容 常容易 人 懂 对文件 分析 也很 松。导出 文
件也 常 单 举个例子 如果你不小心执 了 命令 但只 文件未 写
么只 停 服务器 文件末尾 命令 并 启 就可以将数据 恢复
到 执 之前 态。
对于 同 数据 来 文件 体 常 大于 文件 体 。
根据所使 度可 会慢于 。在一 情况下 性 依
常 关 可以 度和 一样快 即使在 之下也是如 。不 在处
巨大 写入 入时 可以提供更有保 最大延 时 。
在 去曾 发 样 因为个别命令 原因 导 文件在 新 入时 无 将数
据 恢复成保存时 原样。 举个例子 塞命令 就曾 引 样 。
套件 为 情况 加了 它们会 动 成 机 、复杂 数据 并 新 入 些数据来
保一切 常。 在 文件中并不常 但是对 来 几乎是不可 出
。
持久化
命令参
和 我应 哪一个
一 来 如果想 到 以媲 数据安全性 你应 同时使 两 持久化功 。
如果你 常关心你 数据 但仍 可以承受数分 以内 数据丢失 么你可以只使 持久化。
有很多 户 只使 持久化 但我们并不推 方式 因为定时 成 快 常
便于 数据库备份 并且 恢复数据 度也 恢复 度 快 之外 使
可以 免之前提到 序 。
因为以上提到 原因 未来我们可 会将 和 整合成单个持久化模型。 是一个
期 划。
接下来 几个小 将介 和 更多 。
快
在 情况下 将数据库快 保存在名字为 二 制文件中。
你可以对 它在“ 内数据 少有 个改动” 一条件 时 动保存一次数据 。
你也可以 或 手动 数据 保存操作。
如 以下 会 在 “ 内有 少有 个 改动” 一条件时 动保存一次数据
持久化方式 为快 。
快 作方式
当 保存 文件时 服务器执 以下操作
同时拥有 和子 。
子 将数据 写入到一个临时 文件中。
当子 完成对新 文件 写入时 新 文件替换原来 文件 并删 旧
文件。
工作方式使得 可以从写时复制 机制中 。
只 加操作 文件
快 功 并不是 常 久 如果 因为某些原因 成故 停机 么服务器将丢失最 写
入、且仍未保存到快 中 些数据。
尽 对于某些 序来 数据 久性并不是最 因 但是对于 些 完全 久 力
序来 快 功 就不太 了。
从 本开始 增加了一 完全 久 持久化方式 持久化。
你可以 修改 文件来打开 功
和 我应 哪一个
命令参
从 在开始 当 执 一个改变数据 命令时 如 个命令就会 加到 文件
末尾。
样 当 新启时 序就可以 新执 文件中 命令来 到 建数据 。
写
因为 作方式是不断地将命令 加到文件 末尾 所以 写入命令 不断增加 文件 体
也会变得 来 大。
举个例子 如果你对一个 数器 了 次 么仅仅是为了保存 个 数器 当前值 文
件就 使 条 录 。
在实 上 只使 一条 命令已 以保存 数器 当前值了 其余 条 录实 上 是多余 。
为了处 情况 支持一 有 性 可以在不打断服务客户 情况下 对 文件
建 。
执 命令 将 成一个新 文件 个文件包含 建当前数据 所 最
少命令。
己手动执 命令 则可以 动 发 写 具体信息
查 例 文件。
有多 久
你可以 多久才将数据 到 一次。
有三个
次有新命令 加到 文件时就执 一次 常慢 也 常安全。
一次 够快 和使 持久化差不多 并且在故 时只会丢失 数据。
从不 将数据交 操作 来处 。更快 也更不安全 择。
推 并且也是 措施为 一次 可以兼 度和安全性。
总是 在实 使 中 常慢 即使在 对 关 序 了改 之后仍是如 ——
定了 不可 快得 来。
如果 文件出 了 怎么办
服务器可 在 序 在对 文件 写入时停机 如果停机 成了 文件出 么
在 启时会拒 入 个 文件 从 保数据 一 性不会 坏。
当发 情况时 可以 以下方 来修复出 文件
为 有 文件创建一个备份。
使 带 序 对原来 文件 修复。
持久化
命令参
可 使 对 修复后 文件和原始 文件 备份 查 两个文件之 不同
之处。
启 服务器 待服务器 入修复后 文件 并 数据恢复。
作方式
写和 创建快 一样 巧妙地利 了写时复制机制。
以下是 写 执
执 在同时拥有 和子 。
子 开始将新 文件 内容写入到临时文件。
对于所有新执 写入命令 一 将它们 到一个内存 存中 一 将 些改动 加到 有
文件 末尾 样即使在 写 中 发 停机 有 文件也 是安全 。
当子 完成 写工作时 它 发 一个信号 在接收到信号之后 将内存 存中 所
有数据 加到新 文件 末尾。
搞定 在 原子地 新文件替换旧文件 之后所有命令 会 接 加到新 文件 末尾。
怎么从 持久化切换到 持久化
在 或以上 本 可以在不 启 情况下 从 切换到
为最新 文件创建一个备份。
将备份放到一个安全 地方。
执 以下两条命令
保命令执 之后 数据库 数 有改变。
保写命令会 地 加到 文件 末尾。
执 一条命令开启了 功 会 塞 到初始 文件创建完成为 之后
会 处 命令 并开始将写入命令 加到 文件末尾。
执 二条命令 于关 功 。 一 是可 如果你愿意 也可以同时使
和 两 持久化功 。
别忘了在 中打开 功 否则 服务器 启之后 之前
就会 忘 序会按原来 来启动服务器。
原文 有介 本 切换方式 到 已 很 旧了 了对 分文
档 有 参 原文。
作方式
命令参
和 之 互作
在 本号大于 于 中 执 中 不可以执 。反 来
在 执 中 也不可以执 。
可以 两个 后台 同时对 大 操作。
如果 在执 并且 户显 地 命令 么服务器将向 户回复一个
态 并告 户 已 定执 一旦 执 完 就
会 式开始。
当 启动时 如果 持久化和 持久化 打开了 么 序会优先使 文件来恢复数
据 因为 文件所保存 数据 常是最完整 。
备份 数据
在 个小 前 先将下 句 于心 一定 备份你 数据库
故 失效 如 可 你 数据 失不 不 备份是 常危 。
对于数据备份是 常友好 因为你可以在服务器 时候对 文件 复制 文件一旦
创建 就不会 任何修改。当服务器 创建一个新 文件时 它先将文件 内容保存在一个临时
文件 当临时文件写入完 时 序才使 原子地 临时文件替换原来 文件。
也就是 无 何时 复制 文件 是 对安全 。
以下是我们 建
创建一个定期任务 小时将一个 文件备份到一个文件夹 并且 天将一个 文
件备份到另一个文件夹。
保快 备份 带有 应 日期和时 信息 次执 定期任务 本时 使 命令来删
期 快 如 你可以保 最 小时内 小时快 可以保 最 一两个月 日快 。
少 天一次 将 备份到你 数据中心之外 或 少是备份到你 服务器 机
器之外。
容 备份
容 备份基本上就是对数据 备份 并将 些备份传 到多个不同 外 数据中心。
容 备份可以在 并产 快 主数据中心发 严 时 仍 数据处于安全 态。
因为很多 户 是创业 他们 有大把大把 可以 所以下 介 是一些实 又便宜
容债备份方
以及其他 似 服务 是一个构建 备份 好地方。最 单 方 就是将你
小时或 日 备份加密并传 到 。对数据 加密可以 命令来完成 对 加
密模式 。 得把你 密 放到几个不同 、安全 地方去 如你可以把密 复制 你 最
人 。同时使 多个储存服务来保存数据文件 可以提升数据 安全性。
传 快 可以使 来完成 件 。以下是 单并且安全 传 方 买一个 你 数据
中心 常 上 创建一个无口令 客户 并将 个 加到
文件中 样就可以向 个 传 快 备份文件了。为了 到最好 数据安全
性 少 从两个不同 提供商 各 买一个 来 数据容 备份。
持久化
命令参
意 是 容 如果 有小心地 处 是很容易失效 。
最低 度下 你应 在文件传 完 之后 检查所传 备份文件 体 和原始快 文件 体 是否 同。如
果你使 是 么 可以 对文件 校 和来 文件是否传 完整。
另外 你 一个 报 它在 传 备份文件 传 器 失 时 你。
容 备份
命令参
持久化
本文档 。
于 多个 服务器 执 以下三个任务
控 会不断地检查你 主服务器和从服务器是否 作 常。
提 当 控 某个 服务器出 时 可以 向 员
或 其他应 序发 。
动故 当一个主服务器不 常工作时 会开始一次 动
故 操作 它会将失效主服务器 其中一个从服务器升 为新 主服务器 并 失效主服务器
其他从服务器改为复制新 主服务器 当客户 图 接失效 主服务器时 也会向客户 回
新主服务器 地址 使得 可以使 新主服务器代替失效服务器。
是一个分布式 你可以在一个架构中 多个 些 使
协 来接收关于主服务器是否下 信息 并使 投 协
来决定是否执 动故 以及 择哪个从服务器作为新 主服务器。
出为一个单 可执 文件 但实 上它只是一个 在 模式
下 服务器 你可以在启动一个普 服务器时 定 来启动
。
前仍在开发中 个文档 内容可 实 修改 变更。
兼容 或以上 本 推 使 或以上 本。
取
前 是 分支 一 分 你必 到 克 一份
分值 后 来 得 。
序可以在 后 文档中发 它是一个命名为 序。
你也可以 下一 介 方 序 在 模式之下。
另外 一个新 本 已 包含在了 本 出文件中。
启动
对于 序 你可以 以下命令来启动
命令参
对于 序 你可以 以下命令来启动一个 在 模式下 服务器
两 方 可以启动一个 实例。
启动 实例必 指定 应 文件 会使 文件来保存 当前 态 并在
启时 入 文件来 态 原。
如果启动 时 有指定 应 文件 或 指定 文件不可写 么
会拒 启动。
中包含了一个名为 文件 个文件是一个带有 文件
例。
一个 所 最少 如下所
一 指 去 一个名为 主服务器 个主服务器 地址为
口号为 将 个主服务器判断为失效 少 个 同意 只 同意 数 不
标 动故 就不会执 。
不 意 无 你 多少个 同意才 判断一个服务器失效 一个 得
中多数 支持 才 发 一次 动故 并 一个 定 元
一个 元就是一个新主服务器 本号 。
换句 在只有少数 常 作 情况下 是不 执 动故
。
其他 基本格式如下
名字 主服务器 名字 值
各个 功 如下
指定了 为服务器已 断 所 数。
如果服务器在 定 数之内 有 回 发 命令 回复 或 回一个
么 将 个服务器标 为主 下 。
不 只有一个 将服务器标 为主 下 并不一定会引 服务器 动故 只有在
够数 将一个服务器标 为主 下 之后 服务器才会 标 为客 下
时 动故 才会执 。
将服务器标 为客 下 所 数 对主服务器 决定。
命令参
指定了在执 故 时 最多可以有多少个从服务器同时对新 主服务器
同 个数字 小 完成故 所 时 就 。
如果从服务器 为允 使 期数据 参 对 文件中对
明 么你可 不希望所有从服务器 在同一时 向新 主服务器发 同 因为尽
复制 大 分 不会 塞从服务器 但从服务器在 入主服务器发来 文件时
仍 会 成从服务器在一 时 内不 处 命令 如果全 从服务器一 对新 主服务器 同
么就可 会 成所有从服务器在 时 内全 不可 情况出 。
你可以 将 个值 为 来保 次只有一个从服务器处于不 处 命令 态。
本文档剩余 内容将对 其他 介 例 文件 也对 关
了完整 。
主 下 和客 下
前 中关于下 有两个不同 概念
主 下 指 是单个 实例对服务器做出 下 判断。
客 下 指 是多个 实例在对同一个服务器做出
判断 并且 命令互 交 之后 得出 服务器下
判断。 一个 可以 向另一个 发 命令
来 对方是否 为 定 服务器已下 。
如果一个服务器 有在 所指定 时 内 对向它发 命令
回一个有效回复 么 就会将 个服务器标 为主 下 。
服务器对 命令 有效回复可以是以下三 回复 其中一
回 。
回 。
回 。
如果服务器 回 以上三 回复之外 其他回复 又或 在指定时 内 有回复 命令 么
为服务器 回 回复无效 。
意 一个服务器必 在 内 一 回无效回复才会
标 为主 下 。
举个例子 如果 值为 么只 服务器
在 之内 回 少一次有效回复 个服务器就仍 会 为是处于 常 态 。
从主 下 态切换到客 下 态并 有使 严格 定人数 是使
了 协 如果 在 定 时 围内 从其他 接收到了 够数 主服务器下
报告 么 就会将主服务器 态从主 下 改变为客 下 。如果之后其他 不再报
告主服务器已下 么客 下 态就会 。
客 下 条件只 于主服务器 对于任何其他 型 实例 在将它们判断为下 前不
协商 所以从服务器或 其他 不会 到客 下 条件。
只 一个 发 某个主服务器 入了客 下 态 个 就可 会 其他 推 出
并对失效 主服务器执 动故 操作。
主 下 和客 下
命令参
个 定期执 任务
个 以 一次 向它所 主服务器、从服务器以及其他 实例发 一
个 命令。
如果一个实例 最后一次有效回复 命令 时
所指定 值 么 个实例会 标 为主 下 。一个有效回复可以是 、
或 。
如果一个主服务器 标 为主 下 么 在 个主服务器 所有 以 一次
主服务器 入了主 下 态。
如果一个主服务器 标 为主 下 并且有 够数 少 到 文件指定 数
在指定 时 围内同意 一判断 么 个主服务器 标 为客 下 。
在一 情况下 个 会以 一次 向它已 所有主服务器和从服务器发
命令。当一个主服务器 标 为客 下 时 向下 主服务器 所有从服务器发
命令 会从 一次改为 一次。
当 有 够数 同意主服务器已 下 主服务器 客 下 态就会 。当主服务
器 新向 命令 回有效回复时 主服务器 主 下 态就会 。
动发 和从服务器
一个 可以与其他多个 接 各个 之 可以互 检查对方 可 性 并
信息交换。
你无 为 个 分别 其他 地址 因为 可以 发布与 功 来
动发 在 同主服务器 其他 一功 是 向 发 信息来
实 。
与 似 你也不必手动列出主服务器属下 所有从服务器 因为 可以 主服务器来 得所
有从服务器 信息。
个 会以 两 一次 发布与 功 向 它 所有主服务器和从服务器
发 一条信息 信息中包含了 地址、 口号和
。
个 了 它 所有主服务器和从服务器 查找之前
未出 。当一个 发 一个新 时 它
会将新 加到一个列 中 个列 保存了 已 同一个主服务器 所有
其他 。
发 信息中 包括完整 主服务器当前 。如果一个 包含 主
服务器 另一个 发 旧 么 个 会 即升 到新 上。
在将一个新 加到 主服务器 列 上 之前 会先检查列 中是否已 包含了
和 加 拥有 同 或 同地址 包括 地址和 口号 如果是
会先 列 中已有 些拥有 同 或 同地址 后再 加新
。
在 情况下 使 口 普 服务器使 是 。
命令参
接受 协 格式 命令 所以你可以使 或 任何其他 客户 来与
。
有两 方式可以和
一 方 是 接发 命令来查 服务器 当前 态 以及 所 关于
其他 信息 如 。
另一 方 是使 发布与 功 接收 发 当执 故 操作 或 某个
服务器 判断为主 下 或 客 下 时 就会发 应 信息。
命令
以下列出 是 接受 命令
回 。
列出所有 主服务器 以及 些主服务器 当前 态。
列出 定主服务器 所有从服务器 以及 些从服务器 当前
态。
回 定名字 主服务器 地址和 口
号。如果 个主服务器 在执 故 操作 或 对 个主服务器 故 操作已 完成
么 个命令 回新 主服务器 地址和 口号。
所有名字和 定模式 匹 主服务器。 参数
是一个 格 模式。 操作 楚主服务器 前 所有 态 包括 在执 中 故 并
前已 发 和关 主服务器 所有从服务器和 。
当主服务器失效时 在不 其他 意 情况下 强
制开始一次 动故 不 发 故 会向其他 发 一个新 其他
会根据 个 应 更新 。
发布与 信息
客户 可以将 作是一个只提供了 功 服务器 你不可以使 命令向 个
服务器发 信息 但你可以 命令或 命令 定 来 取 应
事件提 。
一个 够接收和 个 名字 同 事件。 如 名为 就可以接收所有实例 入主
下 态 事件。
执 命令可以接收所有事件信息。
以下列出 是客户 可以 来 得 和信息 格式 一个 文单 是 事件 名字 其余
是数据 格式。
意 当格式中包含 字样时 所 回 信息中包含了以下 于 别 标实例
内容
字 之后 内容 于指定主服务器 些内容是可 它们仅在 字 之前 内容指定 实例不是主服
务器时使 。
主服务器已 。
一个新 从服务器已 别并关 。
命令参
故 态切换到了
态。
另一个 开始了一次故 操作 或 一个
从服务器 换成了主服务器。
头 向实例发 了 命
令 为实例 新 主服务器。
实例 在将 己 为指定主服务器 从服务器 但
应 同 仍未完成。
从服务器已 成功完成对新主服务器 同 。
对 定主服务器 一个或多个 已 因为
复出 ——当 实例 启 时候 就会出 情况。
一个 定主服务器 新 已 别并 加。
定 实例 在处于主 下 态。
定 实例已 不再处于主 下 态。
定 实例 在处于客 下 态。
定 实例已 不再处于客 下 态。
当前 元 已 更新。
一个新 故 操作 在执 中 待 大多数
中 。
得指定 元 举 可以 故 操作了。
故 操作 在处于
态—— 在寻找可以升 为主服务器 从服务器。
操作未 找到 合 升 从服务器。 会
在一 时 之后再次尝 寻找合 从服务器来 升 又或 接放弃执 故 操作。
利找到 合 升 从服务器。
在将指定 从服务器升
为主服务器 待升 功 完成。
故 因为 时 中 不 最 所有从服
务器 会开始复制新 主服务器
。
故 操作 利完成。所有从服务器 开始复制新 主服务
器了。
变更 主服务器
和地址已 改变。 是 大多数外 户 关心 信息。
入 模式。
出 模式。
故
一次故 操作 以下 成
发 主服务器已 入客 下 态。
命令参
对我们 当前 元 增 情 参 并尝 在 个 元中当 。
如果当 失 么在 定 故 时时 两倍之后 新尝 当 。如果当 成功 么执
以下 。
出一个从服务器 并将它升 为主服务器。
向 中 从服务器发 命令 它 变为主服务器。
发布与 功 将更新后 传播 所有其他 其他 对它们 己
更新。
向已下 主服务器 从服务器发 命令 它们去复制新 主服务器。
当所有从服务器 已 开始复制新 主服务器时 头 次故 操作。
当一个 实例 新 ——无 是 成主服务器、从服务器、又或
成其他主服务器 从服务器—— 会向 新 实例发 一个 命令
从 保 些 会持久化在 。
使 以下 则来 择新 主服务器
在失效主服务器属下 从服务器当中 些 标 为主 下 、已断 、或 最后一次回复 命
令 时 大于五 从服务器 会 。
在失效主服务器属下 从服务器当中 些与失效主服务器 接断开 时 指
定 时 十倍 从服务器 会 。
在 历了以上两 之后剩下来 从服务器中 我们 出复制偏 最大
个从服务器作为新 主服务器 如果复制偏 不可 或 从服务器 复制偏 同 么带有
最小 个从服务器成为新 主服务器。
动故 一 性
动故 使 来 举 头 从 保在一个 定 元
只有一个 头产 。
在同一个 元中 不会有两个 同时 中为 头 并且各个 在同一个 元中只会
对一个 头 投 。
更 元总是优于 低 元 因 个 会主动使 更新 元来代替 己 。
单来 我们可以将 作是一个带有 本号 态。一个 态会以最后写入 出
方式 也即是 最新 总是 出 传播 所有其他 。
举个例子 当出 分割 时 一个 可 会包含了 旧 当 个
接到其他 发来 本更新 时 就会对 己 更新。
如果 在 分割出 情况下仍 保持一 性 么应 使 主服务器
在 接 从实例少于 定数 时停 执 写操作 与 同时 应 在 个 主服务器或从服务器
机器上 。
态 持久化
态会 持久化在 文件 。
当 接收到一个新 或 当 头 为主服务器创建一个新 时 个 会与
元一 保存到 。
故
命令参
意味 停 和 启 是安全 。
在 故 情况下对实例 新
即使 有 动故 操作在 总会尝 将当前 到 实例上 。 别是
根据当前 如果一个从服务器 宣告为主服务器 么它会代替原有 主服务器 成为新 主
服务器 并且成为原有主服务器 所有从服务器 复制对 。
些 接了 主服务器 从服务器会 新 使得 些从服务器会去复制 主服务器。
不 在以上 些条件 之后 在对实例 新 之前仍 会 待一 够 时 保
可以接收到其他 发来 更新 从 免 因为保存了 期 对实例 了不必
新 。
模式
严 依 机 时 功 如 为了判断一个实例是否可 会 录 个实
例最后一次 应 命令 时 并将 个时 和当前时 对 从 个实例有多 时 有
和 任何成功 。
不 一旦 机 时 功 出 故 或 机 常忙 又或 因为某些原因 塞时
可 也会 出 故 。
模式是一 保护模式 当 发 有些不对劲时 就会 入 模式。
因为 时 中断器 执 次 所以我们 期时 中断器 两次执 之 为
左右。 做 是 录上一次时 中断器执 时 时 并将它和 一次时 中断器执 时
对
如果两次 时 之 差 为 值 或 常大 么 入 模式。
如果 已 入 模式 么 延 出 模式 时 。
当 入 模式时 它仍 会 所有 标 但是
它不再执 任何操作 如故 。
当有实例向 个 发 命令时 回 值 因
为 个 所 下 判断已 不再准 。
如果 可以 常 持 么 出 模式。
处 态
功 尚未实
当 本 时 指定时 时 就会 回 。
当出 情况时 在尝 执 故 操作之前 会先向服务器发 一个 命令
如果服务器 在执 是一个只 本 么 个 本就会 杀 服务器就会回到 常 态。
命令参
客户 实
关于 客户 实 信息可以参 客户 指引手册 。
客户 实
命令参
教
本文档 。
本文档是 入 教 从 户 度介 了 、 和操作 方 。
本教 不包含晦 懂 分布式概念 也 有像 样包含 实 如果你打
入地学习 方 么推 你在 完 个教 之后 再去 一 。
前仍处于 本 如果在使 中发 任何 到 件列 发
或 到 报告 。
介
是一个可以在多个 之 数据共享 施 。
不支持 些 同时处 多个 命令 因为执 些命令 在多个 之
动数据 并且在 情况下 些命令将 低 性 并导 不可 为。
分区 来提供一定 度 可 性 即使 中有一 分 失效
或 无 也可以 处 命令 。
提供了以下两个好处
将数据 动切分 到多个 力。
当 中 一 分 失效或 无 时 仍 可以 处 命令 力。
数据共享
使 数据分 一 性哈希 来实 一个 包
含 个哈希槽 数据库中 个 属于 个哈希槽 其中一个 使 公式
来 属于哪个槽 其中 句 于 校 和
。
中 个 处 一 分哈希槽。举个例子 一个 可以有三个哈希槽 其中
处 号 号哈希槽。
处 号 号哈希槽。
处 号 号哈希槽。
命令参
将哈希槽分布到不同 做 使得 户可以很容易地向 中 加或 删 。 如
如果 户将新 加到 中 么 只 将 、 、 中 某些槽 动到 就
可以了。
与 似 如果 户 从 中 么 只 将 中 所有哈希槽 动到
和 后再 不包含任何哈希槽 就可以了。
因为将一个哈希槽从一个 动到另一个 不会 成 塞 所以无 是 加新 是 已存在
又或 改变某个 包含 哈希槽数 不会 成 下 。
中 主从复制
为了使得 在一 分 下 或 无 与 大多数 情况下 仍 可以
常 作 对 使 了主从复制功 中 个 有 个 个复制品 其
中一个复制品为主 其余 个复制品为从 。
在之前列举 、 、 例子中 如果 下 了 么 将无 常 因为 找不到
来处 号 号 哈希槽。
另一方 假如在创建 时候 或 少在 下 之前 我们为主 加了从
么当主 下 时候 就会将 为新 主 并 它代替下 主 处
号 号 哈希槽 样 就不会因为主 下 无 常 作了。
不 如果 和 下 是会停 作。
一 性保
不保 数据 强一 性 在 定条件下 可 会丢失已 执
写命令。
使 异 复制 是 可 会丢失写命令 其中一个原因。 以下 个
写命令 例子
客户 向主 发 一条写命令。
主 执 写命令 并向客户 回命令回复。
主 将刚刚执 写命令复制 它 从 、 和 。
如你所 主 对命令 复制工作发 在 回命令回复之后 因为如果 次处 命令 待复制
操作完成 么主 处 命令 度将极大地 低——我们必 在性 和一 性之 做出权 。
如果 有必 可 会在将来提供同 地 执 写命令 方 。
另外一 可 会丢失命令 情况是 出 分 并且一个客户 与
少包括一个主 在内 少数 实例 孤 。
举个例子 假 包含 、 、 、 、 、 六个 其中 、 、 为主 、 、
分别为三个主 从 另外 有一个客户 。
假 中发 分 么 可 会分 为两方 大多数 一方包含 、 、 、
和 少数 一方则包含 和客户 。
在 分 期 主 仍 会接受 发 写命令
如果 分 出 时 很 么 会 常
教
命令参
但是 如果 分 出 时 够 使得大多数一方将从 为新 主 并使
来代替原来 主 么 发 主 写命令将丢失。
意 在 分 出 期 客户 可以向主 发 写命令 最大时 是有 制 一时 制
为 时时 是 一个
对于大多数一方来 如果一个主 未 在 时时 所 定 时 内 新 上 么
会将 个主 为下 并使 从 来代替 个主 工作。
对于少数一方 如果一个主 未 在 时时 所 定 时 内 新 上 么它将停
处 写命令 并向客户 报告 。
创建并使
多个 在 模式 下 实例 成 实例 模式 来
开启 开启 模式 实例将可以使 有 功 和命令。
以下是一个包含了最少 文件 例
文件中 于开实例 模式 则 定了保存
文件 径 值为 。
文件无 人为修改 它 在启动时创建 并在有 时 动 更新。
常 作 少 三个主 不 在刚开始 功 时 强 建 使 六个 其中三个
为主 其余三个则是各个主 从 。
先 我们 入一个新 录 并创建六个以 口号为名字 子 录 后我们在将 个 录中 一个
实例
在文件夹 中 各创建一个 文件 文件 内容可以使 上 例 文件 但
得将 中 口号从 改为与文件夹名字 同 号 。
在 从 分支中取出最新 出可执 文件
并将文件复制到 文件夹 后使 似以下命令 在 个标 中打开一个实例
实例打印 日志显 因为 文件不存在 所以 个 为它 指定了一个新
实例会一 使 同一个 从 在 中保持一个 一无二 名字。
个 使 不是 或 口号来 录其他 因为 地址和 口号 可 会改变 个
一无二 标 则会在 整个 命周期中一 保持不变。
我们将 个标 为 。
创建并使
命令参
创建
在我们已 有了六个 在 中 实例 接下来我们 使 些实例来创建 并为 个
写 文件。
使 命令 工具 写 文件 工作可以 常容易地完成
位于 文件夹中 它是一个 序 个 序 向实例发 命令来完成创建新
检查 或 对 新分 工作。
我们 执 以下命令来创建
命令 意义如下
定 序 命令是 我们希望创建一个新 。
我们希望为 中 个主 创建一个从 。
之后 其他参数则是实例 地址列 我们希望 序使 些地址所指 实例来创建新 。
单来 以上命令 意思就是 序创建一个包含三个主 和三个从 。
接 会打印出一份 想中 你 如果你 得 就可以 入
就会将 份 应 到 当中
入 并按下回 之后 就会将 应 到各个 并 接 各个 ——也即是
各个 开始互
教
命令参
如果一切 常 将 出以下信息
中 个槽 有 少一个主 在处 作 常。
客户
一个 是客户 实 很少。以下是一些我 实
是我 写 实 于作为其他实 参 。 实 是对
一个 单包 效地实 了与 所 最少 义 。
上去是 一个 本 个 有一 时 有更新
了 最后一次提交是在六个月之前 不 可以将 个 作学习 。
曾 对早期 有 一定 支持 但我不 定它对 支持是否完整 也不
楚它是否和最新 本 兼容 因为新 将槽 数 从 改为 了 。
分支中 序实 了 常基本 支持 可以使 命令
来启动。
单 办 就是使 或 接下来我们将使
为例来
客户
命令参
对 支持是 常基本 所以它总是依 来将它 向
。
一个 客户 应 做得 更好 它应 存 录 哈希槽与 地址之 映射
从 接将命令发 到 上 。
映射只会在 出 某些修改时变化 如 在一次故 之后 或
员 加 或 来修改了 布局 之后 如 。
使 写一个 例应
在展 如何使 故 、 新分 操作之前 我们 创建一个 例应 了 一些与
客户 交互 基本方 。
在 例应 中 我们会尝 入失效 态 又或 开始一次 新分 以 来 察
在 实世 时 并且为了 个 例尽可 地有 我们会 个应 向 写操作。
本 将 两个 例应 来展 基本 以下是本 一个 例应 它是一个
名为 文件 包含在
个应 所做 工作 常 单 它不断地以 为 为值 使 命令向数据库
值对。
如果我们执 个应 应 将按 序执 以下命令
教
命令参
如 。。。
代 中 个 操作 使 一个 和 代 块 包 因为我们希望在代 出 时
将 打印到 上 不希望应 因为异常 出。
代 七 是代 中 一个有 地方 它创建了一个 对 其中创建对 所使 参数及其
意义如下
一个参数是 录了启动 列 列 中包含了两个 地址。
二个参数指定了对于 中 各个不同 对 可以 得 最大 接数
。
三个参数 指定了一个命令在执 多久之后 才会 作是执 失 。
住 启动列 中并不 包含所有 地址 但 些地址中 少 有一个是有效
一旦 成功 接上 中 某个 时 列 就会 动更新 任何
客户 应 样做。
在 序创建 对 实例 保存到 变 我们可以将 个对 当作普 对 实
例来使 。
在十一 十九 我们先尝 数器中 值 如果 数器不存在 我们才将 数器初始化为
将 数值保存到 数器 我们可以在 例 启之后 仍 之前 执 不必 次
启之后 从 开始 新 值对。
为了 序在 下 情况下 仍 不断地尝 取 数器 值 我们将 取操作包含在了一个
循 一 应 序并不 如 小心。
二十一 三十 是 序 主循 个循 值对 并在 出 时打印 信息。
序在主循 末尾 加了一个 写操作 执 度变慢 帮助执 例 人更容易
序 出。
执 序将产 以下 出
个 序并不是十分有 后我们就会 到一个更有 应 例 不 在 之前 我们先使
个 例来 新分 操作。
对 新分
在 我们来 对 新分 操作。
在执 新分 中 你 序处于 态 样你就会 到 新分 并不会对
在 序产 任何影响 你也可以 将 中 删掉 从 新分
操作在 乎 实 写 下执 。
对 新分
命令参
新分 操作基本上就是将某些 上 哈希槽 动到另外一些 上 和创建 一样 新分 也可
以使 序来执 。
执 以下命令可以开始一次 新分 操作
你只 指定 中其中一个 地址 就会 动找到 中 其他 。
前 只 在 员 协助下完成 新分 工作 动将哈希槽从一个
动到另一个 前来 做不到 不 实 个功 并不 。
执 一 就是 定你打 动 哈希槽 数
我们将打 动 槽数 为 个 如果 序一 在 个槽 应
有不少 了。
了 动 哈希槽数 之外 新分 标 也即是 接收
个哈希槽 。
指 定 标 使 不 是 地 址 和 口。 如 我 们 打 使
一 个 主 来 作 为 标 它 地 址 和 口 是 则 是
么我们应 向 提供
会打印出 中所有 并且我们也可以 执 以下命令来 得
教
命令参
接 会向你 新分 也即是 从哪个 中取出 个哈
希槽 并将 些槽 动到 标 上 。
如果我们不打 从 定 上取出指定数 哈希槽 么可以向 入 样
中 所有主 会成为 将从各个 中各取出一 分哈希槽 凑够 个
后 动到 标 上
入 并按下回 之后 将打印出哈希槽 动 划 如果你 得 就可以 入
并再次按下回
入 并使 按下回 之后 就会 式开始执 新分 操作 将指定 哈希槽从 一
个个地 动到 标 上
在 新分 中 应 可以 常 不会出 任何 。
在 新分 操作执 完 之后 可以使 以下命令来检查 是否 常
对 新分
命令参
根据检查 果显 作 常。
意 就是 在三个主 中 包含了 个哈希槽
和 只包含了 个哈希槽 因为后两 将 己 个哈希槽 动到了
。
一个更有 例应
我们在前 使 例 序 并不是十分有 因为它只是不断地对 写入 但并不检查
写入 果是否 。 如 可 会 地将 发 所有 命令 改成了
但因为 并不检查写入后 值 所以它不会意 到 实 上写入 值是 。
因为 个原因 包含了一个名为 例应 个应
有 得多 它创建了多个 数器 为 个 并 发 命令来增加 些
数器 值。
在增加 数器值 同时 执 以下操作
次使 命令更新一个 数器时 应 会 录下 数器执 命令之后应 有 值。举个
例子 如果 数器 始值为 次是 序 次向它发 命令 么 数器 值应
是 。
在 次发 命令之前 序会 机从 中 取一个 数器 值 并将它与 己 录 值
对 两个值是否 同。
换句 个 序是一个一 性检查器 如果 在执 命令 中 丢
失了某条 命令 又或 多执 了某条客户 有 到 命令 么检查器将察 到 一
——在前一 情况中 录 数器值将 录 数器值 大 在后一
情况中 录 数器值将 录 数器值 小。
序将产 似以下 出
出 打印了 序执 取次数和写入次数 以及执 操作 中因为 不可 产
数。
如果 序察 了不一 情况出 它将在 出 末尾显式不一 情况。
如 如果我们在 中 手动修改某个 数器 值
教
命令参
么 将向我们报告不一 情况
在我们修改 数器值 时候 数器 值是 执 了 次 命令 因为我们将 数器 值
成了 所以 会向我们报告 丢失了 个 命令。
因为 个 例 序具有一 性检查功 所以我们 它来 故 操作。
故
在执 本 操作 中 一 序。
发一次故 最 单 办 就是令 中 某个主 入下 态。
先 以下命令列出 中 所有主
命令 出 我们 口号为 、 和 是主 后我们可以 向 口号为
主 发 命令 个主 崩
在 切换到 标 可以 到 在 下 之后 一
时 将产 大 告信息
从 出可以 到 在执 故 期 总共丢失了 个 命令和
个写命令 但是并 有产 任何数据不一 。
听上去可 有 奇怪 因为在教 开头我们提到 使 是异 复制 在执 故 期
可 会丢失写命令。
故
命令参
但是在实 上 丢失命令 情况并不常 因为 几乎是同时执 将命令回复发 客户 以及将命
令复制 从 两个操作 所以实 上 成命令丢失 时 口是 常小 。
不 尽 出 几 不 但丢失命令 情况 是有可 会出 所以我们对 不 提供强一
性 一描 仍 是 。
在 我们使 命令 查 在执 故 操作之后 主从 布局情况
我 启了之前下 已 从原来 主 变成了从 在 中 三
个主 分别是 、 和 其中 就是因
为 下 变成主 。
命令 出有 儿复杂 它 一 是 以下信息 成
例如 。
地址和 口号 例如 其中 是客户 当前 接
地址和 口号。
例如 、 、 以及 态 例如 。
如果 是一个从 么 在 之后 将是主 例如
主 就是 。
最 一次向 发 命令之后 去了多 时 接到回复。
最 一次 回 回复 时 。
元 信息 参 。
本 接情况 例如 。
前包含 槽 例如 前包含号 为 哈希槽。
加新 到
根据新 加 我们 两 方 来将新 加到
如果 加 新 是一个主 么我们 创建一个 后将某些哈希桶
动到 个 。
另一方 如果 加 新 是一个从 么我们 将 个新 为 中某个
复制品 。
本 将对以上两 情况 介 先介 主 加方 后再介 从 加方 。
无 加 是 一 做 总是 加一个 。
我们可以 使 之前启动 、 方 创建一个 口号为
新 使 文件也和之前一样 只是 得 将 中 口号改为 。
以下是启动 口号为 新
在 创建一个新 标 。
教
命令参
入 文件夹。
创建并 入 文件夹。
将 文件复制到 文件夹 后将 中 口号 改为 。
使 命令 启动 。
如果一切 常 么 应 会 地启动。
接下来 执 以下命令 将 个新 加到
命令中 我们 将一个 加到 之后 是新
地址和 口号 再之后 是 中任意一个已存在 地址和 口号 我们使 是
。
命令 我们可以 新 已 加到 了
新 在已 接上了 成为 一份子 并且可以对客户 命令 向了 但是和其他
主 新 有两 区别
新 有包含任何数据 因为它 有包含任何哈希桶。
尽 新 有包含任何哈希桶 但它仍 是一个主 所以在 将某个从 升 为新
主 时 个新 不会 中。
接下来 只 使 序 将 中 某些哈希桶 动到新 新 就会成为 主
了。
因为使 动哈希桶 方 在前 已 介 所以 就不再 复介 了。
在 我们来 将一个新 变为某个主 复制品 也即是从 方 。
举个例子 如果我们打 新 成为 从 么我们只 客户 接上新
后执 以下命令就可以了
其中命令提供 就是主 。
执 命令之后 我们可以使 以下命令来 已 成为了 为
从
在有两个从 一个从 口号为 另一个从 口号为 。
加新 到
命令参
一个
未完待 。
教
本文档 。
引
个文档是 在开发中 功 文档 文档分为两个 分
一 分介 前已 在 分支中实 了 些功 。
二 分介 前仍未实 些功 。
文档各个 分 内容可 会 功 修改 发 改变 其中 未实 功 发 修改 几 已实
功 发 修改 几 。
个 包含了 写客户 库 所 全 不 意 列出 一 分 可
会在未来发 变化。
什么是
是一个分布式 、容 实 可以使 功 是普
单机 所 使 功 一个子 。
中不存在中心 或 代 其中一个主 标是 到 性
可扩展性 。
为了保 一 性 了一 分容 性 会在保 对 断 和
失效 具有有 抵抗力 前提下 尽可 地保持数据 一 性。
将 失效 为 断 其中一 情况。
容 功 是 使 主 和从 两 来实
主 和从 使 完全 同 服务器实 它们 功 也完全一样 但从 常
仅 于替换失效 主 。
不 如果不 保 “先写入 后 取”操作 一 性 么可以使
从 来执 只 查 。
命令参
实 功 子
实 了单机 中 所有处 单个数据库 命令。
对多个数据库 复杂 操作 如 合 并 操作、合 操作 有 实 些 上 使 多个
多个数据库 才 完成 命令也 有 实 。
在将来 户也 可以 命令 在 中执 对
多个数据库 只 操作 但 本 不会去实 些 将多个数据库 在多个 中 来 去 复杂多
命令。
不像单机 样支持多数据库功 只使 号数据库 并且不 使
命令。
协 中 客户 和服务器
中 有以下 任
持有 值对数据。
录 态 包括 到 映射 。
动发 其他 别工作不 常 并在有 时 在从 中 举出新 主 。
为了执 以上列出 任务 中 个 与其他 建 了“ 接 ” 接是
一个 接 使 二 制协 。
之 使 协 来 以下工作
传播 关于 信息 以 来发 新 。
向其他 发 数据包 以 来检查 标 是否 常 作。
在 定事件发 时 发 信息。
之外 接 于在 中发布或 信息。
因为 不 代 命令 所以客户 应 在 回 或 向
时 将命令 发 其他 。
因为客户 可以 地向 中 任何一个 发 命令 并可以在有 时 根据 向 所提供
信息 将命令 发 所以在 上来 客户 是无 保存 态信息 。
不 如果客户 可以将 和 之 映射信息保存 来 可以有效地减少可 出 向次数 提
升命令执 效 。
分布模型
分割为 个槽 最大 数 也是 个。
推 最大 数 为 个左右。
个主 处 个哈希槽 其中一 分。
当我们 一个 处于“ 定” 态时 指 是 有在执 操作
个哈希槽 只 一个 处 。
命令参
指 是将某个 某些槽从一个 动到另一个 。
一个主 可以有任意多个从 些从 于在主 发 断 或 失效时 对主
替换。
以下是 将 映射到槽
以下是 所使 参数
名 又 或
果 度 位
多 数 也即是
初始化值
反射 入字
发射 出
于 出值 异或常
对于 入 出
录 中 出了 所使 实 。
所产 位 出中 位会 到。
在我们 中 可以很好地将各 不同 型 平 地分布到 个槽 。
属性
个 在 中 有一个 一无二 是一个十六 制 位 机数 在 一次启
动时 成。
会将它 保存到 文件 只 个 文件不 删 就会一 个 。
于标 中 个 。一个 可以改变它 和 口号 不改变 。 可以
动 别出 口号 变化 并将 一信息 协 广播 其他 。
以下是 个 有 关 信息 并且 会将 些信息发 其他
所使 地址和 口号。
标志 。
处 哈希槽。
最 一次使 接发 数据包 时 。
最 一次在回复中接收到 数据包 时 。
将 标 为下 时 。
从 数 。
如果 是从 么它会 录主 。如果 是一个主 么主
一栏 值为 。
属性
命令参
以上信息 其中一 分可以 向 中 任意 主 或 从 可以 发 命
令来 得。
以下是一个向 中 主 发 命令 例子 三个 成
在上 列出 三 信息中 从左到右 各个域分别是 地址和 口号 标志 最后发
时 最后接收 时 接 态 处 槽。
握手 已实
总是应 来 接 口 接 并对接收到 数据包 回复 即使 个
数据包来 不可信 。
了 之外 会拒 其他所有并 来 数据包。
一个 承 另一个 同属于一个 只有以下两 方
一个 可以 向另一个 发 信息 来强制 接收信息 承 发 信息 为
中 一份子。一个 仅在 员显式地向它发 命令时 才会向另一个
发 信息。
另外 如果一个可信 向另一个 传播 三 信息 么接收信息 个 也会将 三
别为 中 一份子。也即是 如果 并且 向 传播关于
信息 么 也会将 别为 中 一份子 并尝 接 。
意味 如果我们将一个 一些新 加到一个 中 么 个 些新 最 会和 中已有 其他
所有 接 来。
明只 员使 命令显式地指定了可信关 就可以 动发 其他 。
别机制 不同 因为 地址变更或 其他 事件 发 产 意料之外
合 从 使得 更具健壮性。
当 接断开时 它会主动 接其他已 。
向
一个 客户 可以向 中 任意 包括从 发 命令 。 会对命令 分析 如
果 命令是 可以执 命令 么 会查找 个命令所 处 所在 槽。
如果 查找 哈希槽 好就 接收到命令 处 么 就 接执 个命令。
另一方 如果所查找 槽不是 处 将查 内 所保存 哈希槽到 映射
录 并向客户 回复一个 。
以下是一个 例子
命令参
信息包含 所属 哈希槽 以及 处 个槽 和 口号 。客
户 根据 个 和 口号 向所属 新发 一次 命令 。
意 即使客户 在 新发 命令之前 待了 常久 时 以 于 又再次更改了 使得
已 不再处 槽 么当客户 向 发 命令 时
候 将再次向客户 回 指 在 处 槽 。
我们 来标 中 但是为了 客户 向操作尽可 地 单 在 中
接 回 标 和 口号 不是 标 。
不是必 但一个客户 应 录 下“槽 处 “ 一
信息 样当再次有命令 对槽 执 时 客户 就可以加快寻找 度。
意 当 处于 定 态时 所有客户 最 会保存有一个哈希槽 映射 录
使得 常 效 客户 可以 接向 发 命令 无 向、代 或 其
他任何可 发 单 故 实体 。
了 向 之外 一个客户 应 可以处 后介 向 。
在
支持在 中 加或 。
实 上 加操作和 删 操作可以抽 成同一个操作 就是 将哈希槽从一个 动到另
一个
加一个新 到 于将其他已存在 槽 动到一个 新 。
从 中 一个 于将 所有槽 动到 其他 上 去。
因 实 在 核心就是将槽从一个 动到另一个 力。因为一个哈希槽实
上就是一些 合 所以 在 哈希 时 做 就是将一些 从一个 动
到另一个 。
如何将槽从一个 动到另一个 我们 对 命令 各个子命令 介
些命 槽 换 。
以下是 命令可 子命令
最开头 两条命令 和 分别 于向 指 或 当槽 指 或
之后 会将 一信息 协 传播到整个 。 命令 常在新创建 时 作为
一 快 地将各个槽指 各个 手 来使 。
子命令可以将指定 槽 指 。
于 命令和 命令 前
于将 定 中 槽 出 后 于将 定槽 导入到
当一个槽 为 态时 原来持有 个槽 仍 会 接受关于 个槽 命令
但只有命令所处 仍 存在于 时 才会处 个命令 。
如果命令所使 不存在与 么 将向客户 回一个 向
告 客户 将命令 发 到槽 标 。
在
命令参
当一个槽 为 态时 仅在接收到 命令之后 才会接受关于 个槽 命
令 。
如果客户 有向 发 命令 么 会使 向 将命令 向
处 个槽 。
上 关于 和 明有些 懂 我们 一个实 实例来 明一下。
假 在 我们有 和 两个 并且我们想将槽 从 动到 于是我们
向 发 命令
向 发 命令
当客户 向其他 发 关于哈希槽 命令 时 些 会向客户 回指向 向信
息
如果命令 处 已 存在于槽 么 个命令将 处 。
如果命令 处 未存在于槽 如 向槽 加一个新 么 个命令
处 。
机制将使得 不再创建关于槽 任何新 。
与 同时 一个 客户 以及 序 会将 中
槽 动到 。
动操作 以下两个命令执
上 命令会 回 个 槽中 对于命令所 回 个 会向
发 一条 命令 命令会将所指定 原子地 从 动到 在 动 期
两个 会处于 塞 态 以免出 争条件 。
以下为 命令 作原
执 命令 会 接到 并将序列化后 数据发 一旦
回 就将 己 从数据库中删 。
从一个外 客户 来 在某个时 上 么存在于 么存在于 但不会
同时存在于 和 。
因为 只使 号数据库 所以当 命令 于执 操作时
值总是 。
参数 存在是为了 命令成为一个 命令 从 可以作 于 以外 其
他功 。
我们对 命令做了优化 使得它即使在传 包含多个元 列 样 复杂数据时 也可以保
持 效。
不 尽 常 效 对一个 常多、并且 数据 常大 来 是会
占 大 时 可 会导 办 应 些对于响应时 有严格 应 序。
向
在之前介 向 时候 我们 了 向之外 有另一 向。
命令参
当 一个客户 期地 将 对某个槽 命令 发 另一个 时 向客
户 回 向。
另一方 当 客户 仅仅在下一个命令 中 向 另一个 时 向客户 回
向。
如 在我们上一 列举 槽 例子中 因为槽 所包含 各个 分散在 和 中 所以当
客户 在 中 找到某个 时 它应 向到 中去寻找 但是 向应 仅仅影响一次命令
查 不是 客户 次 接去查找 在 所持有 属于槽 有全 到
之前 客户 应 先 后再 。
因为 向只 对 个槽中 其中一个槽 所以 向对 成 性 损 属于可接受 围。
因为上 原因 如果我们 在查找 之后 查找 么客户 在向 发 命令 之
前 应 先发 一个 命令 否则 个 对带有 态 槽 命令 将 拒 执
。
接收到客户 命令 将为客户 一个一次性 标志 使得客户 可以执 一次 对
态 槽 命令 。
从客户 度来 向 完整 义 如下
如果客户 接收到 向 么将命令 发 对 整为 向所指定 。
先发 一个 命令 后再发 命令 。
不必更新客户 所 录 槽 映射 槽 应 仍 映射到 不是 。
一旦 对槽 工作完成 在再次收到 对槽 命令 时 就会向客户 回
向 将关于槽 命令 期地 向到 。
意 即使客户 出 早地将槽 映射到了 上 但只 个客户 不发 命令
客户 发 命令 时候就会 上 并将它 向回 。
容
失效检
以下是 失效检查 实 方
当一个 向另一个 发 命令 但是 标 未 在 定 时 内 回 命令 回复
时 么发 命令 会将 标 标 为 可 已失效 。
待 命令回复 时 为“ 时时 ” 是一个
。
次当 对其他 发 命令 时候 它 会 机地广播三个它所 信息 些
信息 其中一 就是 明 是否已 标 为 或 。
当 接收到其他 发来 信息时 它会 下 些 其他 标 为失效 。 为失效报告
。
如果 已 将某个 标 为 并且根据 所收到 失效报告显式 中 大 分其他
主 也 为 个 入了失效 态 么 会将 个失效 态标 为 。
一旦某个 标 为 关于 个 已失效 信息就会 广播到整个 所有接收到 条
信息 会将失效 标 为 。
单来 一个 将另一个 标 为失效 必 先 其他 意 并且得到大 分主 同
意才 。
容
命令参
因为 期 失效报告会 所以主 将某个 标 为 必 以最 接收到 失效报告
作为根据。
在以下两 情况中 态会
如果 标 为 是从 么当 个 新上 时 标 就会 。
保持 从 态是 有意义 因为它不处 任何槽 一个从 是否处于
态 决定了 个从 在有 时 否 提升为主 。
如果一个主 打上 标 之后 了 时时 四倍时 再加上十 之后 对
个主 槽 故 操作仍未完成 并且 个主 已 新上 么 对 个
标 。
在 二 情况中 如果故 未 利完成 并且主 新上 么 就 使 原来 主
从 免去 员介入 必 。
态检 已 分实
当 发 变化时 可 是哈希槽更新 也可 是某个 入失效 态 中 个 会
对它所 扫描 。
一旦 处 完 会 入以下两 态 其中一
不 常工作。当 中有某个 入失效 态时 不 处 任何命令 对于
个命令 回 回复。
可以 常工作 处 全 个槽 中 有一个 标 为 态。
明即使 中只有一 分哈希槽不 常使 整个 也会停 处 任何命令。
不 从出 到 标 为 态 时 仍 会 常 作 所以 在某些时候 仍
有可 只 处 对 个槽 其中一个子 命令 。
以下是 入 态 两 情况
少有一个哈希槽不可 因为 处 个槽 入了 态。
中 大 分主 入下 态。当大 分主 入 态时 也会 入
态。
二个检查是必 因为 将一个 从 态改变为 态 必 有大 分主 投
决 但是 当 中 大 分主 入失效 态时 单凭一个两个 是 有办 将一个 标 为
态 。
因 有了 二个检查条件 只 中 大 分主 入了下 态 么 就可以在不 些主
意 下 将某个 判断为 态 从 整个 停 处 命令 。
从 举
一旦某个主 入 态 如果 个主 有一个或多个从 存在 么其中一个从 会 升
为新 主 其他从 则会开始对 个新 主 复制。
新 主 已下 主 属下 所有从 中 举产 以下是 举 条件
个 是已下 主 从 。
已下 主 处 槽数 。
从 数据 为是可 也即是 主从 之 复制 接 断 时 不
时时 乘以 常 得出 。
命令参
如果一个从 了以上 所有条件 么 个从 将向 中 其他主 发 授权 它
们 是否允 己 从 升 为新 主 。
如果发 授权 从 以下属性 么主 将向从 回 授权 同
意从 升
发 授权 是一个从 并且它所属 主 处于 态。
在已下 主 所有从 中 个从 在排序中是最小 。
个从 处于 常 态 它 有 标 为 态 也 有 标 为 态。
一旦某个从 在 定 时 内得到大 分主 授权 它就会开始执 以下故 操作
数据包 告 其他 个 在是主 了。
数据包告 其他 个 是一个已升 从 。
接 所有 已下 主 处 哈希槽。
显式地向所有 广播一个 数据包 加 其他 别 个 度 不是 待定时
数据包。
所有其他 会根据新 主 对 应 更新 别地
所有 新 主 接 槽会 更新。
已下 主 所有从 会察 到 标志 并开始对新 主 复制。
如果已下 主 新回到上 态 么它会察 到 标志 并将 整为 任主
从 。
在 命周期中 如果一个带有 标 主 因为某些原因 变成了从 么 将
丢失它所带有 标 。
发布 已实 但仍 改善
在一个 中 客户 可以 任意一个 也可以向任意一个 发 信息 会对客户 所
发 信息 发。
在 前 实 中 会将接收到 信息广播 中 其他所有 在将来 实 中 可 会使
或 其他 来优化 一操作。
录 实 参
发布 已实 但仍 改善
命令参
命令参
录 实 参
命令参
关于
本文档 权归 官方所有。
关 文档 可以 时 文档 最新更新 有任何 、意 或建 可以在文档 套
坛 或 接 。
本文档是 和 中文 所有 命令文档均已
完 最 一 分主 文档 如事务、持久化、复制、 、 文 也已
完 。
文档 前描 内容以 本为准 查 可以了 本文档对 所做 更新。
你可以 址 在 本文档 也可以下 格式 或 格式
本。
命令参
关于
捐 支持本文档
对 文档更新 并及时地 大 时 和 力 如果你喜欢 个《 命令
参 》文档 可以 捐 方式 支持 对 文档 并将 个文档更好地 护下
去。
捐 地址

Redis

  • 1.
  • 3.
  • 4.
  • 5.
  • 6.
    服务器 功 概 事件 型 命令产 期发 时 事务 事务中 为什么 不支持回 放弃事务 使 操作实 乐 了 使 实 本和事务 发布与 信息 格式 模式 和模式接收同一条信息 总数 例 客户 库实 提 复制 复制功 作原 分 同
  • 7.
    只 从服务器 从服务器 关 主服务器只在有少 个从服务器 情况下 才执 写操作 信协 层 新 一 协 回复 态回复 回复 整数回复 批 回复 多条批 回复 多条批 回复中 元 多命令和 内 命令 性 协 分析器 持久化 持久化 优 优 和 我应 哪一个 快 快 作方式 只 加操作 文件 写 有多 久 如果 文件出 了 怎么办 作方式 怎么从 持久化切换到 持久化 和 之 互作 备份 数据 容 备份 取 启动 主 下 和客 下 个 定期执 任务 动发 和从服务器 故 模式 处 态 客户 实 教 介 数据共享
  • 8.
    中 主从复制 一 性保 创建并使 创建 客户 使写一个 例应 对 新分 一个更有 例应 故 加新 到 一个 引 什么是 实 功 子 协 中 客户 和服务器 分布模型 属性 握手 已实 向 在 向 容 发布 已实 但仍 改善 录 实 参 关于 捐 支持本文档
  • 9.
    删 定 一个或多个。 不存在 会 忽 。 可 本 时 复杂度 为 删 数 。 删 单个字 串 型 时 复杂度为 。 删 单个列 、 合、有序 合或哈希 型 时 复杂度为 为以上数据 构内 元 数 。 回值 删 数 。 删 单个 删 一个不存在 失 有 删 同时删 多个
  • 10.
    命令参 序列化 定 并回 序列化 值 使 命令可以将 个值反序列化为 。 序列化 成 值有以下几个 它带有 位 校 和 于检 在 反序列化之前会先检查校 和。 值 格式和 文件保持一 。 本会 在序列化值当中 如果因为 本不同 成 格式不兼容 么 会拒 对 个值 反序列化操作。 序列化 值不包括任何 存时 信息。 可 本 时 复杂度 查找 定 复杂度为 对 序列化 复杂度为 其中 是构成 对 数 则是 些对 平均大小。 如果序列化 对 是 小 字 串 么复杂度为 。 回值 如果 不存在 么 回 。 否则 回序列化之后 值。 检查 定 是否存在。 可 本
  • 11.
    命令参 时 复杂度 回值 存在回 否则 回 。 为 定 存时 当 期时 存时 为 它会 动删 。 在 中 带有 存时 为『易失 』 。 存时 可以 使 命令来删 整个 来 或 和 命令 写 意味 如果一个命令只是修改 一个带 存时 值 不是 一个新 值来代替 它 么 存时 不会 改变。 如 对一个 执 命令 对一个列 命令 或 对一个哈希 执 命令 操作 不会修改 本 存时 。 另一方 如果使 对一个 改名 么改名后 存时 和改名前一样。 命令 另一 可 是 尝 将一个带 存时 改名成另一个带 存时 时旧 以及它 存时 会 删 后旧 会改名为 因 新 存时 也和原本 一样。 使 命令可以在不删 情况下 存时 新成为一个『持久 』 。 更新 存时 可以对一个已 带有 存时 执 命令 新指定 存时 会取代旧 存时 。 期时 度 在 本中 期时 延 在 之内——也即是 就 已 期 但它 是可 在 期 之后一 之内 到 在新 本中 延 低到 之内。 之前 不同之处 在 之前 本中 修改一个带有 存时 会导 整个 删 一 为是受当时复 制 层 制 作出 在 一 制已 修复。 可 本 时 复杂度 回值 成功 回 。
  • 12.
    命令参 当 不存在或 不为 存时 时 如在低于 本 中你尝 更新 存时 回 。 期时 为 查 剩余 存时 更新 期时 模式 导 会 假 你有一 服务 打 根据 户最 个 来 品推 并且假 户停 么就 录 为了减少 品推 并且保持推 品 新 度 。 些最 录 我们 之为『导 会 』 可以 和 命令在 中实 它 当 户 一个 时候 执 以下代 如果 户停 么它 导 会 就会 当 户 新开始 时候 又会 新 录导 会 品推 。 作 和 似 于为 存时 。 不同在于 命令接受 时 参数是 时 戳 。 可 本 时 复杂度 回值 如果 存时 成功 回 。 当 不存在或 办 存时 回 。 个 将在 期
  • 13.
    命令参 查找所有 合 定模式。 匹 数据库中所有 。 匹 和 。 匹 和 。 匹 和 但不匹 。 号 开 度 常快 但在一个大 数据库中使 它仍 可 成性 如果你 从 一个数据 中查找 定 你最好 是 合 构 来代替。 可 本 时 复杂度 为数据库中 数 。 回值 合 定模式 列 。 一次 个 匹 数据库内所有 将 原子性地从当前实例传 到 标实例 指定数据库上 一旦传 成功 保 会出 在 标实例 上 当前实例上 会 删 。
  • 14.
    命令参 个命令是一个原子操作 它在执 时候会塞 两个实例 到以下任意 果发 成 功 失 到 时。 命令 内 实 是 样 它在当前实例对 定 执 命令 将它序列化 后传 到 标实例 标实例再使 对数据 反序列化 并将反序列化所得 数据 加到数据库中 当前实例就 像 标实例 客户 样 只 到 命令 回 它就会 删 己数据库上 。 参数以 为格式 指定当前实例和 标实例 最大 时 。 明操作并不一定 在 内完成 只是 数据传 时 不 个 数。 命令 在 定 时 定内完成 操作。如果在传 数据时发 或 到了 时 时 么命令会停 执 并 回一个 。 当 出 时 有以下两 可 可 存在于两个实例 可 只存在于当前实例 唯一不可 发 情况就是丢失 因 如果一个客户 执 命令 并且不幸 上 么 个客户 唯一 做 就是检查 己数据库上 是否已 地删 。 如果有其他 发 么 保 只会出 在当前实例中。 当 标实例 定数据库上 可 有和 同名 不 和 命令 有关 。 可 不 实例上 。 替换 标实例上已存在 。 可 本 时 复杂度 个命令在 实例上实 执 命令和 命令 在 标实例执 命令 查 以上 命令 文档可以 到 复杂度 明。 数据在两个实例之 传 复杂度为 。 回值 成功时 回 否则 回 应 。 例 先启动两个 实例 一个使 口 一个使 口。 后 客户 上 口 实例 一个 后将它 到 口 实例上
  • 15.
    命令参 成功后 删 使 另一个客户查 口上 实例 将当前数据库 动到 定 数据库 当中。 如果当前数据库 数据库 和 定数据库 标数据库 有 同名字 定 或 不存在于当前 数据库 么 有任何效果。 因 也可以利 一 性 将 当作 原 。 可 本 时 复杂度 回值 动成功 回 失 则 回 。 存在于当前数据库 使 数据库 为了 晰 再显式指定一次 将 动到数据库 已 使 数据库 实 到了数据库 意命令提 变成了 明 在使 数 当 不存在 时候
  • 16.
    命令参 图从数据库 动一个不存在 到数据库失 使 数据库 实 不存在 当 数据库和 标数据库有 同 时 使 数据库 使 数据库 使 数据库 并 图将 动到数据库 因为两个数据库有 同 失 数据库 变 数据库 也是 命令允 从内 察 定 对 。 它 常 在 或 了 为了 对 使 情况。 当将 作 存 序时 你也可以 命令中 信息 决定 。 命令有多个子命令 回 定 引 所储存 值 次数。 命令主 于 。 回 定 储存 值所使 内 。
  • 17.
    命令参 回 定 储存以来时 有 取也 有 写入 以 为单位。 对 可以以多 方式 字 串可以 为 一 字 串 或 字 串 位数字是为了 。 列 可以 为 或 。 是为 大小 小 列 作 。 合可以 为 或 。 是只储存数字 小 合 。 哈希 可以 为 或 。 是小哈希 。 有序 合可以 为 或 格式。 于 小 有序 合 则 于 任何大小 有序 合。 假如你做了什么 办 再使 时 如将一个只有 个元 合扩展为一个有 万个元 合 型 会 动 换成 型 。 可 本 时 复杂度 回值 和 回数字。 回 应 型。 一个字 串 只有一个引 待一 后查 时 提取 它处于 态 不再处于 字 串 方式 大 数字也 为字 串 数字 为
  • 18.
    命令参 定 存时 将个 从『易失 』 带 存时 换成『持久 』 一个不带 存时 、 不 期 。 可 本 时 复杂度 回值 当 存时 成功时 回 如果 不存在或 有 存时 回 。 为 存时 存时 个命令和 命令 作 似 但是它以 为单位 存时 不像 命令 样 以 为单位。 可 本 时 复杂度 回值 成功 回 不存在或 失 回 回值以 为单位 可以 出准 数
  • 19.
    命令参 个命令和 命令 似但它以 为单位 期 时 戳 不是像 样 以 为单位。 可 本 时 复杂度 回值 如果 存时 成功 回 。 当 不存在或 办 存时 时 回 。 查 命令 取更多信息 回 回 个命令 似于 命令 但它以 为单位 回 剩余 存时 不是像 命令 样 以 为 单位。 可 本 复杂度 回值 当 不存在时 回 。 当 存在但 有 剩余 存时 时 回 。 否则 以 为单位 回 剩余 存时 。 在 以前 当 不存在 或 有 剩余 存时 时 命令 回 。 不存在 存在 但 有 剩余 存时
  • 20.
    命令参 有剩余 存时 从当前数据库中 机回 不删 一个 。 可 本 时 复杂度 回值 当数据库不为 时 回一个 。 当数据库为 时 回 。 数据库不为 多个 查 数据库内所有 明 并不删 数据库为 删 当前数据库所有
  • 21.
    命令参 将 改名为 。 当和 同 或 不存在时 回一个 。 当 已 存在时 命令将 旧值。 可 本 时 复杂度 回值 改名成功时提 失 时候 回一个 。 存在且 不存在 不复存在 取 代之 当 不存在时 回 已存在时 会 旧 原来 值 了
  • 22.
    命令参 当且仅当 不存在时 将改名为 。 当 不存在时 回一个 。 可 本 时 复杂度 回值 修改成功时 回 。 如果 已 存在 回 。 不存在 改名成功 存在时 失 反序列化 定 序列化值 并将它和 定 关 。 参数 以 为单位为 存时 如果 为 么不 存时 。 在执 反序列化之前会先对序列化值 本和数据校 和 检查 如果 本不 同或 数据不完整 么 会拒 反序列化 并 回一个 。 如果 已 存在 并且 定了 么使 反序列化得出 值来代替 原有 值 反地 如果 已 存在 但是 有 定 么命令 回一个 。 更多信息可以参 命令。 可 本
  • 23.
    命令参 时 复杂度 查找 定复杂度为 对 反序列化 复杂度为 其中 是构成 对 数 则是 些对 平均大小。 有序 合 反序列化复杂度为 因为有序 合 次插入 复杂度为 。 如果反序列化 对 是 小 字 串 么复杂度为 。 回值 如果反序列化成功 么 回 否则 回一个 。 创建一个 作为 命令 入 将序列化数据 到另一个 上 在 有 定 情况下 再次尝 反序列化到同一个 失 定 对同一个 反序列化成功 尝 使 无效 值 反序列化 出 回或保存 定列 、 合、有序 合 中 排序 元 。 排序 以数字作为对 值 为双 度 数 后 。 一 最 单 使 方 是 和
  • 24.
    命令参 回 值从小到大排序 果。 回值从大到小排序 果。 假 列 保存了今日 开 么可以 命令对它 排序 开 列 排序 序排序 使 修 对字 串 排序 因为 命令 排序对 为数字 当 对字 串 排序时 显式地在 命令之后 加 修 址 按数字 排序 按字 排序 如果 地 了 境变 别 。
  • 25.
    命令参 使 修 制回 果 排序之后 回元 数 可以 修 制 修 接受 和 两个参数 指定 元 数 。 指定 个指定 元 之后 回多少个对 。 以下例子 回排序 果 前 个对 为 有元 。 加 数据 列 值为 指 回列 中最小 个值 可以 合使 多个修 。以下例子 回从大到小排序 前 个对 。 使 外 排序 可以使 外 数据作为权 代替 接对 值 方式来 排序。 假 在有 户数据如下 以下代 将数据 入到 中
  • 26.
    命令参 情况下 接按 中值排序 使 可以 按其他 元 来排序。 如 以下代 按 大小来排序 是一个占位 它先取出 中 值 后再 个值来查找 应 。 如在对 列 排序时 序就会先取出 值 、 、 、 后使 、
  • 27.
    命令参 、 和 值作为排序权 。 使 可以根据排序 果来取出 应 值。 如 以下代 先排序 再取出 值 合使 和 合使 和 可以 排序 果以更 方式显 出来。 如 以下代 先按 来排序 列 再取出 应 值 在 排序 果 只使 得多。 取多个外 可以同时使 多个 取多个外 值。 以下代 就按 分别 取 和 有一个 外 参数 则 就是——可以 取 排序 值。 以下代 就将 值、及其 应 和 回为 果
  • 28.
    命令参 取外 但不 排序 将一个不存在作为参数传 可以 排序操作 接 回 果 在单 使 时 什么实 处。 不 将 和 合 就可以在不排序 情况下 取多个外 当于执 一个整合 取操作 似于 数据库 关 字 。 以下代 了 如何在不引 排序 情况下 使 、 和 取多个外 将哈希 作为 或 参数 了可以将字 串 之外 哈希 也可以作为 或 参数来使 。 如 对于前 出 户信息 我们可以不将 户 名字和 别保存在 和 两个字 串 中 是 一个带有 域和 域 哈希 来保存 户 名字和 别信息
  • 29.
    命令参 之后 和 可以格式来 取哈希 中 域 值 其中 哈希 则 哈希 域 保存排序 果 情况下 操作只是 单地 回排序 果 并不 任何保存操作。 指定一个 参数 可以将排序 果保存到 定 上。 如果 指定 已存在 么原有 值将 排序 果 。 数据 排序后 果
  • 30.
    命令参 可以 将 命令执 果保存 并 为 果 存时 以 来产 一个 操作 果 存。 样就可以 免对 操作 只有当 果 期时 才 再 一次 操作。 另外 为了 实 一 你可 加 以 免多个客户 同时 存 建 也就是多个客户 同一时 操作 并保存为 果 具体参 命令。 可 本 时 复杂度 为 排序 列 或 合内 元 数 为 回 元 数 。 如果只是使 命令 取数据 有 排序 时 复杂度 。 回值 有使 参数 回列 形式 排序 果。 使 参数 回排序 果 元 数 。 以 为单位 回 定 剩余 存时 。 可 本 时 复杂度 回值 当 不存在时 回 。 当 存在但 有 剩余 存时 时 回 。 否则 以 为单位 回 剩余 存时 。 在 以前 当 不存在 或 有 剩余 存时 时 命令 回 。 不存在 存在 但 有 剩余 存时
  • 31.
    命令参 有剩余 存时 回 所储存值 型。 可 本 时 复杂度 回值 不存在 字 串 列 合 有序 哈希 字 串 列 合
  • 32.
    命令参 命令及其 关 命令、命令和 命令 于增 地 代 一 元 命令 于 代当前数据库中 数据库 。 命令 于 代 合 中 元 。 命令 于 代哈希 中 值对。 命令 于 代有序 合中 元 包括元 成员和元 分值 。 以上列出 四个命令 支持增 式 代 它们 次执 只会 回少 元 所以 些命令可以 于 产 境 不会出 像 命令、 命令带来 ——当 命令 于处 一个大 数据 库时 又或 命令 于处 一个大 合 时 它们可 会 塞服务器 数 之久。 不 增 式 代命令也不是 有 举个例子 使 命令可以 回 合 当前包含 所 有元 但是对于 增 式 代命令来 因为在对 增 式 代 中 可 会 修 改 所以增 式 代命令只 对 回 元 提供有 保 。 因为 、 、 和 四个命令 工作方式 常 似 所以 个文档会一并介 四个命令 但是 住 命令、 命令和 命令 一个参数总是一个数据库 。 命令则不 在 一个参数提供任何数据库 ——因为它 代 是当前数据库中 所有数据 库 。 命令 基本 命令是一个基于 标 代器 命令 次 之后 会向 户 回一个新 标 户在下次 代时 使 个新 标作为 命令 标参数 以 来延 之前 代 。 当 命令 标参数 为 时 服务器将开始一次新 代 当服务器向 户 回值为 标时 代已 束。 以下是一个 命令 代 例
  • 33.
    命令参 在上 个例子中 一次代使 作为 标 开始一次新 代。 二次 代使 是 一次 代时 回 标 也即是命令回复 一个元 值—— 。 从上 例可以 到 命令 回复是一个包含两个元 数 一个数 元 是 于 下一 次 代 新 标 二个数 元 则是一个数 个数 中包含了所有 代 元 。 在 二次 命令时 命令 回了 标 代已 束 整个数据 已 完整 历 了。 以 作为 标开始一次新 代 一 命令 到命令 回 标 我们 个 为一次完 整 历 。 命令 保 命令 以及其他增 式 代命令 在 完整 历 情况下可以为 户带来以下保 从完整 历 开始 到完整 历 束期 一 存在于数据 内 所有元 会 完整 历 回 意味 如果有一个 元 它从 历开始 到 历 束期 存在于 历 数据 当中 么 命令总会在某次 代中 将 个元 回 户。 因为增 式命令仅仅使 标来 录 代 态 所以 些命令带有以下 同一个元 可 会 回多次。处 复元 工作交 应 序 如 可以 将 代 回 元 仅仅 于可以安全地 复执 多次 操作上。 如果一个元 是在 代 中 加到数据 又或 是在 代 中从数据 中 删 么 个元 可 会 回 也可 不会 是未定义 。 命令 次执 回 元 数 增 式 代命令并不保 次执 回某个 定数 元 。 增 式命令 可 会 回 个元 但只 命令 回 标不是 应 序就不应 将 代 作 束。 不 命令 回 元 数 总是 合一定 则 在实 中 对于一个大数据 来 增 式 代命令 次最多可 会 回数十个元 对于一个 够小 数据 来 如果 个数据 底层 为 数据 构 于是小 合 、小哈希 和小有序 合 么增 代命令将在一次 中 回数据 中 所有元 。 最后 户可以 增 式 代命令提供 来指定 次 代 回元 最大值。
  • 34.
    命令参 增 式 代命令不保次 代所 回 元 数 但我们可以使 对命令 为 一定 度上 整。 基本上 作 就是 户告 代命令 在 次 代中应 从数据 回多少元 。 只是对增 式 代命令 一 提 但是在大多数情况下 提 是有效 。 参数 值为 。 在 代一个 够大 、 哈希 实 数据库、 合 、哈希 或 有序 合 时 如果 户 有使 么命令 回 元 数 常和 指定 一样 或 指定 数 多一些。 在 代一个 为整数 合 一个只 整数值构成 小 合 、或 为压 列 不同值构成 一个小哈希或 一个小有序 合 时 增 式 代命令 常会无 指定 值 在 一次 代就将数据 包含 所有元 回 户。 并 次 代 使 同 值。 户可以在 次 代中按 己 意改变 值 只 得将上次 代 回 标 到下次 代 就可以了。 和 命令一样 增 式 代命令也可以 提供一个 格 模式参数 命令只 回和 定模式 匹 元 一 可以 在执 增 式 代命令时 定 参数来实 。 以下是一个使 代 例 意 是 对元 模式匹 工作是在命令从数据 中取出元 之后 向客户 回元 之前 时 内 所以如果 代 数据 中只有少 元 和模式 匹 么 代命令或 会在多次执 中 不 回任何元 。 以下是 情况 一个例子
  • 35.
    命令参 如你所 以上 大分 代 不 回任何元 。 在最后一次 代 我们 将 参数 为 强制命令为本次 代扫描更多元 从 使 得命令 回 元 也变多了。 并发执 多个 代 在同一时 可以有任意多个客户 对同一数据 代 客户 次执 代 传入一个 标 并 在 代执 之后 得一个新 标 个 标就包含了 代 所有 态 因 服务器无 为 代 录任 何 态。 中 停 代 因为 代 所有 态 保存在 标 服务器无 为 代保存任何 态 所以客户 可以在中 停 一 个 代 无 对服务器 任何 。 即使有任意数 代在中 停 也不会产 任何 。 使 标 增 式 代 使 断 、 数、 出 围或 其他 常 标来执 增 式 代并不会 成服务器崩 但可 会 命令产 未定义 为。 未定义 为指 是 增 式命令对 回值所做 保 可 会不再为 。 只有两 标是合 在开始一个新 代时 标必 为 。 增 式 代命令在执 之后 回 于延 代 标。
  • 36.
    命令参 代 保 增 式代命令所使 只保 在数据 大小有 情况下 代才会停 换句 如果 代数据 大小不断地增 增 式 代命令可 也无 完成一次完整 代。 从 上可以 出 当一个数据 不断地变大时 想 个数据 中 所有元 就 做 来 多 工 作 否 束一个 代取决于 户执 代 度是否 数据 增 度更快。 可 本 时 复杂度 增 式 代命令 次执 复杂度为 对数据 一次完整 代 复杂度为 其 中 为数据 中 元 数 。 回值 命令、 命令、 命令和 命令 回一个包含两个元 回复 回复 一个元 是字 串 无 号 位整数 标 回复 二个元 是另一个 回复 个 回复包含了本次 代 元 。 命令 回 个元 是一个数据库 。 命令 回 个元 是一个 合成员。 命令 回 个元 是一个 值对 一个 值对 一个 和一个值 成。 命令 回 个元 是一个有序 合元 一个有序 合元 一个成员 和一个分值 成。
  • 37.
    字 串 如果 已存在并且是一个字 串 命令将 加到 原来 值 末尾。 如果 不存在 就 单地将 定 为 就像执 一样。 可 本 时 复杂度 平摊 回值 加 之后 中字 串 度。 对不存在 执 保 不存在 对不存在 同于 字 度 对已存在 字 串 度从 个字 增加到 个字 模式 时 序列 可以为一 列定 数据 提供一 凑 方式 常 之为时 序列。 当一个新数据到 时候 执 以下命令 后可以 以下 方式 时 序列 各 属性 出时 序列中数据 数
  • 38.
    命令参 可以 于 机。只 有 关 时 信息 我们就可以在 中使 本和 命令实 二分查找。 可以 于 或修改已存在 时 序列。 个模式 唯一 是我们只 增 时 序列 不 对时 序列 因为 前 有对字 串 修剪 命令 但是 不 怎么 个模式 储存方式 是可以 下大 。 可以 使 时 戳作为时 序列 名 样一来 可以 免单个 因为保存 大 时 序列 占 大 内存 另一方 也可以 下大 命名 。 下 是一个时 序列 例子 定字 串中 为 位 数 。 一 情况下 定 整个字 串 会 数 指定 外 或 参数 可以 数只在 定 位上 。 和 参数 和 命令 似 可以使 数值 如 最后一个位 倒数 二个位 以 推。 不存在 当成是 字 串来处 因 对一个不存在 操作 果为 。 可 本 时 复杂度 回值 为 位 数 。 字 串
  • 39.
    命令参 模式 使 实户上 次数 对于一些 定 型 常有效。 假 在我们希望 录 己 上 户 上 如 户 上 了多少天 户 上 了多少天 如 以 作为数据 从 决定 哪些 户参加 动—— 个模式可以使 和 来实 。 如 当 户在某一天上 时候 我们就使 以 户名作为 将 天所代 上 日作为 参数 并将 个 上 为 为 。 举个例子 如果今天是 上 天 户 在今天 么执 命令 如果明天 也 么执 命令 以 推。 当 总共以来 上 次数时 就使 命令 执 得出 果就 是 上 总天数。 更 实 可以参 博文 墙外 。 性 前 上 次数 例子 即使 年 占 也只是 个 户 位 也即是 个 户 字 。对于 大小 数据来 处 度就像 和 复杂度 操作一样快。 如果你 数据 常大 么可以 使 以下两 方 将一个大 分散到不同 中 作为小 来处 。使 本可以很方便地完 成 一工作。 使 和 参数 次只对所 分位 将位 工作 放到客户 并且对 果 存 。 对一个或多个保存二 制位 字 串 位元操作 并将 果保存到 上。 可以是 、 、 、 四 操作中 任意一 对一个或多个 并 并将 果保存到 。 对一个或多个 或 并将 果保存到 。 对一个或多个 异或 并将 果保存到 。 对 定 并将 果保存到 。 了 操作之外 其他操作 可以接受一个或多个 作为 入。 处 不同 度 字 串 当 处 不同 度 字 串时 个字 串所 少 分会 作 。 也 作是包含 字 串序列。
  • 40.
    命令参 可 本 时 复杂度 回值保存到 字 串 度 和 入 中最 字 串 度 。 复杂度为 当处 大型 或 大数据 时 最好将任务指 到 属 免 塞主 。 将 中储存 数字值减一。 如果 不存在 么 值会先 初始化为 后再执 操作。 如果值包含 型 或字 串 型 值不 为数字 么 回一个 。 本操作 值 制在 位 有 号数字 之内。 关于 增 减 操作 更多信息 参 命令。 可 本 时 复杂度 回值 执 命令之后 值。 字 串
  • 41.
    命令参 对存在 数字值 对不存在 值 对存在但不是数值 将所储存 值减去减 。 如果 不存在 么 值会先 初始化为 后再执 操作。 如果值包含 型 或字 串 型 值不 为数字 么 回一个 。 本操作 值 制在 位 有 号数字 之内。 关于更多 增 减 操作 更多信息 参 命令。 可 本 时 复杂度 回值 减去 之后 值。 对已存在 对不存在
  • 42.
    命令参 回 所关 字串值。 如果 不存在 么 回 值 。 假如 储存 值不是字 串 型 回一个 因为 只 于处 字 串值。 可 本 时 复杂度 回值 当 不存在时 回 否则 回 值。 如果 不是字 串 型 么 回一个 。 对不存在 或字 串 型 对不是字 串 型 对 所储存 字 串值 取指定偏 上 位 。 当 字 串值 度大 或 不存在时 回 。 可 本 字 串
  • 43.
    命令参 时 复杂度 回值 字串值指定偏 上 位 。 对不存在 或 不存在 回 对已存在 回 中字 串值 子字 串 字 串 截取 围 和 两个偏 决定 包括 和 在内 。 数偏 从字 串最后开始 数 最后一个字 倒数 二个 以 推。 保 子字 串 值域 不 实 字 串 值域来处 出 围 值域 。 在 本 叫作 。 可 本 时 复杂度 为 回 字 串 度。 复杂度最 字 串 回值 度决定 但因为从已有字 串中取出子字 串 操作 常廉价 所以对于 度不大 字 串 操作 复杂度也可 作 。 回值 截取得出 子字 串。 回 引 字 包括 不支持回 操作 数 引 从 一个到最后一个
  • 44.
    命令参 值域 围不 实字 串 分 动 将 定 值 为 并 回 旧值 。 当 存在但不是字 串 型时 回一个 。 可 本 时 复杂度 回值 回 定 旧值。 当 有旧值时 也即是 不存在时 回 。 有旧值 回 回旧值 模式 可以和 合使 实 一个有原子性 复位操作 数器 。 举例来 次当某个事件发 时 可 对一个名为 操作 常我们 在一个原子时 内同时完成 得 数器 值和将 数器值复位为 两个操作。 可以 命令 来实 一 标。 一个原子内完成 和 操作 数器 字 串
  • 45.
    命令参 将 中储存 数字值增一。 如果不存在 么 值会先 初始化为 后再执 操作。 如果值包含 型 或字 串 型 值不 为数字 么 回一个 。 本操作 值 制在 位 有 号数字 之内。 是一个 对字 串 操作 因为 有专 整数 型 所以 内储存 字 串 为 十 制 位有 号整数来执 操作。 可 本 时 复杂度 回值 执 命令之后 值。 数字值在 中以字 串 形式保存 模式 数器 数器是 原子性 增操作可实 最 模式了 它 想 当 单 当某个操作发 时 向 发 一个 命令。 如在一个 应 序中 如果想 户在一年中 天 击 么只 将 户 以及 关 日期 信息作为 并在 次 户 击 时 执 一次 增操作即可。 如 户名是 击时 是 年 月 日 么执 命令 。 可以 以下几 方式扩展 个 单 模式 可以 合使 和 来 到只在 定 存时 内 数 。 客户 可以 使 命令原子性地 取 数器 当前值并将 数器 更多信息 参 命令。 使 其他 增 减操作 如 和 户可以 执 不同 操作增加或减少 数器 值 如在 戏中 分器就可 到 些命令。 模式 器 器是 化 器 它 于 制一个操作可以 执 。 器 典型 是 制公开 次数 以下是一个 器实 例 它将 最大 数 制 在 个 地址 十个之内
  • 46.
    命令参 个实 为 个地址使 一个不同 数器 并 命令 存时 样 就会 动删 期 数器 。 意 我们使 事务打包执 命令和 命令 免引入 争条件 保 次 时 可 以 地对 数器 增操作并 存时 。 以下是另一个 器实 个 器只使 单个 数器 它 存时 为一 如果在一 内 个 数器 值大于 么 就会 。 个新 器在思 方 是 有 但它在实 方 不够严 如果我们仔 察一下 就会 发 在 和 之 存在 一个 争条件 假如客户 在执 之后 因为某些原因 如客 户 失 忘 么 个 数器就会一 存在下去 成 个 户只 次 噢 是个 个实 中 争条件 我们可以将它 化为一个 本 并放到 中 个方 仅 于 及以上 本 将 数器作为 本放到 上 我们保 了 和 两个操作 原子性 在 个 本实 不会引入 争条件 它可以 作 很好。 关于在 中 本 更多信息 参 命令。 有另一 争条件 方 就是使 列 构来代替 命令 个方 无 本支持 因 它在 以下 本也可以 得很好 字 串
  • 47.
    命令参 新 器使 了列构作为容器 于对 次数 检查 一个事务包 和 两个命令 于在 一次执 数时创建列 并 地 期时 最后 在后 数操作中 增加操作。 将 所储存 值加上增 。 如果 不存在 么 值会先 初始化为 后再执 命令。 如果值包含 型 或字 串 型 值不 为数字 么 回一个 。 本操作 值 制在 位 有 号数字 之内。 关于 增 减 操作 更多信息 参 命令。 可 本 时 复杂度 回值 加上 之后 值。 存在且是数字值 不存在时
  • 48.
    命令参 不是数字值时 为 中所储存 值加上数增 。 如果 不存在 么 会先将 值 为 再执 加 操作。 如果命令执 成功 么 值会 更新为 执 加 之后 新值 并且新值会以字 串 形式 回 。 无 是 值 是增 可以使 像 、 、 样 指数 号 来 但是 执 命令之后 值总是以同样 形式储存 也即是 它们总 是 一个数字 一个 可 小数 和一个任意位 小数 分 成 如 、 如 小数 分尾 会 如果有 会将 数改为整数 如 会 保存成 。 之外 无 加 所得 数 实 度有多 果也最多只 小 数 后十七位。 当以下任意一个条件发 时 回一个 值不是字 串 型 因为 中 数字和 数 以字 串 形式保存 所以它们 属于字 串 型 当前 值或 定 增 不 为双 度 数 可 本 时 复杂度 回值 执 命令之后 值。 值和增 不是指数 号 值和增 是指数 号 值可以是指数 号 字 串
  • 49.
    命令参 但执 之后格式会 改成指数 号 可以对整数 型执 后 会 值小数 分可以是 但 会将无 忽 掉 有 将 变为整数 回所有 一个或多个 定 值。 如果 定 有某个 不存在 么 个 回 值 。因 命令 不失 。 可 本 时 复杂度 为 定 数 。 回值 一个包含所有 定 值 列 。 不存在 回
  • 50.
    命令参 同时 一个或多个 对。 如果某个定 已 存在 么 会 新值 原来 旧值 如果 不是你所希望 效果 使 命令 它只会在所有 定 不存在 情况下 操作。 是一个原子性 操作 所有 定 会在同一时 内 某些 定 更新 另一 些 定 有改变 情况 不可 发 。 可 本 时 复杂度 为 数 。 回值 总是 回 因为 不可 失 旧值例子 同时 一个或多个 对 当且仅当所有 定 不存在。 即使只有一个 定 已存在 也会拒 执 所有 定 操作。 是原子性 因 它可以 作 多个不同 不同字 唯一性 对 所有字 么全 么全不 。 可 本 时 复杂度 为 数 。 回值 当所有 成功 回 。 如果所有 定 失 少有一个 已 存在 么 回 。 字 串
  • 51.
    命令参 对不存在 定 当中有已存在 已 存在操作失 因为 是原子性操作 有 也 有 修改 个命令和 命令 似 但它以 为单位 存时 不是像 命令 样 以 为单位。 可 本 时 复杂度 回值 成功时 回 。 将字 串值 关 到 。 如果 已 持有其他值 就 写旧值 无 型。 对于某个原本带有 存时 来 当 命令成功在 个 上执 时 个 原有 将 。 可 参数
  • 52.
    命令参 从 本开始 命令为可以 一 列参数来修改 期时 为 。 效果 同于 。 期时 为 。 效果 同于 。 只在 不存在时 才对 操作。 效果 同于 。 只在 已 存在时 才对 操作。 因为 命令可以 参数来实 和 、 和 三个命令 效果 所以将来 本可 会废弃并最 、 和 三个命令。 可 本 时 复杂度 回值 在 本以前 命令总是 回 。 从 本开始 在 操作成功完成时 才 回 。 如果 了 或 但因为条件 到 成 操作未执 么命令 回 批 回复 。 对不存在 对已存在 使 使 字 串
  • 53.
    命令参 使 不存在 成功 已 存在失 持原值不变 使 因为 不存在 失 先 一个值 新值成功 或 可以和 或 合使
  • 54.
    命令参 和 可以同时出 但后出 会 前 出 是 参数 值 是 参数 值 使 模式 命令 是一 在 中实 单方 。 客户 执 以上 命令 如果服务器 回 么 个客户 得 。 如果服务器 回 么客户 取 失 可以在 后再 。 期时 到 之后 将 动 放。 可以 以下修改 个 实 更健壮 不使 固定 字 串作为 值 是 一个不可 机字 串 作为口 令串 。 不使 命令来 放 是发 一个 本 个 本只在客户 传入 值和 口令串 匹 时 才对 删 。 两个改动可以 持有 期 客户 删 有 情况出 。 以下是一个 单 本 例 个 本可以 命令来 。 字 串
  • 55.
    命令参 对 所储存 字串值 或 指定偏 上 位 。 位 或 取决于 参数 可以是 也可以是 。 当 不存在时 动 成一个新 字 串值。 字 串会 伸展 以 保它可以将 保存在指定 偏 上。当字 串值 伸展时 位 以 填充。 参数必 大于或 于 小于 映射 制在 之内 。 对使 大 操作来 内存分 可 成 服务器 塞。具体参 命令 告 分。 可 本 时 复杂度 回值 指定偏 原来储存 位。 初始化为 将值 关 到 并将 存时 为 以 为单位 。 如果 已 存在 命令将 写旧值。 个命令 似于以下两个命令 存时 不同之处是 是一个原子性 操作 关 值和 存时 两个动作会在同一时 内完成 命令在 作 存时 常实 。 可 本 时 复杂度 回值 成功时 回 。 当 参数不合 时 回一个 。
  • 56.
    命令参 在 不存在时 值 剩余 存时 已存在时 旧值 将 值 为 当且仅当 不存在。 定 已 存在 则 不做任何动作。 是『 』 如果不存在 则 写。 可 本 时 复杂度 回值 成功 回 。 失 回 。 不存在 成功 尝 失 有 字 串
  • 57.
    命令参 参数 写 定所储存 字 串值 从偏 开始。 不存在 当作 字 串处 。 命令会 保字 串 够 以便将 在指定 偏 上 如果 定 原来储存 字 串 度 偏 小 如字 串只有 个字 但你 是 么原字 和偏 之 将 字 来填充。 意你 使 最大偏 是 因为 字 串 大小 制在 兆 以内。如果你 使 更大 你可以使 多个 。 当 成一个很 字 串时 分 内存 操作有时候可 会 成服务器 塞 。在 年 上 偏 为 内存分 偏 为 内存分 偏 内存分 偏 为 内存分 。 意 次内存分 成 功之后 再对同一个 操作 无 再 新内存。 可 本 时 复杂度 对小 字 串 平摊复杂度 。 关于什么字 串是 小 参 命令 否则为 为 参数 度。 回值 修改之后 字 串 度。 对 字 串 对 字 串 不存在 对不存在 使 处 填充 模式 因为有了 和 命令 你可以将 字 串 作具有 机 时 性数 在很多 实 例中 是 常快 且 效 储存方式 具体 参 命令 『模式 时 序列』
  • 58.
    命令参 分。 回 所储存 字串值 度。 当 储存 不是字 串值时 回一个 。 可 本 复杂度 回值 字 串值 度。 当 不存在时 回 。 取字 串 度 不存在 度为 字 串
  • 59.
    哈希 删 哈希 中一个或多个指定域 不存在 域将 忽 。 在 以下 本 次只 删 单个域 如果你 在一个原子时 内删 多个 域 将命令包含在 块内。 可 本 时 复杂度 为 删 域 数 。 回值 成功 域 数 不包括 忽 域。 数据 删 单个域 删 不存在 域 删 多个域
  • 60.
    命令参 查 哈希 中定域 是否存在。 可 本 时 复杂度 回值 如果哈希 含有 定域 回 。 如果哈希 不含有 定域 或 不存在 回 。 回哈希 中 定域 值。 可 本 时 复杂度 回值 定域 值。 当 定域不存在或是 定 不存在时 回 。 域存在 域不存在 哈希
  • 61.
    命令参 回哈希 中 所有域和值。 在 回值 个域名 之后是域 值 所以 回值 度是哈希 大小 两倍。 可 本 时 复杂度 为哈希 大小。 回值 以列 形式 回哈希 域和域 值。 不存在 回 列 。 域 值 为哈希 中 域 值加上增 。 增 也可以为 数 当于对 定域 减 操作。 如果 不存在 一个新 哈希 创建并执 命令。 如果域 不存在 么在执 命令前 域 值 初始化为 。 对一个储存字 串值 域 执 命令将 成一个 。 本操作 值 制在 位 有 号数字 之内。 可 本 时 复杂度 回值 执 命令之后 哈希 中域 值。 为 数 对 域
  • 62.
    命令参 为 数 尝 对字串值 域执 命令 定一个字 串值 命令执 失 原值不变 为哈希 中 域 加上 数增 。 如果哈希 中 有域 么 会先将域 值 为 后再执 加 操作。 如果 不存在 么 会先创建一个哈希 再创建域 最后再执 加 操作。 当以下任意一个条件发 时 回一个 域 值不是字 串 型 因为 中 数字和 数 以字 串 形式保存 所以它们 属 于字 串 型 域 当前 值或 定 增 不 为双 度 数 命令 功 和 命令 似 查 命令 取更多 关信息。 可 本 时 复杂度 回值 执 加 操作之后 域 值。 哈希
  • 63.
    命令参 值和增 是普 小数 值和增是指数 号 对不存在 执 对不存在 域 新增 域 回哈希 中 所有域。 可 本 时 复杂度 为哈希 大小。 回值 一个包含哈希 中所有域 。 当 不存在时 回一个 。 哈希
  • 64.
    命令参 哈希 不存在 回哈希 中域数 。 时 复杂度 回值 哈希 中域 数 。 当 不存在时 回 。 回哈希 中 一个或多个 定域 值。 如果 定 域不存在于哈希 么 回一个 值。 因为不存在 当作一个 哈希 来处 所以对一个不存在 操作将 回一个只 带有 值 。 可 本 哈希
  • 65.
    命令参 时 复杂度 为定域 数 。 回值 一个包含多个 定域 关 值 值 排列 序和 定域参数 序一样。 一次 多个域 回值 序和传入参数 序一样 不存在 域 回 值 同时将多个 域 值 对 到哈希 中。 命令会 哈希 中已存在 域。 如果 不存在 一个 哈希 创建并执 操作。 可 本 时 复杂度 为 对 数 。 回值 如果命令执 成功 回 。 当 不是哈希 型时 回一个 。 将哈希 中 域 值 为 。 如果 不存在 一个新 哈希 创建并 操作。 如果域 已 存在于哈希 中 旧值将 。 可 本 时 复杂度 回值 如果 是哈希 中 一个新建域 并且值 成功 回 。 如果哈希 中域 已 存在且旧值已 新值 回 。
  • 66.
    命令参 一个新域 一个旧域 将哈希 中 域值 为 当且仅当域 不存在。 域 已 存在 操作无效。 如果 不存在 一个新哈希 创建并执 命令。 可 本 时 复杂度 回值 成功 回 。 如果 定域已 存在且 有操作 执 回 。 操作无效 域 已存在 回哈希 中所有域 值。 可 本 时 复杂度 为哈希 大小。 回值 一个包含哈希 中所有值 。 当 不存在时 回一个 。 哈希 哈希 不存在 哈希
  • 67.
  • 68.
  • 69.
    列 是列 塞式 弹出原。 它是 命令 塞 本 当 定列 内 有任何元 可供弹出 时候 接将 命令 塞 到 待 时或发 可弹出元 为 。 当 定多个 参数时 按参数 先后 序依次检查各个列 弹出 一个 列 头元 。 塞 为 当 时 如果 定 内 少有一个 列 么弹出 到 一个 列 头元 并 和 弹出元 所属 列 名字一 成 果 回 。 当存在多个 定 时 按 定 参数排列 先后 序 依次检查各个列 。 假 在有 、 和 三个列 其中 不存在 和 持有 列 。 以下命令 保 回 元 来 因为它是按 查找 查找 查找 样 序 一个找到 列 。 保 删 为 列 增加一个值 为 列 增加一个值 列 为 接 列 一个元 弹出 弹出元 所属 列 弹出元 所属 值 塞 为 如果所有 定 不存在或包含 列 么 命令将 塞 接 到 待 时 或有另一个客户 对 定 任意一个执 或 命令为 。 时参数 接受一个以 为单位 数字作为值。 时参数 为 塞时 可以无 期延 。
  • 70.
    命令参 保两个 不存在 因为 一开始不存在所以操作会 塞 到另一客户 对 或 列 是 弹出 值 待 数 待 时 情况 待 数 同 多个客户 同时 塞 同 可以 多个客户 同时 塞。 不同 客户 放 一个 列中 按『先 塞先服务』 序为 执 命令。 在 事务中 可以 于 批 地发 多个命令并 入多个回复 但把它 在 块当中 有意义。因为 整个服务器 塞以保 块执 时 原子性 为 了其他客户 执 或 命令。 因 一个 包 在 块内 命令 为 得就像 一样 对 列 回 对 列 弹出列 元 不 任何 塞操作。 对 列 操作 不 塞 即 回 对 列 操作 列 不 塞 即 回 列
  • 71.
    命令参 可 本 时 复杂度 回值 如果列为 回一个 。 否则 回一个含有两个元 列 一个元 是 弹出元 所属 二个元 是 弹出元 值。 模式 事件提 有时候 为了 待一个新元 到 数据中 使 方式对数据 探查。 另一 更好 方式是 使 提供 塞原 在新元 到 时 即 处 新元 到 时 就 一 塞住 免 占 。 对于 我们似乎 一个 塞 命令 但实 上 使 或 就 很好地 决 个 。 使 元 客户 可以执 似以下 代 加元 客户 则执 以下代 是列 塞式 弹出原 。 它是 命令 塞 本 当 定列 内 有任何元 可供弹出 时候 接将 命令 塞 到 待 时或发 可弹出元 为 。 当 定多个 参数时 按参数 先后 序依次检查各个列 弹出 一个 列 尾 元 。 关于 塞操作 更多信息 查 命令 了弹出元 位 和 不同之外 其他 一 。 可 本 时 复杂度 回值 假如在指定时 内 有任何元 弹出 则 回一个 和 待时 。 反之 回一个含有两个元 列 一个元 是 弹出元 所属 二个元 是 弹出元 值。
  • 72.
    命令参 弹出元 弹出元 值 是 塞本 当 定列 不为 时 和 一样。 当列 为 时 命令将 塞 接 到 待 时 或有另一个客户 对 执 或 命令为 。 时参数 接受一个以 为单位 数字作为值。 时参数 为 塞时 可以无 期延 。 更多 关信息 参 命令。 可 本 时 复杂度 回值 假如在指定时 内 有任何元 弹出 则 回一个 和 待时 。 反之 回一个含有两个元 列 一个元 是 弹出元 值 二个元 是 待时 。 列 弹出元 值 待时 列 列
  • 73.
    命令参 模式 安全 列 参命令 『安全 列』模式。 模式 循 列 参 命令 『循 列 』模式。 回列 中 下标为 元 。 下标 参数 和 以 为底 也就是 以 列 一个元 以 列 二个元 以 推。 你也可以使 数下标 以 列 最后一个元 列 倒数 二个元 以 推。 如果 不是列 型 回一个 。 可 本 时 复杂度 为到 下标 中 元 数 。 因 对列 头元 和尾元 执 命令 复杂度为 。 回值 列 中下标为 元 。 如果 参数 值不在列 区 围内 回 。 不在 区 围内 将值 插入到列 当中 位于值 之前或之后。 当 不存在于列 时 不执 任何操作。
  • 74.
    命令参 当 不存在时 为列 不执 任何操作。 如果 不是列 型 回一个 。 可 本 时 复杂度 为寻找 中 元 数 。 回值 如果命令执 成功 回插入操作完成之后 列 度。 如果 有找到 回 。 如果 不存在或为 列 回 。 对一个 列 插入 查找一个不存在 失 对一个 列 执 命令 失 回列 度。 如果 不存在 则 为一个 列 回 如果 不是列 型 回一个 。 可 本 时 复杂度 回值 列 度。 列
  • 75.
    命令参 列 列 并 回列 头元。 可 本 时 复杂度 回值 列 头元 。 当 不存在时 回 。 头元 将一个或多个值 插入到列 头 如果有多个 值 么各个 值按从左到右 序依次插入到 头 如 对 列 执 命令 列 值将是 同于原子性地执 、 和 三个命令。 如果 不存在 一个 列 会 创建并执 操作。
  • 76.
    命令参 当 存在但不是列 型时回一个 。 在 本以前 命令 只接受单个 值。 可 本 时 复杂度 回值 执 命令后 列 度。 加入单个元 加入 复元 列 允 复元 加入多个元 将值 插入到列 头 当且仅当 存在并且是一个列 。 和 命令 反 当 不存在时 命令什么也不做。 可 本 时 复杂度 回值 命令执 之后 度。 对 列 执 是一个 列 尝 失 因为列 为 列
  • 77.
    命令参 对 列 执 先创建一个有一个元 列 次 执 成功 回列 中指定区 内 元 区 以偏 和 指定。 下标 参数 和 以 为底 也就是 以 列 一个元 以 列 二个元 以 推。 你也可以使 数下标 以 列 最后一个元 列 倒数 二个元 以 推。 意 命令和 区 函数 区别 假如你有一个包含一 个元 列 对 列 执 果是一个包含 个元 列 明 下标也在 命令 取值 围之内 区 和某些 区 函数可 不一 如 、 和 函数。 出 围 下标 出 围 下标值不会引 。 如果 下标 列 最大下标 减去 大 么 回一个 列 。 如果 下标 下标 大 将 值 为 。 可 本 时 复杂度 为偏 为指定区 内元 数 。 回值 一个列 包含指定区 内 元 。
  • 78.
    命令参 根据参数 值 列中与参数 元 。 值可以是以下几 从 头开始向 尾搜 与 元 数 为 。 从 尾开始向 头搜 与 元 数 为 对值。 中所有与 值。 可 本 时 复杂度 为列 度。 回值 元 数 。 因为不存在 作 所以当 不存在时 命令总是 回 。 先创建一个 内容排列是 查 所有元 从 头到 尾 最先发 两个 两个元 剩 个元 从 尾到 头 一个 剩下两个元 列
  • 79.
    命令参 中所有 两个 将列 下标为 元值 为 。 当 参数 出 围 或对一个 列 不存在 时 回一个 。 关于列 下标 更多信息 参 命令。 可 本 时 复杂度 对头元 或尾元 操作 复杂度为 。 其他情况下 为 为列 度。 回值 操作成功 回 否则 回 信息。 对 列 不存在 对 列 出 围 列 度为
  • 80.
    命令参 对一个列 修剪 就是列 只保 指定区 内 元 不在指定区 之内 元 将 删 。 举个例子 执 命令 只保 列 前三个元 其余元 全 删 。 下标 参数 和 以 为底 也就是 以 列 一个元 以 列 二个元 以 推。 你也可以使 数下标 以 列 最后一个元 列 倒数 二个元 以 推。 当 不是列 型时 回一个 。 命令 常和 命令或 命令 合使 举个例子 个例子模拟了一个日志 序 次将最新日志 放到 列 中 并且只保 最新 。 意当 样使 命令时 时 复杂度是 因为平均情况下 次只有一个元 。 意 命令和 区 函数 区别 假如你有一个包含一 个元 列 对 列 执 果是一个包含 个元 列 明 下标也在 命令 取值 围之内 区 和某些 区 函数可 不一 如 、 和 函数。 出 围 下标 出 围 下标值不会引 。 如果 下标 列 最大下标 减去 大 或 回 一个 列 因为 已 将整个列 。 如果 下标 下标 大 将 值 为 。 可 本 时 复杂度 为 元 数 。 回值 命令执 成功时 回 。 情况 常 情况 和 在列 引 围之内 是一个包含 个字 串 列 删 列 引为 元 列
  • 81.
    命令参 删 了 情况 列最大下标 大 保 列 引 引 上 元 只有 引 上 元 删 了 其他元 在 情况 和 列 最大下标 大 并且 列 情况 和 列 最大下标 大 并且 新建 一个新列 执 同样 并 回列 尾元 。 可 本 时 复杂度 回值
  • 82.
    命令参 列 尾元 。 当不存在时 回 。 回 弹出 元 列 剩下 元 命令 在一个原子时 内 执 以下两个动作 将列 中 最后一个元 尾元 弹出 并 回 客户 。 将 弹出 元 插入到列 作为 列 头元 。 举个例子 你有两个列 和 列 有元 列 有元 执 之后 列 包含元 列 包含元 并且元 会 回 客户 。 如果 不存在 值 回 并且不执 其他动作。 如果 和 同 则列 中 尾元 动到 头 并 回 元 可以把 情况 作列 旋 操作。 可 本 时 复杂度 回值 弹出 元 。 和 不同 查 所有元 执 一次 列
  • 83.
    命令参 再执 一次 实和 位 和 同 旋 到了 头 次是 旋 到了 头 模式 安全 列 列 常 作 列 于在不同 序之 有序地交换 息 。一个客户 命令将 息放入 列中 另一个客户 或 命令取出 列中 待时 最 息。 不幸 是 上 列方 是『不安全』 因为在 个 中 一个客户 可 在取出一个 息之后崩 未处 完 息也就因 丢失。 使 命令 或 它 塞 本 可以 决 个 因为它不仅 回一个 息 同时 将 个 息 加到另一个备份列 当中 如果一切 常 当一个客户 完成某个 息 处 之后 可以 命令将 个 息从备份 删 。 最后 可以 加一个客户 专 于 备份 它 动地将 一定处 时 息 新放入 列中去 处 息 客户 可 已 崩 样就不会丢失任何 息了。
  • 84.
    命令参 模式 循 列 使同 作为 命令 两个参数 客户 可以 一个接一个地 取列 元 方 式 取得列 所有元 不必像 命令 样一下子将所有列 元 从服务器传 到客户 中 两 方式 总复杂度 是 。 以上 模式 在以下 两个情况下也 常工作 有多个客户 同时对同一个列 旋 它们 取不同 元 到所有元 取 完 之后又从头开始。 有客户 在向列 尾 右 加新元 。 个模式使得我们可以很容易实 样一 有 个客户 不断地对一些元 处 且处 必 尽可 地快。一个典型 例子就是服务器 控 序 它们 在尽可 时 内 并 地检查一 保它们 可 性。 意 使 个模式 客户 是易于扩展 且安全 因为就 接收到元 客户 失 元 是保存在列 不会丢失 到下个 代来临 时候 别 客户 又可以 处 些元 了。 将一个或多个值 插入到列 尾 最右 。 如果有多个 值 么各个 值按从左到右 序依次插入到 尾 如对一个 列 执 得出 果列 为 同于执 命令 、 、 。 如果 不存在 一个 列 会 创建并执 操作。 当 存在但不是列 型时 回一个 。 在 本以前 命令 只接受单个 值。 可 本 时 复杂度 回值 执 操作后 度。 加单个元 加 复元 列 允 复元 列
  • 85.
    命令参 加多个元 将值 插入到列 尾当且仅当 存在并且是一个列 。 和 命令 反 当 不存在时 命令什么也不做。 可 本 时 复杂度 回值 命令执 之后 度。 不存在 对不存在 失 存在且是一个 列 先 插入一个元 在是一个列 型 操作成功
  • 86.
  • 87.
    合 将一个或多个 元 加入到合 当中 已 存在于 合 元 将 忽 。 假如 不存在 则创建一个只包含 元 作成员 合。 当 不是 合 型时 回一个 。 在 本以前 只接受单个 值。 可 本 时 复杂度 是 加 元 数 。 回值 加到 合中 新元 数 不包括 忽 元 。 加单个元 加 复元 加多个元
  • 88.
    命令参 回 合 基数合中元 数 。 可 本 时 复杂度 回值 合 基数。 当 不存在时 回 。 合 合 回一个 合 全 成员 合是所有 定 合之 差 。 不存在 为 。 可 本 时 复杂度 是所有 定 合 成员数 之和。 回值 交 成员 列 。 合
  • 89.
    命令参 个命令 作 和似 但它将 果保存到 合 不是 单地 回 果 。 如果 合已 存在 则将其 。 可以是 本 。 可 本 时 复杂度 是所有 定 合 成员数 之和。 回值 果 中 元 数 。 回一个 合 全 成员 合是所有 定 合 交 。 不存在 为 。 当 定 合当中有一个 时 果也为 根据 合 定律 。 可 本 时 复杂度 为 定 合当中基数最小 合 为 定 合 个数。 回值 交 成员 列 。
  • 90.
    命令参 个命令 似于 命令但它将 果保存到 合 不是 单地 回 果 。 如果 合已 存在 则将其 。 可以是 本 。 可 本 时 复杂度 为 定 合当中基数最小 合 为 定 合 个数。 回值 果 中 成员数 。 判断 元 是否 合 成员。 可 本 时 复杂度 回值 如果 元 是 合 成员 回 。 如果 元 不是 合 成员 或 不存在 回 。 合
  • 91.
    命令参 回 合 中所有成员。 不存在 为 合。 可 本 时 复杂度 为 合 基数。 回值 合中 所有成员。 不存在或 合为 合 将 元 从 合 动到 合。 是原子性操作。 如果 合不存在或不包含指定 元 则 命令不执 任何操作 仅 回 。否则 元 从 合中 并 加到 合中去。 当 合已 包含 元 时 命令只是 单地将 合中 元 删 。 当 或 不是 合 型时 回一个 。 可 本 时 复杂度 回值 如果 元 成功 回 。 如果 元 不是 合 成员 并且 有任何操作对 合执 么 回 。
  • 92.
    命令参 并 回 合中一个 机元 。 如果只想 取一个 机元 但不想 元 从 合中 可以使 命令。 可 本 时 复杂度 回值 机元 。 当 不存在或 是 时 回 。 如果命令执 时 只提供了 参数 么 回 合中 一个 机元 。 合
  • 93.
    命令参 从 本开始 命令接受可参数 如果 为 数 且小于 合基数 么命令 回一个包含 个元 数 数 中 元 各 不 同。如果 大于 于 合基数 么 回整个 合。 如果 为 数 么命令 回一个数 数 中 元 可 会 复出 多次 数 度为 对值。 操作和 似 但 将 机元 从 合中 并 回 则仅仅 回 机元 不对 合 任何改动。 可 本 时 复杂度 只提供 参数时为 。 如果提供了 参数 么为 为 回数 元 个数。 回值 只提供 参数时 回一个元 如果 合为 回 。 如果提供了 参数 么 回一个数 如果 合为 回 数 。 加元 只 定 参数 回一个 机元 定 为 参数 回 个 机元 个 机元 不 同 定 为 参数 回 个 机元 元 可 会 复出 多次 如果 是整数 且大于 于 合基数 么 回整个 合
  • 94.
    命令参 如果 是 数且 对值大于 合 基数 么 回 数 度为 对值 并不会修改 合内容 合为 时 回 或 数 合 中 一个或多个 元 不存在 元 会 忽 。 当 不是 合 型 回一个 。 在 本以前 只接受单个 值。 可 本 时 复杂度 为 定 元 数 。 回值 成功 元 数 不包括 忽 元 。 数据 合
  • 95.
    命令参 单个元 不存在元 多个元 回一个 合 全成员 合是所有 定 合 并 。 不存在 为 。 可 本 时 复杂度 是所有 定 合 成员数 之和。 回值 并 成员 列 。 个命令 似于 命令 但它将 果保存到 合 不是 单地 回 果 。 如果 已 存在 则将其 。 可以是 本 。 可 本
  • 96.
    命令参 时 复杂度 是所有定 合 成员数 之和。 回值 果 中 元 数 。 信息 参 命令。 合
  • 97.
    有序 合 将一个或多个 元及其 值加入到有序 当中。 如果某个 已 是有序 成员 么更新 个 值 并 新插入 个 元 来保 在 位 上。 值可以是整数值或双 度 数。 如果 不存在 则创建一个 有序 并执 操作。 当 存在但不是有序 型时 回一个 。 对有序 更多介 参 。 在 本以前 次只 加一个元 。 可 本 时 复杂度 是有序 基数 为成功 加 新成员 数 。 回值 成功 加 新成员 数 不包括 些 更新 、已 存在 成员。 加单个元 加多个元
  • 98.
    命令参 加已存在元 且 值不变 有改变 加已存在元但是改变 值 元 值 改变 回有序 基数。 可 本 时 复杂度 回值 当 存在且是有序 型时 回有序 基数。 当 不存在时 回 。 加一个成员 再 加一个成员 对不存在 操作 有序 合
  • 99.
    命令参 回有序 中 值在和 之 包括 值 于 或 成员 数 。 关于参数 和 使 方 参 命令。 可 本 时 复杂度 为有序 基数 为值在 和 之 元 数 。 回值 值在 和 之 成员 数 。 数据 在 之 人数 在 之 人数 为有序 成员 值加上增 。 可以 传 一个 数值 减去 应 值 如 就是 值减去 。 当 不存在 或 不是 成员时 同于 。 当 不是有序 型时 回一个 。 值可以是整数值或双 度 数。 可 本 时 复杂度 回值 成员 新 值 以字 串形式 。 加 啦
  • 100.
    命令参 回有序 中 指定区内 成员。 其中成员 位 按 值 增 从小到大 来排序。 具有 同 值 成员按字典序 来排列。 如果你 成员按 值 减 从大到小 来排列 使 命令。 下标参数 和 以 为底 也就是 以 有序 一个成员 以 有序 二个成 员 以 推。 你也可以使 数下标 以 最后一个成员 倒数 二个成员 以 推。 出 围 下标并不会引 。 如 当 值 有序 最大下标 大 或是 时 命令只是 单地 回一个 列 。 另一方 假如 参数 值 有序 最大下标 大 么 将 当作最大下标来处 。 可以 使 来 成员和它 值一并 回 回列 以 格式 。 客户 库可 会 回一些更复杂 数据 型 如数 、元 。 可 本 时 复杂度 为有序 基数 为 果 基数。 回值 指定区 内 带有 值 可 有序 成员 列 。 显 整个有序 成员 显 有序 下标区 成员 下标 出最大下标时 情况 有序 合
  • 101.
    命令参 当 定区 不存在于有序时 情况 回有序 中 所有 值介于 和 之 包括 于 或 成员。有序 成员按 值 增 从小到大 次序排列。 具有 同 值 成员按字典序 来排列 属性是有序 提供 不 外 。 可 参数指定 回 果 数 及区 就像 中 意当 很大时 定位 操作可 历整个有序 最坏复杂度为 时 。 可 参数决定 果 是单单 回有序 成员 是将有序 成员及其 值一 回。 本 可 。 区 及无 和 可以是 和 样一来 你就可以在不 有序 最低和最 值 情况下 使 命令。 情况下 区 取值使 区 小于 于或大于 于 你也可以 参数前增加 号来使 可 开区 小于或大于 。 举个例子 回所有 合条件 成员 则 回所有 合条件 成员。 可 本 时 复杂度 为有序 基数 为 果 基数。 回值 指定区 内 带有 值 可 有序 成员 列 。 数据 显 整个有序 显 整个有序 及成员 值
  • 102.
    命令参 显 工 所有成员 显工 大于 小于 于 成员 回有序 中成员 排名。其中有序 成员按 值 增 从小到大 序排列。 排名以 为底 也就是 值最小 成员排名为 。 使 命令可以 得成员按 值 减 从大到小 排列 排名。 可 本 时 复杂度 回值 如果 是有序 成员 回 排名。 如果 不是有序 成员 回 。 显 所有成员及其 值 显 排名 二 有序 中 一个或多个成员 不存在 成员将 忽 。 当 存在但不是有序 型时 回一个 。 在 本以前 次只 删 一个元 。 有序 合
  • 103.
    命令参 可 本 时 复杂度为有序 基数 为 成功 成员 数 。 回值 成功 成员 数 不包括 忽 成员。 数据 单个元 多个元 不存在元 有序 中 指定排名 区 内 所有成员。 区 分别以下标参数 和 指出 包含 和 在内。 下标参数 和 以 为底 也就是 以 有序 一个成员 以 有序 二个成 员 以 推。 你也可以使 数下标 以 最后一个成员 倒数 二个成员 以 推。
  • 104.
    命令参 可 本 时 复杂度为有序 基数 为 成员 数 。 回值 成员 数 。 下标 区 内 成员 有序 只剩下一个成员 有序 中 所有 值介于 和 之 包括 于 或 成员。 本 开始 值 于 或 成员也可以不包括在内 情 参 命令。 可 本 时 复杂度 为有序 基数 为 成员 数 。 回值 成员 数 。 显 有序 内所有成员及其 值 所有 在 到 内 员工 剩下 有序 成员 回有序 中 指定区 内 成员。 有序 合
  • 105.
    命令参 其中成员 位 按值 减 从大到小 来排列。 具有 同 值 成员按字典序 序 排列。 了成员按 值 减 次序排列 一 外 命令 其他方 和 命令一样。 可 本 时 复杂度 为有序 基数 为 果 基数。 回值 指定区 内 带有 值 可 有序 成员 列 。 增排列 减排列 回有序 中 值介于 和 之 包括 于 或 所有 成员。有序 成 员按 值 减 从大到小 次序排列。 具有 同 值 成员按字典序 序 排列。 了 成 员 按 值 减 次 序 排 列 一 外 命 令 其 他 方 和 命令一样。 可 本 时 复杂度 为有序 基数 为 果 基数。 回值 指定区 内 带有 值 可 有序 成员 列 。 序排列所有成员
  • 106.
    命令参 序排列 介于 和之 成员 回有序 中成员 排名。其中有序 成员按 值 减 从大到小 排序。 排名以 为底 也就是 值最大 成员排名为 。 使 命令可以 得成员按 值 增 从小到大 排列 排名。 可 本 时 复杂度 回值 如果 是有序 成员 回 排名。 如果 不是有序 成员 回 。 数据 工 排 二 工 最 回有序 中 成员 值。 如果 元 不是有序 成员 或 不存在 回 。 可 本 时 复杂度 回值 成员 值 以字 串形式 。 数据 有序 合
  • 107.
    命令参 意 回值是字 串 定一个或多个有序 并 其中 定 数 必 以 参数指定 并将 并 果 储存到 。 情况下 果 中某个成员 值是所有 定 下 成员 值之 和 。 使 你可以为 个 定有序 分别 指定一个乘 因子 个 定 有序 所有成员 值在传 合函数 之前 先乘以 有序 因子。 如果 有指定 乘 因子 为 。 使 你可以指定并 果 合方式。 使 参数 可以将所有 合中某个成员 值之 和 作为 果 中 成员 值 使 参数 可以将所有 合中某个成员 最小 值作为 果 中 成员 值 参数 则是将所有 合中某个成员 最大 值作为 果 中 成员 值。 可 本 时 复杂度 为 定有序 基数 总和 为 果 基数。 回值 保存到 果 基数。 公司决定加 了 序员
  • 108.
    命令参 定 一个或多个有序 交其中 定 数 必 以 参数指定 并将 交 果 储存到 。 情况下 果 中某个成员 值是所有 定 下 成员 值之和 关于 和 描 参 命令。 可 本 时 复杂度 为 定 中基数最小 有序 为 定有序 数 为 果 基数。 回值 保存到 果 基数。 显 有序 内所有成员及其 值 有序 合
  • 109.
  • 110.
  • 111.
    发布 一个或多个 合 定模式。 个模式以 作为匹 如 匹 所有以 开头 、 、 匹 所有以 开头 、 如 。 可 本 时 复杂度 是 模式 数 。 回值 接收到 信息 参 下 代 明 。 和 两个模式 是执 之后 反 信息 才是接收到 一条信息 是 二条 以 推 回值 型 显 成功 模式 前已 模式 数 回值 型 信息 信息匹 模式 信息本 标 信息 内容
  • 112.
    命令参 将信息 发 到指定。 可 本 时 复杂度 其中 是 数 则是使 模式 客户 数 。 回值 接收到信息 数 。 对 有 发 信息 向有一个 发 信息 向有多个 发 信息 是一个查 与发布 态 内 命令 它 数个不同格式 子命令 成 以下将分别对 些子命令 介 。 可 本 列出当前 。 指 是 些 少有一个 模式 客户 不 在内。 参数是可 发布
  • 113.
    命令参 如果不 出 参数么列出 与发布 中 所有 。 如果 出 参数 么只列出和 定模式 匹 些 。 复杂度 为 数 对于 度 和模式来 将 模式匹 复杂度 为常 数 。 回值 一个 成 列 。 和 两个 和 两个 先 打印所有 意 即使一个 有多个 它也只 出一次 如 接下来 打印 些与模式 匹 因为 不匹 所以它 有 打印 回 定 数 模式 客户 不 在内。 复杂度 为 定 数 。 回值 一个多条批 回复 回复中包含 定 以及 数 。格式 为 数 数 如 。 回复中 排列 序和执 命令时 定 排列 序一 。不 定任何 接 个命令也是可 以 在 情况下 命令只 回一个 列 。 和 两个
  • 114.
    命令参 和 两个 打印各个 数 客户数 有任何 回 模式 数 。 意 个命令 回 不是 模式 客户 数 是客户 所有模式 数 总和。 复杂度 。 回值 一个整数回复 。 和 两个模式 一个模式 发布
  • 115.
    命令参 回当前 模式 数为 意 当有多个客户 同 模式时 同 也 在 之内 如 再新建一个客户 它也 时再 模式 数 就会得到数 为 指 客户 所有 定模式。 如果 有模式 指定 也即是 一个无参数 执 么客户 使 命令 所有模式 会 。在 情况下 命令会 回一个信息 告 客户 所有 模式。 可 本 时 复杂度 其中 是客户 已 模式 数 则是 中所有客户 模式 数 。 回值 个命令在不同 客户 中有不同 。 定 一个或多个 信息。 可 本 时 复杂度 其中 是 数 。 回值 接收到 信息 参 下 代 明 。 和 两个 是执 之后 反 信息 才是接收到 一条信息 是 二条
  • 116.
    命令参 回值 型 显成功 名字 前已 数 回值 型 信息 来 从 个 发 来 信息内容 指 客户 定 。 如果 有 指定 也即是 一个无参数 执 么客户 使 命 令 所有 会 。在 情况下 命令会 回一个信息 告 客户 所有 。 可 本 时 复杂度 是客户 已 数 。 回值 个命令在不同 客户 中有不同 。 发布
  • 117.
    事务 取 事务 放弃执事务块内 所有命令。 如果 在使 命令 某个 或某些 么取 所有 同于执 命令 。 可 本 时 复杂度 。 回值 总是 回 。 执 所有事务块内 命令。 假如某个 或某些 处于 命令 之下 且事务块中有和 个 或 些 关 命令 么 命令只在 个 或 些 有 其他命令所改动 情况下执 并 效 否则 事务 打断 。 可 本 时 复杂度 事务块内所有命令 时 复杂度 总和。 回值 事务块内所有命令 回值 按命令执 先后 序排列。 当操作 打断时 回 值 。
  • 118.
    命令参 事务 成功执 且事务成功执 且事务 打断 就在时 另一个客户 修改了 值 因为 修改 事务执 失 事务
  • 119.
    命令参 标 一个事务块 开始。 事务块内多条命令会按 先后 序 放 一个 列当中 最后 命令原子性 地执 。 可 本 时 复杂度 。 回值 总是 回 。 标 事务开始 多条命令按 序入 执 取 命令对所有 。 如果在执 命令之后 命令或 命令先 执 了 么就不 再执 了。 因为 命令会执 事务 因 命令 效果已 产 了 命令在取 事务 同时 也会取 所有对 因 两个命令执 之后 就 有必 执 了。 可 本 时 复杂度 回值 总是 。
  • 120.
    命令参 一个 或多个 如果在事务执之前 个 或 些 其他命令所改动 么事务将 打断。 可 本 时 复杂度 。 回值 总是 回 。 事务
  • 121.
    本 从 本开始 内器 可以使 命令对 本 值。 参数是一 本 序 它会 在 服务器上下文中 本不必 也不应 定 义为一个 函数。 参数 于指定 名参数 个数。 名参数 从 三个参数开始 在 本中所 到 些 些 名参数可以在 中 全局变 数 为基址 形式 以 推 。 在命令 最后 些不是 名参数 加参数 可以在 中 全局变 数 形式和 变 似 、 如 。 上 几 明可以 一个 单 例子来概括 其中 是 值 本 数字 指定了 名参数 数 和 是 名参数 分别使 和 最后 和 则是 加 参数 可以 和 它们。 在 本中 可以使 两个不同函数来执 命令 它们分别是 两个函数 唯一区别在于它们使 不同 方式处 执 命令所产 在后 『 处 』 分会 到 一 。 和 两个函数 参数可以是任何格式 好 命令 意 是 上 本 实 了将 值 为 但是 它 反了 命令 义 因为 本 使 所有 应 数 来传 就像 样
  • 122.
    命令参 使 形式来传 是有原因因为不仅仅是 个命令 所有 命令 在执 之前 会 分析 来 定命令会对哪些 操作。 因 对于 命令来 必 使 形式来传 才 保分析工作 地执 。 之外 使 形式来传 有很多其他好处 它 一个 别 就是 保 可以将你 发 到 。 对 工作 在 当中 但是 本功 成可以与 功 保持兼 容。 不 条 并不是强制性 从 使得 户有机会 单实例 代价是 样写出 本不 所兼容。 在 数据 型和 数据 型之 换 当 或 函数执 命令 时候 命令 回值会 换成 数据 构。同样 地 当 本在 内 器 时 本 回值也会 换成 协 后 将值 回 客户 。 数据 型之 换 循 样一个 原则 如果将一个 值 换成 值 之后再将 换所得 值 换回 值 么 个 换所得 值应 和最初时 值一样。 换句 型和 型之 存在 一一对应 换关 。 以下列出 是 换 则 从 换到 整数 换成 数字 回复 换成 字 串 多条 回复 换成 内可 有其他别 数据 型 态回复 换成 内 域包含了 态信息 回复 换成 内 域包含了 信息 回复和 多 条回复 换成 布尔值 从 换到 数字 换成 整数 字 串 换成 回复 数 换成 多条 回复 一个带单个 域 换成 态回复 一个带单个 域 换成 回复 布尔值 换成 回复 从 换到 有一条 外 则 条 则 有和它对应 从 换到 则 布尔值 换成 整数回复中 本
  • 123.
    命令参 以下是几个 型 换例子 在上 三个代 例 前两个 了如何将 值 换成 值 最后一个例子更复杂一些 它 了一个将 值 换成 值 后再将 值 换成 值 型 。 本 原子性 使 单个 器去 所有 本 并且 也保 本会以原子性 方式执 当某个 本 在 时候 不会有其他 本或 命令 执 。 和使 包围 事 务很 似。在其他别 客户 来 本 效果 么是不可 么就是已完成 。 另一方 也意味 执 一个 慢 本并不是一个好主意。写一个 得很快很 本并不 因为 本 开 常少 但是当你不得不使 一些 得 慢 本时 小心 因 为当 些 本在慢吞吞地 时候 其他客户 会因为服务器 忙 无 执 命令。 处 前 命令介 分 和 唯一区别在于它们对 处 不同。 当 在执 命令 中发 时 本会停 执 并 回一个 本 出信 息会 明 成 原因 和 不同 出 时并不引发 是 回一个带 域 于 带宽和 命令 你在 次执 本 时候 发 一次 本主体 。 有一个内 存机 制 因 它不会 次 新 本 不 在很多场合 付出无 带宽来传 本主体并不是最佳 择。 为了减少带宽 实 了 命令 它 作 和 一样 于对 本 值 但它接 受 一个参数不是 本 是 本 校 和 。 命令 如下
  • 124.
    命令参 如果服务器 得 定校 和所指定 本 么执 个 本 如果服务器不 得 定 校 和所指定 本 么它 回一个 提 户使 代替 以下是 例 客户 库 底层实 可以一 乐 地使 来代替 并期望 使 本已 保存在服 务器上了 只有当 发 时 才使 命令 新发 本 样就可以最大 度地 带 宽。 也 明了执 命令时 使 格式来传 名参数和 加参数 性 因为如果将参数 写 在 本中 么 次当参数改变 时候 新发 本 即使 本 主体并 有改变 反 使 格式来传 名参数和 加参数 就可以在 本主体不变 情况下 接使 命令对 本 复 免去了无 带宽 。 本 存 保 所有 本 会 久保存在 本 存当中 意味 当 命令在一个 实 例上成功执 某个 本之后 后 对 个 本 所有 命令 会成功执 。 刷新 本 存 唯一办 是显式地 命令 个命令会 所有 本 存。 常只有在云 境中 实例 改作其他客户或 别 应 序 实例时 才会执 个命令。 存可以 时 储存 不产 内存 原因是 它们 体 常小 且数 也 常少 即使 本在概念 上 似于实 一个新命令 即使在一个大 模 序 有成 上千 本 即使 些 本会 常修改 即便 如 储存 些 本 内存仍 是微不 。 事实上 户会发 不 存中 本实 上是一个好主意。 如 对于一个和 保持持久 化 接 序来 它可以 信 执 一次 本会一 保 在内存当中 因 它可以在 中使 命令 不必担心因为找不到所 本 产 候我们会 到在 中执 本 关 。 命令 提供了以下几个 命令 于对 本子 控制 所有 本 存 根据 定 本校 和 检查指定 本是否存在于 本 存 将一个 本 入 本 存 但并不 即 它 杀 当前 在 本 本
  • 125.
    命令参 函数 本 在 写本方 一个 就是 本应 写成 函数 。 也就是 本应 具有以下属性 对于同样 数据 入 定 同 参数 本执 写命令总是 同 。 本执 操作不 依 于任何 显式 数据 不 依 于 本在执 中、或 本在不同执 时期之 可 变 更 态 并且它也不 依 于任何来 备 外 入。 使 时 像 样 机命令 或 使 机数 成器 似以上 些操作 会 成 本 值无 次 得出同样 果。 为了 保 本 合上 所 属性 做了以下工作 有 时 或 其他内 态 命令 会 回一个 样 本 些 本在执 机命令之后 如 、 或 会执 可以修改数据 命令。如果 本只是执 只 操 作 么就 有 一 制。 意 机命令并不一定就指 些带 字 命令 任何带有 定 性 命令 会 为是 机命令 如 命令就是 方 一个很好 例子。 当从 本中 些 回无序元 命令时 执 命令所得 数据在 回 之前会先执 一个 字典序排序 。举个例子 因为 保存 是无 序 元 所以在 命令 客户 中 接执 回 元 是无序 但是 假如 在 本中执 么 回 总是排 序 元 。 对 伪 机数 成函数 和 修改 使得 次在 新 本 时候 总是拥有同样 值。 意味 次 本时 只 不使 么 产 机数序列总是 同 。 尽 有 么多 制 但 户 是可以 一个 单 技巧写出带 机 为 本 如果他们 。 假 在我们 写一个 本 个 本从列 中弹出 个 机数。一个 写 例子如下 个 序 次 会 成带有以下元 列
  • 126.
    命令参 上 序 次只 成同样 列 并不是太大。 么 怎样修改 个 本 使得它仍 是 一个 函数 合 但是 次 可以产 不同 机元 呢 一个 单 办 是 为 本 加一个 外 参数 个参数作为 机数 成器 值 样 只 本传入不同 本就会 成不同 列 元 。 以下是修改后 本 尽 对于同样 上 本产 列 元 是一样 因为它是一个 函数 但是只 次在执 本 时候传入不同 我们就可以得到带有不同 机元 列 。 会在复制 和写 文件时作为一个参数来传播 保 在 入 文件或 属 处 本时 仍 可以及时得到更新。 意 实 保 和 出和 架构无关 无 是 位 是 位 无 是小 是大 两个函数 出总是 同 。 全局变 保护 为了 不必 数据 境 本不允 创建全局变 。如果一个 本 在多次执 之 持某 态 它应 使 来 态保存。 企图在 本中 一个全局变 不 个变 是否存在 将引 本停 命令会 回一个 工具 或 其他 施 如打印 于实 全局保护 可以 于实 全局变 保护。 实 全局变 保护并不 不 有时候 是会不小心 为之。一旦 户在 本中 入了 全局 态 么 持久化和复制 会无 保 所以 不 使 全局变 。 免引入全局变 一个 是 将 本中 到 所有变 使 关 字定义为局 变 。 库 内 器加 了以下 库 本
  • 127.
    命令参 其中 库可以 以常快 度处 数据 之外 其他别 是 标准库。 个 实例 保 会加 上 列举 库 从 保 个 本 境 是 同 。 使 本散发 日志 在 本中 可以 函数来写 日志 其中 参数是一个字 串 参数可以是以下任意一个值 上 些 和标准 日志 对应。 对于 本散发 日志 只有 些和当前 实例所 日志 同或更 日志才会 散 发。 以下是一个日志 例 执 上 函数会产 样 信息 和最大执 时 本应 仅仅 于传 参数和对 数据 处 它不应 尝 去 外 如文件 或 执 任何 。 之外 本 有一个最大执 时 制 它 值是 一 常 作 本 常可以在几分之 几 之内完成 不了 么多时 个 制主 是为了 因 成 无 循 。 最大执 时 来控制 以 为单位 可以 文件或 使 和 命令来修改它。 当一个 本 到最大执 时 时候 它并不会 动 束 因为 必 保 本执 原子 性 中 停 本 意味 可 会 下未处 完 数据在数据 。 因 当 本 时 最大执 时 后 以下动作会 执 录一个 本 在 时
  • 128.
    命令参 开始 新接受其他客户 命令但是只有 和 两个命令会 处 对于其他命令 服务器只是 单地 回 。 可以使 命令将一个仅执 只 命令 本杀 因为只 命令并不修改数据 因 杀 个 本并不 坏数据 完整性 如果 本已 执 写命令 么唯一允 执 操作就是 它 停 服务器来 当前数据 写入 上下文 中 在 上下文中使 命令时 别小心 因为在 中 必 保 命令 执 序。 一旦在 中因为 命令 发 么 个 就再也 有办 新执 了 否则 命令 执 序就会 打乱。 为了 出 以上所 客户 库实 应 实施以下 其中一 措施 总是在 中使 命令 检查 中 到 所有命令 找到其中 命令 并使 命令检查 到 本是不是全 已 保存在 存 了。如果所 全 本 可以在 存 找到 么就可以放 心地将所有 命令改成 命令 否则 就 在 将 少 本 命令加上去。 可 本 时 复杂度 和 可以在 复杂度内找到 执 本 其余 复杂度取决于执 本本 。 根据 定 校 对 存在服务器中 本 值。 将 本 存到服务器 操作可以 命令 。 个命令 其他地方 如参数 传入方式 和 命令一样。 可 本 时 复杂度 根据 本 复杂度 定。 定一个或多个 本 校 和 回一个包含 和 列 校 和所指定 本是否已 保存在 存当中。 本
  • 129.
    命令参 关于使 对 本值 更多信息 参 命令。 可 本 时 复杂度 为 定 校 和 数 。 回值 一个列 包含 和 前 本不存在于 存 后 本已 在 存 了。 列 中 元 和 定 校 和保持对应关 如列 三个元 值就 三个 校 和所指定 本在 存中 态。 入一个 本 存 所有 本 存。 关于使 对 本 值 更多信息 参 命令。 可 本 复杂度 为 存中 本 数 。 回值 总是 回 杀 当前 在 本 当且仅当 个 本 有执 任何写操作时 个命令才 效。 个命令主 于 时 本 如一个因为 发 无 本 如 。 执 之后 当前 在 本会 杀 执 个 本 客户 会从 命令 塞当 中 出 并收到一个 作为 回值。 另一方 假如当前 在 本已 执 写操作 么即使执 也无 将它杀 因为 是 反 本 原子性执 原则 。在 情况下 唯一可 办 是使 命 令 停 整个 来停 本 并 不完整 信息 写入数据库中。 关于使 对 本 值 更多信息 参 命令。 可 本
  • 130.
    命令参 时 复杂度 回值 执成功 回 否则 回一个 。 有 本在执 时 成功杀 本时 尝 杀 一个已 执 写操作 本 失 以下是 本 杀 之后 回 执 本 客户 将 本 加到 本 存中 但并不 即执 个 本。 命令也会将 本 加到 本 存中 但是它会 即对 入 本 值。 如果 定 本已 在 存 了 么不做动作。 在 本 加入到 存之后 命令 可以使 本 校 和来 个 本。 本可以在 存中保 无 时 到执 为 。 关于使 对 本 值 更多信息 参 命令。 可 本 时 复杂度 为 本 度 以字 为单位 。 回值 定 校 和 本
  • 131.
    接 文件中 值 使命令 可以使 密 来保护 服务器。 如果开启了密 保护 在 次 接 服务器之后 就 使 命令 之后才 使 其 他 命令。 如果 命令 定 密 和 文件中 密 服务器会 回 并开始接受命令 入。 另一方 假如密 不匹 服务器将 回一个 并 客户 新 入密 。 因为 性 在很 时 内尝 常多个密 是有可 因 保使 密 够复杂和 够 以免 受密 攻击。 可 本 时 复杂度 回值 密 匹 时 回 否则 回一个 。 密 将密 为 出再 接 新密 对客户 效 未 密 操作 拒 尝 入 密 入 密 密 成功 可以 常操作命令了
  • 132.
    命令参 密 将密 为 字来 密 新 入客户 执 命令不再 密 密 操作成功 打印一个 定 信息 时使 。 可 本 时 复杂度 回值 。 使 客户 向 服务器发 一个 如果服务器 作 常 会 回一个 。 常 于 与服务器 接是否仍 效 或 于 延 值。 可 本 时 复杂度 回值 如果 接 常就 回一个 否则 回一个 接 。 客户 和服务器 接 常 客户 和服务器 接不 常 不 常或服务器未 常 接
  • 133.
    命令参 服务器关 与当前客户 接。 一旦所有待中 回复 如果有 利写入到客户 接就会 关 。 可 本 时 复杂度 回值 总是 回 但是不会 打印显 因为当时 已 出 。 切换到指定 数据库 数据库 引号 数字值指定 以 作为 始 引值。 使 号数据库。 可 本 时 复杂度 回值 使 号数据库 使 号数据库 已 切换到 号数据库 意 在 命令提 多了个 再切换到 号数据库 提 从 改变成了
  • 134.
  • 135.
    服务器 执 一个 文件写操作。 写会创建一个当前 文件 体 优化 本。 即使 执 失 也不会有任何数据丢失 因为旧 文件在 成 功之前不会 修改。 写操作只会在 有其他持久化工作在后台执 时 发 也就是 如果 子 在执 快 保存工作 么 写 操作会 定 到保 存工作完成之后再执 写。在 情况下 回值仍 是 但 会 加上一条 外 信息 明 到保存操作完成之后才 执 。在 或以 上 本 可以使 命令查 是否 定。 如果已 有别 文件 写在执 么 回一个 并且 个新 也不会 定到下次执 。 从 开始 写 发 仅仅 于手动 发 写操作。 持久化文档 文 查 更多 关 。 可 本 时 复杂度 为 加到 文件中 数据数 。 回值 反 信息。 在后台异 保存当前数据库 数据到 。 命令执 之后 即 回 后 出一个新子 原来 处 客户 子 则 将数据保存到 后 出。 客户 可以 命令查 关信息 判断 命令是否执 成功。 持久化文档 查 更多 关 。 可 本
  • 136.
    命令参 时 复杂度 为保存到数据库中 数 。 回值 反 信息。 回 命令为 接 名字。 因为新创建 接 是 有名字 对于 有名字 接 回 回复。 可 本 时 复杂度 回值 如果 接 有 名字 么 回 回复 如果有 名字 么 回名字。 新 接 有名字 名字 回名字 关 地址为 客户 。 应 和 命令 出 其中一 匹 。 因为 使 单 所以当 在执 命令 时候 不会有客户 断开 接。 如果 断开 接 客户 在执 命令 么当 个命令执 之后 在发 下一个命令 时候 它就会收 到一个 告 它 接已 关 。 可 本 时 复杂度 为已 接 客户 数 。 回值 当指定 客户 存在 且 成功关 时 回 。 服务器
  • 137.
    命令参 列出所有已 接客户 杀 当前客户接 之前 接已 关 客户 又 新建 了 接 之前 口是 在是 以人 可 格式 回所有 接到服务器 客户 信息和 数据。 可 本 时 复杂度 为 接到服务器 客户 数 。 回值 命令 回多 字 串 些字 串按以下形式 格式化 个已 接客户 对应一 以 分割 字 串 一 列 属性 值 形式 域 成 个域之 以 格分开 以下是域 含义 客户 地址和 口 套接字所使 文件描 以 已 接时 以 时 客户 下文 客户 在使 数据库 已 数 已 模式 数 在事务中 执 命令数 查 存 度 有查 在 待 查 存 剩余 有剩余 出 存 度
  • 138.
    命令参 出列 度 当出 存 有剩余 时 回复 入 到 个 列 出 存 内存占 文件描 事件 下文 最 一次执 命令 客户 可以 以下 分 成 客户 是 模式下 属 客户 是一 模式下 属 客户 是主 客户 在执 事务 客户 在 待 塞事件 客户 在 待 操作 已废弃 一个受 已 修改 命令将失 在将回复完整地写出之后 关 接 客户 未 塞 尽可 快地关 接 未 任何 文件描 事件可以是 客户 套接字 在事件 中 是可 客户 套接字 在事件 中 是可写 为了 常会对域 加和删 一个安全 客户 应 可以对 出 应 处 如忽 不存在 域 未 域 如 。 为当前 接分 一个名字。 个名字会显 在 命令 果中 于 别当前 在与服务器 接 客户 。 举个例子 在使 构建 列 时 可以根据 接 任务 为信息 产 和信息 分别 不同 名字。 名字使 字 串 型来保存 最大可以占 。另外 为了 免和 命令 出格式发 冲 名字 不允 使 格。 一个 接 名字 可以将 接 名字 为 字 串 。 使 命令可以取出 接 名字。 新创建 接 是 有名字 。 在 应 序发 接 时 为 接 名字是一 很好 手 。 服务器
  • 139.
    命令参 可 本 时 复杂度 回值成功时 回 。 新 接 有名字 名字 回名字 在客户 列 中查 名字 名字 只 格是不 必 双引号显 包围 完 命令 于取得 中 服务器 参数 在 本中 有 分参数 有办 但是在最新 本中 所有 参数 已 可以 了。 接受单个参数 作为搜 关 字 查找所有匹 参数 其中参数和值以“ 值对” 方式排列。 如执 命令 服务器就会 回所有以 开头 参数及参数 值 参数名 参数 值 参数名
  • 140.
    命令参 参数 值 如果你只是寻找 定某个参数 你当 也可以 接指定参数 名字 使 命令 可以列出 命令支持 所有参数 所有 所支持 参数 可以在 文件 中找到 不 和 使 格式和 文件所使 格式有以下两 不同 、 些在 文件中所使 储存单位 写 不可以 在 命令中 值只 数字值显式地 定。 像 样 命令是 格式是 。 在 中是 多 文字储存 但在 命令中 它只打印一 文字。 以下是 在 文件中 但是 命令 出只有一 服务器
  • 141.
    命令参 上 参数 三个值在 内最少有 个 改动 或 内最少有 个 改动 又或 内最少有 个 改动 以上三个条件 便 一个 就 发一次保存操 作。 可 本 时 复杂度 不明 回值 定 参数 值。 命令中 某些 数据 包括 命中次数 不命中次数 执 命令 次数 接服务器 次数 期 数 拒 接数 最后执 时 数器 值 可 本 时 复杂度 回值 总是 回 。 前
  • 142.
  • 143.
  • 144.
    命令参 命令对启动 服务器时所指定 文件改写 因为 命令可以对服务器 当前 修改 修改后 可 和 文件中所描 不一样 作 就是 尽可 少 修改 将服务器当前所使 录到 文 件中。 写会以 常保守 方式 原有 文件 整体 构和 会 尽可 地保 。 如果一个 已 存在于原有 文件中 么对 写会在 原本所在 位 号 上 。 如果一个 不存在于原有 文件中 并且 为 值 么 写 序不会将 个 加到 写后 文件中。 如果一个 不存在于原有 文件中 并且 为 值 么 个 将 加到 写后 文件 末尾。 未使 会 。 如 如果你在原有 文件上 了数个关于 参数 但 在你将 些 参数 一个或全 关 了 么 些不再使 参数原本所在 就会变成 。 即使启动服务器时所指定 文件已 不再存在 命令也可以 新构建并 成出一个新 文件。 另一方 如果启动服务器时 有 入 文件 么执 命令将引发一个 。 原子性 写 对 文件 写是原子性 并且是一 如果 写出 或 写期 服务器崩 么 写失 原有 文件不会 修改。如果 写成功 么 文件为 写后 新文件。 可 本 回值 一个 态值 如果 写成功则 回 失 则 回一个 。 服务器
  • 145.
    命令参 以下是执 前 入到服务器 文件中关于 其他 其他 在执 以下命令之后 处于关 态 打开 将 修改写入到 中 写后 文件中 将 改写 其他 其他 命令可以动态地 整 服务器 无 启。 你可以使 它修改 参数 或 改变 持久化 方式。 可以修改 参数可以使 命令 来列出 所有 修改 参数 会 即 效。 关于 命令 更多 息 参 命令 明。 关于如何使 命令修改 持久化方式 参 。 可 本 时 复杂度 不明 回值 当 成功时 回 否则 回一个 。
  • 146.
    命令参 回当前数据库 数 。 可本 时 复杂度 回值 当前数据库 数 。 增加一个 是一个 命令 它不应 客户 所使 。 查 命令 取更多信息。 可 本 时 复杂度 回值 当 存在时 回有关信息。 当 不存在时 回一个 。 服务器
  • 147.
    命令参 执 一个不合 内存从 崩 仅在开发时 于 模拟。 可 本 时 复杂度 不明 回值 无 整个 服务器 数据 删 所有数据库 所有 。 命令从不失 。 可 本 时 复杂度 尚未明 回值 总是 回 。 号数据库 数 切换到 号数据库 号数据库 数 所有数据库 所有 不但 号数据库 了 号数据库 以及其他所有数据库 也一样 当前数据库中 所有 。 命令从不失 。 可 本 时 复杂度
  • 148.
    命令参 回值 总是 回。 前 数 后 数 以一 易于 且易于 格式 回关于 服务器 各 信息和 数值。 定可 参数 可以 命令只 回某一 分 信息 一 服务器信息 包含以下域 服务器 本 服务器 宿主操作 架构 或 位 所使 事件处 机制 时所使 本 服务器 服务器 机标 于 和 听 口 服务器启动以来 数 服务器启动以来 天数 以分 为单位 增 时 于 已 接客户 信息 包含以下域 已 接客户 数 不包括 从属服务器 接 客户 当前 接 客户 当中 最 出列 当前 接 客户 当中 最大 入 存 在 待 塞命令 、 、 客户 数 内存信息 包含以下域 分 器分 内存总 以字 为单位 以人 可 格式 回 分 内存总 从操作 度 回 已分 内存总 俗 常 大 小 。 个值和 、 命令 出一 。 服务器
  • 149.
    命令参 内存 峰值 以字为单位 以人 可 格式 回 内存 峰值 引擎所使 内存大小 以字 为单位 和 之 在 时指定 所使 内存分 器。可以是 、 或 。 在 想情况下 值应 只 微 一 儿。 当 且两 值 差 大时 存在 内 或外 内存 。 内存 可以 值 出。 当 时 分内存 操作 换出到交换 了 在 情况下 操作可 会产 明显 延 。 当 放内存时 分 器可 会 也可 不会 将内存 操作 。 如果 放了内存 却 有将内存 操作 么 值可 和操 作 显 内存占 并不一 。 查 值可以 情况是否发 。 和 关信息 一 信息 主 从复制信息 信息 命令 信息 信息 数据库 关 信息 上 出 些值以外 参数 可以是下 两个 回所有信息 回 择 信息 当不带参数 接 命令时 使 作为 参数。 不同 本 可 对 回 一些域 了增加或删减。 因 一个健壮 客户 序在对 命令 出 分析时 应 够 不 域 并且妥善地处 丢失不 域。 可 本 时 复杂度 回值 具体 参 下 代 。
  • 150.
  • 151.
    命令参 回最 一次 成功将数据保存到上 时 以 时 戳格式 。 可 本 时 复杂度 回值 一个 时 戳。 实时打印出 服务器接收到 命令 。 可 本 时 复杂度 不明 回值 总是 回 。 以 一个打印值为例 是时 戳 中 是数据库号 是 地址和 口 是 执 命令
  • 152.
    命令参 于复制功 内 命令。 更多信息参 复制 文档。 可 本 时 复杂度 不明 回值 不明 命令执 一个同 保存操作 将当前 实例 所有数据快 以 文件 形式保存 到 。 一 来 在 产 境很少执 操作 因为它会 塞所有客户 保存数据库 任务 常 命令异 地执 。 如果 保存数据 后台子 不幸出 时 可以作为保存数据 最后 手 来使 。 参 文档 持久化 作方式 文 以 取更多 息。 可 本 时 复杂度 为 保存到数据库中 数 。 回值 保存成功时 回 。 命令执 以下操作 停 所有客户 如果有 少一个保存 在 待 执 命令 如果 打开 更新 文件 关 服务器 如果持久化 打开 命令会保 服务器 常关 不丢失任何数据。 另一方 假如只是单 地执 命令 后再执 命令 则 有 一保 ——因为在执 之后、执 之前 时 中 其他客户 可 在和服务器 时如果执 就会 成数据丢失。 和 修 服务器
  • 153.
    命令参 使 可 修可以修改 命令 。 如 执 会强制 数据库执 保存操作 即使 有 定 保存 执 会 数据库执 保存操作 即使已 定有一个或多个保存 你可以将 一 作是强制停 服务器 一个假想 命令 可 本 时 复杂度 不明 回值 执 失 时 回 。 执 成功时不 回任何信息 服务器和客户 接断开 客户 动 出。 命令 于在 时动态地修改复制 功 为。 执 命令 可以将当前服务器 变为指定服务器 从属服务器 。 如果当前服务器已 是某个主服务器 从属服务器 么执 将使当 前服务器停 对旧主服务器 同 丢弃旧数据 开始对新主服务器 同 。 另外 对一个从属服务器执 命令 将使得 个从属服务器关 复制功 并从从属服务器 变回主服务器 原来同 所得 数据 不会 丢弃。 利 『 不会丢弃同 所得数据 』 个 性 可以在主服务器失 时候 将从属服务器 作新 主服务器 从 实 无 断 。 可 本 时 复杂度 为 同 数据数 。 。 回值 总是 回 。
  • 154.
    命令参 什么是 是 来 录查执 时 日志 。 查 执 时 指 是不包括像客户 响应 、发 回复 操作 单单是执 一个查 命令所 时 。 另外 保存在内存 写 度 常快 因 你可以放心地使 它 不必担心因为开启 损害 度。 为 两个 参数 指定 可以 改写 文件或 和 命令对它们动态地 修改。 一个 是 它决定 对执 时 大于多少微 微 查 录。 如执 以下命令将 录所有查 时 大于 于 微 查 以下命令 录所有查 时 大于 微 查 另一个 是 它决定 最多 保存多少条日志 本 是一个 列 当 列大小 时 最旧 一条日志将 删 最新 一条日志加入到 以 推。 以下命令 最多保存 条日志 使 命令可以查 两个 当前值 查 查 可以使 或 命令 前 打印所有 最大 度取决于 值 则只打印指定数 日志。 最新 日志会最先 打印 为 将 成了 微 唯一性 日志标 录命令 执 时 以 时 戳格式 查 执 时 以微 为单位 执 命令 以数 形式排列 完整 命令是 服务器
  • 155.
    命令参 日志 唯一 只有在服务器 启 时候才会 样可以 免对日志 复处 如你可 会 想在 次发 新 慢查 时发 件 你 。 查 当前日志 数 使 命令 可以查 当前日志 数 。 意 个值和 区别 它们一个是当前日志 数 一个是允 录 最大日志 数 。 日志 使 命令 可以 。 可 本 时 复杂度 回值 取决于不同命令 回不同 值。 于复制功 内 命令。 更多信息 参 官 。 可 本 时 复杂度 不明
  • 156.
    命令参 回值 不明 回当前服务器时 。 可本 时 复杂度 回值 一个包含两个字 串 列 一个字 串是当前时 以 时 戳格式 二个字 串是当前 一 已 去 微 数。 服务器
  • 157.
    本文档 。 功 前仍在开发中个文档所描 内容 以及功 具体实 可 会在 未来数周内改变 敬 悉。 功 概 使得客户 可以 或模式 来接收 些以某 方式改动了 数据 事件。 以下是一些 发 事件 例子 所有修改 命令。 所有接收到 命令 。 号数据库中所有已 期 。 事件 与发布功 来 分发 因 所有支持 与发布功 客户 可以 在无 做任何修改 情况下 接使 功 。 因为 前 与发布功 取 是发 即忘 所以如果你 序 可 事 件 么 前 可 并不 合你 当 事件 客户 断 时 它会丢失所有在断 期 分发 它 事件。 未来将会支持更可 事件分发 支持可 会 与发布功 本 变得更可 来实 也可 会 在 本中对 息 与发布 听 从 实 似将事件推入到列 样 操作。 事件 型 对于 个修改数据库 操作 会发 两 不同 型 事件。 如 对 号数据库 执 命令时 将分发两条 息 当于执 以下两个 命令
  • 158.
    命令参 一个 可以接收 号数据库中所有修改事件 二个 则可以接收 号数据库中所有执 命令 。 以 为前 为 以 为前 则 为 事件 。 当 命令执 时 将接收到 执 事件 名字 在 个例子中 就是 。 事件 将接收到 执 事件 名字 在 个例子中 就是 。 因为开启 功 一些 所以在 下 功 处于关 态。 可以 修改 文件 或 接使 命令来开启或关 功 当 参数为 字 串时 功 关 。 另一方 当参数不是 字 串时 功 开启。 参数可以是以下字 任意 合 它指定了服务器 发 哪些 型 字 发 所有 以 为前 事件 所有 以 为前 、 、 型无关 命令 字 串命令 列 命令 合命令 哈希命令 有序 合命令 期事件 当有 期 删 时发 事件 当有 因为 政 删 时发 参数 别名 入 参数中 少 有一个 或 否则 不 其余 参数是什么 不会有任何 分发。 举个例子 如果只想 中和列 关 么参数就应 为 如 。 将参数 为字 串 发 所有 型 。 命令产 以下列 录了不同命令所产 不同 命令为 个 删 产 一个 。 产 两个 为来 产 一个 并为 标 产 一个 。 和 在 期时 时产 一个 。当 时 已 期 或 传入 时 为 数值时 删 并产 一个 。 在命令带有 参数时产 一个 事件。如果 指 于保存排序 果 已 存在 么 序 会发 一个 事件。
  • 159.
    命令参 以及它 所有变 、和 产 。其中 会产 。 为 个 产 一个 。 产 一个 。 、 、 和 产 。 产 。 产 。 和 产 单个 即使有多个 入元 时 也是如 。 和 产 单个 即使有多个 入元 时 也是如 。 产 。如果 弹出 元 是列 最后一个元 么 会产 一个 。 产 。如果 弹出 元 是列 最后一个元 么 会产 一个 。 产 一个 。 产 一个 。 产 一个 。如果 执 之后 列 么 会产 一个 。 和 产 一个 以及一个 。两个命令 会保 在 之前分发。如果从 弹出元 之后 弹出 列 么 会产 一个 。 、 和 只产 一个 。 产 一个 。 产 一个 。 产 一个 。如果执 之后 哈希 么 会产 一个 。 产 一个 即使有多个 入元 时 也是如 。 产 一个 如果执 之后 合 么 会产 一个 。 为来 产 一个 并为 标 产 一个 事件。 产 一个 事件。如果执 之后 合 么 会产 一个 。 、 和 分别产 、 和 三 。如果 于保存 果 已 存在 么 会产 一个 。 产 一个 。 对 意。 产 一个 即使有多个 入元 时 也是如 。 产 一个 即使有多个 入元 时 也是如 。如果执 之后 有序 合 么 会产 一个 。 产 一个 。 对 意。 如果 于保存 果 已 存在 么 会产 一个 。 产 一个 。 对 意。 如果 于保存 果 已 存在 么 会产 一个 。 和 分别产 和 两 。如果 于保 存 果 已 存在 么 会产 一个 。 当一个 因为 期 删 时 产 一个 。 命令产
  • 160.
    命令参 当一个 因为 政删 以回收内存时 产 一个 。 所有命令 只在 改动了之后 才会产 。 如 当 图删 不存在于 合 元 时 删 操作会执 失 因为 有 改动 所以 一操作不会发 。 如果对命令所产 有 最好 是使 以下命令 己来 一下 后 只 在其他 客户 发 命令 就可以 到产 了 期 发 时 使 以下两 方式删 期 当一个 时 序会对 个 检查 如果 已 期 么 将 删 。 底层 会在后台 地查找并删 些 期 从 处 些已 期、但是不会 到 。 当 期 以上两个 序 任意一个发 、并且将 从数据库中删 时 会产 一个 。 并不保 存时 变为 会 即 删 如果 序 有 个 期 或 带有 存 时 常多 么在 存时 变为 到 删 中 可 会有一 显 时 。 因 产 时 为 期 删 时候 不是 存时 变为 时候。
  • 161.
    事务 本文档 。 、 、和 是 事务 基 。 事务可以一次执 多个命令 并且带有以下两个 保 事务是一个单 操作 事务中 所有命令 会序列化、按 序地执 。事务在执 中 不会 其他客户 发 来 命令 所打断。 事务是一个原子操作 事务中 命令 么全 执 么全 不执 。 命令 发并执 事务中 所有命令 如果客户 在使 开启了一个事务之后 却因为断 有成功执 么事务 中 所有命令 不会 执 。 另一方 如果客户 成功在开启事务之后执 么事务中 所有命令 会 执 。 当使 方式做持久化 时候 会使 单个 命令将事务写入到 中。 如果 服务器因为某些原因 员杀 或 上某 件故 么可 只有 分事 务命令会 成功写入到 中。 如果 在 新启动时发 文件出了 样 么它会 出 并 报一个 。 使 序可以修复 一 它会 文件中不完整事务 信息 保服务 器可以 利启动。 从 本开始 可以 乐 实 操作 具体信息 参 文档 后半 分。 命令 于开启一个事务 它总是 回 。 执 之后 客户 可以 向服务器发 任意多条命令 些命令不会 即 执 是 放到一 个 列中 当 命令 时 所有 列中 命令才会 执 。 另一方 客户 可以 事务 列 并放弃执 事务。 以下是一个事务例子 它原子地增加了 和 两个 值
  • 162.
    命令参 命令 回复是一个数 数中 个元 是执 事务中 命令所产 回复。其中 回复元 先后 序和命令发 先后 序一 。 当客户 处于事务 态时 所有传入 命令 会 回一个内容为 态回复 些 入 命令将在 命令 时执 。 事务中 使 事务时可 会 上以下两 事务在执 之前 入 命令可 会出 。 如 命令可 会产 参数数 参数名 或 其他更严 如内存不 如果服务器使 了最 大内存 制 。 命令可 在 之后失 。举个例子 事务中 命令可 处 了 型 如将列 命 令 在了字 串 上 如 。 对于发 在 执 之前 客户 以前 做 是检查命令入 所得 回值 如果命令入 时 回 么入 成功 否则 就是入 失 。如果有命令在入 时失 么大 分客户 会停 并取 个事务。 不 从 开始 服务器会对命令入 失 情况 录 并在客户 命令时 拒 执 并 动放弃 个事务。 在 以前 只执 事务中 些入 成功 命令 忽 些入 失 命令。 新 处 方 式则使得在 中包含事务变得 单 因为发 事务和 取事务 回复 只 和服务器 一次 。 于 些在 命令执 之后所产 并 有对它们 别处 即使事务中有某个 某些命令 在执 时产 了 事务中 其他命令仍 会 执 。 从协 度来 个 会更容易 一些。以下例子中 命令 执 将出 尽 它 是 事务
  • 163.
    命令参 回两条批 回复 一条是二条是 。 于怎样 合 方 来 事务中 则是 客户 己决定 。 最 是 住 样一条 即使事务中有某条 某些命令执 失 了 事务 列中 其他命令仍 会 执 —— 不会停 执 事务中 命令。 以下例子展 是另一 情况 当命令在入 时产 会 即 回 客户 因为 命令 参数格式不 所以 个 命令入 失 。 为什么 不支持回 如果你有使 关 式数据库 么“ 在事务失 时不 回 是 执 余下 命令” 做 可 会 你 得有 奇怪。 以下是 做 优 命令只会因为 失 并且 些 不 在入 时发 或是命令 在了 型 上 也就是 从实 性 度来 失 命令是 成 些 应 在 开发 中 发 不应 出 在 产 境中。 因为不 对回 支持 所以 内 可以保持 单且快 。 有 为 处 事务 做 会产 意 是 在 常情况下 回 并不 决 带来 。举个例子 如果你本来想 命令将 值加上 却不小心加上了 又或 对 型 执 了 回 是 有办 处 些情况 。 于 有任何机制 免 序员 己 成 并且 常不会在 产 境中出 所以 择了更 单、更快 无回 方式来处 事务。 放弃事务 当执 命令时 事务会 放弃 事务 列会 并且客户 会从事务 态中 出 为什么 不支持回
  • 164.
    命令参 使 操作实 乐 命令可以为事务提供 为。 会 并会发 些 是否 改动 了。如果有 少一个 在 执 之 前 修改了 么整个事务 会 取 回 多条批 回复 来 事务已 失 。 举个例子 假 我们 原子性地为某个值 增 操作 假 不存在 。 先我们可 会 样做 上 个实 在只有一个客户 时候可以执 得很好。但是 当多个客户 同时对同一个 样 操作时 就会产 争条件。 举个例子 如果客户 和 取了 原来 值 如 么两个客户 会将 值 为 但 果应 是 才对。 有了 我们就可以 松地 决 了 使 上 代 如果在 执 之后 执 之前 有其他客户 修改了 值 么当 前客户 事务就会失 。 序 做 就是不断 个操作 到 有发 撞为 。 形式 作乐 它是一 常强大 机制。并且因为大多数情况下 不同 客户 会 不 同 撞 情况一 很少 所以 常并不 。 了 使得 命令 有条件地执 事务只 在所有 有 修改 前提下执 如果 个前提不 事务就不会 执 。 如果你使 了一个带 期时 么即使 个 期了 事务仍 可以 常执 关于 方 情况 个帖子 事务
  • 165.
    命令参 命令可以 多次。对 从执 之后开始 效 到 为 。 户 可以在单个 命令中 任意多个 就像 样 当 时 不 事务是否成功执 对所有 会 取 。 另外 当客户 断开 接时 客户 对 也会 取 。 使 无参数 命令可以手动取 对所有 。对于一些 改动多个 事务 有时候 序 同时对多个 加 后检查 些 当前值是否 合 序 。当值 不到 时 就可以 使 命令来取 前对 中 放弃 个事务 并 待事务 下次尝 。 使 实 可以 于创建 有内 原子操作。 举个例子 以下代 实 了原创 命令 它可以原子地弹出有序 合中分值 最小 元 序只 复执 代 到 回值不是 多条回复 即可。 本和事务 从定义上来 中 本本 就是一 事务 所以任何在事务 可以完成 事 在 本 也 完成。 并且一 来 使 本 来得更 单 并且 度更快。 因为 本功 是 才引入 事务功 则更早之前就存在了 所以 才会同时存在两 处 事务 方 。 不 我们并不打 在 时 内就 事务功 因为事务提供了一 即使不使 本 也可以 免 争条件 方 且事务本 实 并不复杂。 不 在不 将来 可 所有 户 会只使 本来实 事务也 不定。如果 发 情况 么 我们将废弃并最 事务功 。 使 实
  • 166.
  • 167.
    发布与 本文档 。 、 和三个命令实 了发布与 信息 型 在 个实 中 发 发 信息 客户 不是将信息 接发 定 接收 接收信息 客户 是将信息发 后 将信息 发 所有对 个 感兴 。 发 无 任何关于 信息 也无 是 个客户 它发 信息 它只 关 己 感兴 即可。 对发布 和 构 可以极大地提 扩展性 并得到一个更动态 拓扑 。 如 和 客户 可以使 名字作为参数来 命令 当有客户 发 信息到 些 时 会将传入 信息推 到所有 些 客户 。 在 客户 不应 发 和 之外 其他命令。其中 可以 于 更多 则可以 于 已 一个或多个 。 和 执 果会以信息 形式 回 客户 可以 分析所接收信息 一 个元 从 判断所收到 内容是一条 信息 是 或 命令 操作 果。 信息 格式 发 条信息 是一条带有三个元 多条批 回复 。 信息 一个元 标 了信息 型 当前客户 成功地 了信息 二个元 所指 。 信息 三个元 则 录了 前客户 已 总数。 当前客户 成功地 了信息 二个元 所指 。信息 三个元 录 了客户 前仍在 数 。当客户 数 为 时 客户 不再 任何 它可以像往常一样 执 任何 命令。 条信息是 某个客户 执 命令所发 信息。信息 二个 元 是信息来 三个元 则是信息 内容。 举个例子 如果客户 执 以下命令
  • 168.
    命令参 么它将收到以下回复 如果在 时 另一个客户执 以下 命令 么之前 了 客户 将收到以下信息 当 决定 所有 时 它可以执 一个无参数 命令 个命令将接到以下回复 模式 发布与 实 支持模式匹 客户 可以 一个带 号 模式 如果某 个 某些 名字和 个模式匹 么当有信息发 个 些 时候 客户 也会收到 个 些 信息。 如 执 命令 客户 将收到来 、 信息。 客户 模式 可以包含多个 格 如 、 和 。 执 命令 将 模式 其他已 模式不会 影响。 模式接收到 信息 和 接收到 信息 两 格式不太一样 发布与
  • 169.
    命令参 模式 接收到 信息型为 代 有某个客户 向某个 发 了信息 个 刚好匹 了当前客户 所 某个模式。信息 二个元 录了 匹 模式 三个元 录了 匹 名字 最后一个元 则 录了信息 实 内容。 客 户 处 和 回 值 方 式 和 客 户 处 和 方式 似 对信息 一个元 分析 客户 可以判断接收到 信息是 一个 信息 是 或 命令 回值。 和模式接收同一条信息 如果客户 多个模式匹 了同一个 或 客户 同时 了某个 、以及匹 个 某个 模式 么它可 会多次接收到同一条信息。 举个例子 如果客户 执 了以下命令 么当有信息发 到 时 客户 将收到两条信息 一条来 信息 型为 另 一条来 模式 信息 型为 。 总数 在执 、 、 和 命令时 回 果 最后一 个元 是客户 前仍在 和模式总数。 当客户 所有 和模式 也即是 个总数值下 为 时候 客户 将 出 与发布 态。 例 提供了一个使 和 写 性 多 户 天 件 个 件 很好地展 了发布与 功 。 客户 库实 提 因为所有接收到 信息 会包含一个信息来 当信息来 时 来 是某个 当信息来 模式时 来 是某个模式。 因 客户 可以 一个哈希 将 定来 和处 来 回 函数关 来。当有新信息到 时 序 就可以根据信息 来 在 复杂度内 将信息交 回 函数来处 。 和模式接收同一条信息
  • 170.
  • 171.
    复制 本文档 。 支持 单且易主从复制 功 功 可以 从服务器 成为主服务器 复制品。 以下是关于 复制功 几个 方 使 异 复制。从 开始 从服务器会以 一次 向主服务器报告复制 处 度。 一个主服务器可以有多个从服务器。 不仅主服务器可以有从服务器 从服务器也可以有 己 从服务器 多个从服务器之 可以构成一个 图 构。 复制功 不会 塞主服务器 即使有一个或多个从服务器 在 初次同 主服务器也可以 处 命令 。 复制功 也不会 塞从服务器 只 在 文件中 了 应 即使从服务器 在 初次同 服务器也可以使 旧 本 数据 来处 命令查 。 不 在从服务器删 旧 本数据 并 入新 本数据 时 内 接 会 塞。 你 可以 从服务器 它在与主服务器之 接断开时 向客户 发 一个 。 复制功 可以单 地 于数据冗余 也可以 多个从服务器处 只 命令 来提升扩展性 如 命令可以交 属 去 。 可以 复制功 来 主服务器免于执 持久化操作 只 关 主服务器 持久化功 后 从服 务器去执 持久化操作即可。 复制功 作原 无 是初次 接 是 新 接 当建 一个从服务器时 从服务器 将向主服务器发 一个 命令。 接到 命令 主服务器将开始执 并在保存操作执 期 将所有新执 写入命令 保 存到一个 冲区 。 当 执 完 后 主服务器将执 保存操作所得 文件发 从服务器 从服务器接收 个 文件 并将文件中 数据 入到内存中。 之后主服务器会以 命令协 格式 将写命令 冲区中 所有内容 发 从服务器。
  • 172.
    命令参 你可以 命令来亲 个同先 上一个 在处 命令 服务器 后 向它发 命令 一 子 你将 到 会 接收到服务器发来 大 数据 文 件 之后 会 到 所有在服务器执 写命令 会 新发 到 会 来。 即使有多个从服务器同时向主服务器发 主服务器也只 执 一次 命令 就可以处 所 有 些从服务器 同 。 从服务器可以在主从服务器之 接断开时 动 在 本之前 断 之后 从服 务器总 执 一次完整 同 操作 但是从 本开始 从服务器可以根 据主服务器 情况来 择执 完整 同 是 分 同 。 分 同 从 开始 在 接 暂性失效之后 主从服务器可以尝 执 原有 复制 不一定 执 完整 同 操作。 个 性 主服务器为 发 复制 创建一个内存 冲区 并且主服务器和所有 从服务器之 录一个复制偏 和一个主服务器 当出 接断开时 从服务器会 新 接 并且向主服务器 执 原来 复制 如果从服务器 录 主服务器 和当前 接 主服务器 同 并且从服务器 录 偏 所 指定 数据仍 保存在主服务器 复制 冲区 么主服务器会向从服务器发 断 时 失 分数据 后复制工作可以 执 。 否则 从服务器就 执 完整 同 操作。 个 分 同 性会 到一个新增 内 命令 以前 旧 本只 有 命令 不 只 从服务器是 或以上 本 它就会根据主服务器 本来决定到底是 使 是 如果主服务器是 或以上 本 么从服务器使 命令来 同 。 如果主服务器是 之前 本 么从服务器使 命令来 同 。 一个从服务器 常 单 只 在 文件中增加以下 一 就可以了 当 你 将代 中 和 替换成你 主服务器 和 口号。 另外一 方 是 命令 入主服务器 和 口 后同 就会开始 只 从服务器 从 开始 从服务器支持只 模式 并且 模式为从服务器 模式。 只 模式 文件中 控制 也可以 命令来开启或关 个模式。 复制
  • 173.
    命令参 只 从服务器会拒 执任何写命令 所以不会出 因为操作失 将数据不小心写入到了从服务器 情 况。 即使从服务器是只 和 式命令仍 是可以使 所以我们 是不应 将服务器 暴 互 或 任何不可信 。不 使 中 命令改名 我们可以 执 某 些命令来提升只 从服务器 安全性。 你可 会感到好奇 既 从服务器上 写数据会 同 数据 也可 在从服务器 启时丢失 么为 什么 一个从服务器变得可写呢 原因是 一些不 临时数据 仍 是可以保存在从服务器上 。 如 客户 可以在从服务器上保 存主服务器 可 性 信息 从 实 故 。 从服务器 关 如果主服务器 了密 么为了 从服务器 同 操作可以 利 我们也 必 为从服务器 应 份 。 对于一个 在 服务器 可以使 客户 入以下命令 久地 个密 么可以将它加入到 文件中 另外 有几个 它们和主服务器执 分 同 时所使 复制 冲区有关 信息可以参 中 带 例文件。 主服务器只在有 少 个从服务器 情况下 才执 写操作 从 开始 为了保 数据 安全性 可以 主服务器只在有 少 个当前已 接从服务 器 情况下 才执 写命令。 不 因为 使 异 复制 所以主服务器发 写数据并不一定会 从服务器接收到 因 数据丢 失 可 性仍 是存在 。 以下是 个 性 作原 从服务器以 一次 主服务器一次 并报告复制 处 情况。 主服务器会 录各个从服务器最后一次向它发 时 。 户可以 指定 延 最大值 以及执 写操作所 少从服 务器数 。 如果 少有 个从服务器 并且 些服务器 延 值 少于 么主服务器就会执 客户 写操作。 你可以将 个 性 作 中 条件放宽 本 尽 不 保 写操作 持久性 但 丢失数 据 口会 严格 制在指定 数中。 另一方 如果条件 不到 和 所指定 条件 么写操作就 不会 执 主服务器会向 执 写操作 客户 回一个 。 以下是 个 性 两个 和它们所 参数 从服务器 关
  • 174.
  • 175.
    信协 本文档 。 协 在以下三个标之 折中 易于实 可以 效地 机分析 可以很容易地 人 懂 层 客户 和服务器 接来 数据交互 服务器 口号为 。 客户 和服务器发 命令或数据一律以 尾。 服务器接受命令以及命令 参数。 服务器会在接到命令之后 对命令 处 并将命令 回复传 回客户 。 新 一 协 新 一 协 在 本中引入 并最 在 本成为 服务器 信 标准方式。 你 客户 应 按 个新 协 来 实 。 在 个协 中 所有发 服务器 参数 是二 制安全 。 以下是 个协 一 形式 参数数 参数 字 数 参数 数据 参数 字 数 参数 数据
  • 176.
    命令参 命令本 也作为协 其中一个参数来发。 举个例子 以下是一个命令协 打印 本 个命令 实 协 值如下 后我们会 到 格式 了 作命令 协 之外 也 在命令 回复协 中 只有一个参数 回 复格式 为批 回复 。 一协 原本是 在回复协 中 于将列 多个 回 客户 回复格式 为多条批 回复 。 一个多条批 回复以 为前 后 多条不同 批 回复 其中 为 些批 回复 数 。 回复 命令会 回多 不同 型 回复。 检查服务器发回数据 一个字 可以 定 个回复是什么 型 态回复 一个字 是 回复 一个字 是 整数回复 一个字 是 批 回复 一个字 是 多条批 回复 一个字 是 态回复 一个 态回复 或 单 回复 是一 以 开始、 尾 单 字 串。 以下是一个 态回复 例子 客户 库应 回 号之后 所有内容。 如在在上 个例子中 客户 就应 回字 串 。 态回复 常 些不 回数据 命令 回 回复不是二 制安全 它也不 包含新 。 态回复 外开 常少 只 三个字 开头 和 尾 。 信协
  • 177.
    命令参 回复 回复和 态回复 常似 它们之 唯一区别是 回复 一个字 是 态回复 一个字 是 。 回复只在某些地方出 时发 如 当 户对不 数据 型执 命令 或 执 一个不存 在 命令 。 一个客户 库应 在收到 回复时产 一个异常。 以下是两个 回复 例子 在 之后 到 到 一个 格或新 为 中 内容 所 回 型。 是一个 则是一个更 定 。一个客户 实 可以为不同 型 产 不同 型 异常 或 提供一 方式 可以 提供字 串形式 名来捕捉 不 同 。 不 些 性 得并不多 所以并不是 别 一个受 客户 可以 单地 回一个 假 来 一个 条件。 整数回复 整数回复就是一个以 开头 尾 字 串 整数。 如 和 是整数回复。 回整数回复 其中两个命令是 和 。 回 整数 有什么 含义 回 一个 增后 整数值 则 回一个 时 戳 回值 唯一 制是 些数必 够 位有 号整数 。 整数回复也 广 地 于 和 假 如 和 回值 假。 其他一些命令 如 、 和 只在操作 执 了 时候 才 回 否则 回 。 以下命令 回整数回复 、 、 、 、 、 、 、 、 、 、 、 、 、 、 、 。 批 回复 服务器使 批 回复来 回二 制安全 字 串 字 串 最大 度为 。 客户 服务器 服务器发 内容中 一字 为 号 接下来 是 实 回复 度 数字值 之后 一个 再后 是实 回复数据 回复
  • 178.
    命令参 最末尾是另一个 对于前 命令 服务器实发 内容为 如果 值不存在 么批 回复会将 值 作回复 度值 就像 样 客户 服务器 回复 为 批 回复 。 当 对 不存在时 客户 应 回 对 不是 字 串 如 库应 回 库应 回 或 在回复对 中 一个 标志 如 。 多条批 回复 像 样 命令 回多个值 一 标可以 多条批 回复来完成。 多条批 回复是 多个回复 成 数 数 中 个元 可以是任意 型 回复 包括多条批 回复本 。 多条批 回复 一个字 为 后 一个字 串 整数值 个值 录了多条批 回复所包含 回复数 再后 是一个 。 客户 服务器 服务器 服务器 服务器 服务器 服务器 服务器 服务器 服务器 在上 例中 服务器发 所有字 串 尾。 如你所 到 样 多条批 回复所使 格式 和客户 发 命令时使 一 协 格式一模一 样。它们之 唯一区别是 一 协 只发 批 回复。 服务器应 命令时所发 多条批 回复 则可以包含任意 型 回复。 以下例子展 了一个多条批 回复 回复中包含四个整数值 以及一个二 制安全字 串 在回复 一 服务器发 个多条批 回复包含 条回复 再后 则是 条回复 文。 多条批 回复也可以是 就像 样 信协
  • 179.
    命令参 客户 服务器 无内容 多条批 回复也是存在 如当 命令 塞时 最大时 时 它就 回一个无内容 多条批 回复 个回复 数值为 客户 服务器 客户 库应 区别对待 多条回复和无内容多条回复 当 回一个无内容多条回复时 客户 库应 回一个 对 不是一个 数 。 多条批 回复中 元 多条批 回复中 元 可以将 度 为 从 元 不存在 并且也不是一个 字 串 。 当 命令使 对一个不存在 操作时 就会发 多条批 回复中带有 元 情况。 以下例子展 了一个包含 元 多 批 回复 服务器 服务器 服务器 服务器 服务器 服务器 其中 回复中 二个元 为 。 对于 个回复 客户 库应 回 似于 样 回复 多命令和 客户 可以 在一次写入操作中发 多个命令 在发 新命令之前 无 前一个命令 回复。 多个命令 回复会在最后一并 回。 内 命令 当你 和 服务器 但又找不到 手上只有 时候 你可以 别为 情形 内 命令格式来发 命令。 以下是一个客户 和服务器使 内 命令来 交互 例子 客户 服务器 多条批 回复中 元
  • 180.
    命令参 以下另一个 回整数值 内命令 例子 客户 服务器 因为 有了 一 协 中 来声明参数 数 所以在 会 入命令 时候 必 使 格来分割各个参数 服务器在接收到数据之后 会按 格对 户 入 分析 并 取其中 命 令参数。 性 协 分析器 尽 协 常利于人 定义也很 单 但 个协 实 性 仍 可以和二 制协 一样 快。 因为 协 将数据 度放在数据 文之前 所以 序无 像 样 为了寻找某个 字 扫描整个 也无 对发 服务器 义 。 序可以在对协 文本中 各个字 处 同时 查找 字 并 出批 回复或多条批 回复 度 就像 样 得到了批 回复或多条批 回复 度之后 序只 一次 函数 就可以将回复 文数据全 入到内存中 无 对 些数据做任何 处 。 在回复最末尾 和 不作处 丢弃它们。 协 实 性 可以和二 制协 实 性 媲 并且 于 协 单性 大 分 可以 易地实 个协 使得客户 件 数 大大减少。 信协
  • 181.
    持久化 本文档 。 文 提供了持久化 技术性描 推 所有 户 。 更广 地了 持久化 以及 持久化所保 久性 参 文 中文 。 持久化 提供了多 不同 别 持久化方式 持久化可以在指定 时 内 成数据 时 快 。 持久化 录服务器执 所有写操作命令 并在服务器启动时 新执 些命令来 原数 据 。 文件中 命令全 以 协 格式来保存 新命令会 加到文件 末尾。 可以在后台对 文件 写 使得 文件 体 不会 出保存数据 态所 实 大小。 可以同时使 持久化和 持久化。在 情况下 当 启时 它会优先使 文件来 原数据 因为 文件保存 数据 常 文件所保存 数据 更完整。 你 可以关 持久化功 数据只在服务器 时存在。 了 持久化和 持久化之 异同是 常 以下几个小 将 地介 两 持久化功 并对它们 同和不同之处 明。 优 是一个 常 凑 文件 它保存了 在某个时 上 数据 。 文件 常 合 于 备份 如 你可以在最 小时内 小时备份一次 文件 并且在 个月 一天 也备份一个 文件。 样 即使 上 也可以 时将数据 原到不同 本。 常 于 恢复 它只有一个文件 并且内容 常 凑 可以 在加 密后 将它传 到别 数据中心 或 亚 中。 可以最大化 性 在保存 文件时唯一 做 就是 出一个子 后 个子 就会处 接下来 所有保存工作 无 执 任何 操作。 在恢复大数据 时 度 恢复 度 快。
  • 182.
    命令参 如果你 尽 免在服务器故时丢失数据 么 不 合你。 允 你 不同 保存 来控制保存 文件 但是 因为 文件 保存整个数据 态 所以它并不是一个 松 操作。因 你可 会 少 分 才保存一次 文件。在 情况下 一旦发 故 停机 你就可 会丢失好几分 数据。 次保存 时候 出一个子 并 子 来 实 持久化工作。在 数据 庞大时 可 会 常 时 成服务器在某某 内停 处 客户 如果数据 常巨大 并且 时 常 张 么 停 时 可 会 整整一 。 写也 但无 写 执 有多 数据 久性 不会有任何损失。 优 使 持久化会 变得 常 久 你可以 不同 如无 一次 或 次执 写入命令时 。 为 一次 在 下 仍 可以保持 好 性 并且就 发 故 停机 也最多只会丢 失一 数据 会在后台 执 所以主 可以 努力地处 命令 。 文件是一个只 加操作 日志文件 因 对 文件 写入不 即使日志因为某些原因 包含了未写入完整 命令 如写入时 已 写入中 停机 工具也可以 易地修复 。 可以在 文件体 变得 大时 动地在后台对 写 写后 新 文件包 含了恢复当前数据 所 最小命令 合。整个 写操作是 对安全 因为 在创建新 文件 中 会 将命令 加到 有 文件 即使 写 中发 停机 有 文件也不会丢失。 一旦新 文件创建完 就会从旧 文件切换到新 文件 并 开始对新 文件 加操作。 文件有序地保存了对数据库执 所有写入操作 些写入操作以 协 格式保存 因 文件 内容 常容易 人 懂 对文件 分析 也很 松。导出 文 件也 常 单 举个例子 如果你不小心执 了 命令 但只 文件未 写 么只 停 服务器 文件末尾 命令 并 启 就可以将数据 恢复 到 执 之前 态。 对于 同 数据 来 文件 体 常 大于 文件 体 。 根据所使 度可 会慢于 。在一 情况下 性 依 常 关 可以 度和 一样快 即使在 之下也是如 。不 在处 巨大 写入 入时 可以提供更有保 最大延 时 。 在 去曾 发 样 因为个别命令 原因 导 文件在 新 入时 无 将数 据 恢复成保存时 原样。 举个例子 塞命令 就曾 引 样 。 套件 为 情况 加了 它们会 动 成 机 、复杂 数据 并 新 入 些数据来 保一切 常。 在 文件中并不常 但是对 来 几乎是不可 出 。 持久化
  • 183.
    命令参 和 我应 哪一个 一来 如果想 到 以媲 数据安全性 你应 同时使 两 持久化功 。 如果你 常关心你 数据 但仍 可以承受数分 以内 数据丢失 么你可以只使 持久化。 有很多 户 只使 持久化 但我们并不推 方式 因为定时 成 快 常 便于 数据库备份 并且 恢复数据 度也 恢复 度 快 之外 使 可以 免之前提到 序 。 因为以上提到 原因 未来我们可 会将 和 整合成单个持久化模型。 是一个 期 划。 接下来 几个小 将介 和 更多 。 快 在 情况下 将数据库快 保存在名字为 二 制文件中。 你可以对 它在“ 内数据 少有 个改动” 一条件 时 动保存一次数据 。 你也可以 或 手动 数据 保存操作。 如 以下 会 在 “ 内有 少有 个 改动” 一条件时 动保存一次数据 持久化方式 为快 。 快 作方式 当 保存 文件时 服务器执 以下操作 同时拥有 和子 。 子 将数据 写入到一个临时 文件中。 当子 完成对新 文件 写入时 新 文件替换原来 文件 并删 旧 文件。 工作方式使得 可以从写时复制 机制中 。 只 加操作 文件 快 功 并不是 常 久 如果 因为某些原因 成故 停机 么服务器将丢失最 写 入、且仍未保存到快 中 些数据。 尽 对于某些 序来 数据 久性并不是最 因 但是对于 些 完全 久 力 序来 快 功 就不太 了。 从 本开始 增加了一 完全 久 持久化方式 持久化。 你可以 修改 文件来打开 功 和 我应 哪一个
  • 184.
    命令参 从 在开始 当执 一个改变数据 命令时 如 个命令就会 加到 文件 末尾。 样 当 新启时 序就可以 新执 文件中 命令来 到 建数据 。 写 因为 作方式是不断地将命令 加到文件 末尾 所以 写入命令 不断增加 文件 体 也会变得 来 大。 举个例子 如果你对一个 数器 了 次 么仅仅是为了保存 个 数器 当前值 文 件就 使 条 录 。 在实 上 只使 一条 命令已 以保存 数器 当前值了 其余 条 录实 上 是多余 。 为了处 情况 支持一 有 性 可以在不打断服务客户 情况下 对 文件 建 。 执 命令 将 成一个新 文件 个文件包含 建当前数据 所 最 少命令。 己手动执 命令 则可以 动 发 写 具体信息 查 例 文件。 有多 久 你可以 多久才将数据 到 一次。 有三个 次有新命令 加到 文件时就执 一次 常慢 也 常安全。 一次 够快 和使 持久化差不多 并且在故 时只会丢失 数据。 从不 将数据交 操作 来处 。更快 也更不安全 择。 推 并且也是 措施为 一次 可以兼 度和安全性。 总是 在实 使 中 常慢 即使在 对 关 序 了改 之后仍是如 —— 定了 不可 快得 来。 如果 文件出 了 怎么办 服务器可 在 序 在对 文件 写入时停机 如果停机 成了 文件出 么 在 启时会拒 入 个 文件 从 保数据 一 性不会 坏。 当发 情况时 可以 以下方 来修复出 文件 为 有 文件创建一个备份。 使 带 序 对原来 文件 修复。 持久化
  • 185.
    命令参 可 使 对修复后 文件和原始 文件 备份 查 两个文件之 不同 之处。 启 服务器 待服务器 入修复后 文件 并 数据恢复。 作方式 写和 创建快 一样 巧妙地利 了写时复制机制。 以下是 写 执 执 在同时拥有 和子 。 子 开始将新 文件 内容写入到临时文件。 对于所有新执 写入命令 一 将它们 到一个内存 存中 一 将 些改动 加到 有 文件 末尾 样即使在 写 中 发 停机 有 文件也 是安全 。 当子 完成 写工作时 它 发 一个信号 在接收到信号之后 将内存 存中 所 有数据 加到新 文件 末尾。 搞定 在 原子地 新文件替换旧文件 之后所有命令 会 接 加到新 文件 末尾。 怎么从 持久化切换到 持久化 在 或以上 本 可以在不 启 情况下 从 切换到 为最新 文件创建一个备份。 将备份放到一个安全 地方。 执 以下两条命令 保命令执 之后 数据库 数 有改变。 保写命令会 地 加到 文件 末尾。 执 一条命令开启了 功 会 塞 到初始 文件创建完成为 之后 会 处 命令 并开始将写入命令 加到 文件末尾。 执 二条命令 于关 功 。 一 是可 如果你愿意 也可以同时使 和 两 持久化功 。 别忘了在 中打开 功 否则 服务器 启之后 之前 就会 忘 序会按原来 来启动服务器。 原文 有介 本 切换方式 到 已 很 旧了 了对 分文 档 有 参 原文。 作方式
  • 186.
    命令参 和 之 互作 在本号大于 于 中 执 中 不可以执 。反 来 在 执 中 也不可以执 。 可以 两个 后台 同时对 大 操作。 如果 在执 并且 户显 地 命令 么服务器将向 户回复一个 态 并告 户 已 定执 一旦 执 完 就 会 式开始。 当 启动时 如果 持久化和 持久化 打开了 么 序会优先使 文件来恢复数 据 因为 文件所保存 数据 常是最完整 。 备份 数据 在 个小 前 先将下 句 于心 一定 备份你 数据库 故 失效 如 可 你 数据 失不 不 备份是 常危 。 对于数据备份是 常友好 因为你可以在服务器 时候对 文件 复制 文件一旦 创建 就不会 任何修改。当服务器 创建一个新 文件时 它先将文件 内容保存在一个临时 文件 当临时文件写入完 时 序才使 原子地 临时文件替换原来 文件。 也就是 无 何时 复制 文件 是 对安全 。 以下是我们 建 创建一个定期任务 小时将一个 文件备份到一个文件夹 并且 天将一个 文 件备份到另一个文件夹。 保快 备份 带有 应 日期和时 信息 次执 定期任务 本时 使 命令来删 期 快 如 你可以保 最 小时内 小时快 可以保 最 一两个月 日快 。 少 天一次 将 备份到你 数据中心之外 或 少是备份到你 服务器 机 器之外。 容 备份 容 备份基本上就是对数据 备份 并将 些备份传 到多个不同 外 数据中心。 容 备份可以在 并产 快 主数据中心发 严 时 仍 数据处于安全 态。 因为很多 户 是创业 他们 有大把大把 可以 所以下 介 是一些实 又便宜 容债备份方 以及其他 似 服务 是一个构建 备份 好地方。最 单 方 就是将你 小时或 日 备份加密并传 到 。对数据 加密可以 命令来完成 对 加 密模式 。 得把你 密 放到几个不同 、安全 地方去 如你可以把密 复制 你 最 人 。同时使 多个储存服务来保存数据文件 可以提升数据 安全性。 传 快 可以使 来完成 件 。以下是 单并且安全 传 方 买一个 你 数据 中心 常 上 创建一个无口令 客户 并将 个 加到 文件中 样就可以向 个 传 快 备份文件了。为了 到最好 数据安全 性 少 从两个不同 提供商 各 买一个 来 数据容 备份。 持久化
  • 187.
    命令参 意 是 容如果 有小心地 处 是很容易失效 。 最低 度下 你应 在文件传 完 之后 检查所传 备份文件 体 和原始快 文件 体 是否 同。如 果你使 是 么 可以 对文件 校 和来 文件是否传 完整。 另外 你 一个 报 它在 传 备份文件 传 器 失 时 你。 容 备份
  • 188.
  • 189.
    本文档 。 于 多个服务器 执 以下三个任务 控 会不断地检查你 主服务器和从服务器是否 作 常。 提 当 控 某个 服务器出 时 可以 向 员 或 其他应 序发 。 动故 当一个主服务器不 常工作时 会开始一次 动 故 操作 它会将失效主服务器 其中一个从服务器升 为新 主服务器 并 失效主服务器 其他从服务器改为复制新 主服务器 当客户 图 接失效 主服务器时 也会向客户 回 新主服务器 地址 使得 可以使 新主服务器代替失效服务器。 是一个分布式 你可以在一个架构中 多个 些 使 协 来接收关于主服务器是否下 信息 并使 投 协 来决定是否执 动故 以及 择哪个从服务器作为新 主服务器。 出为一个单 可执 文件 但实 上它只是一个 在 模式 下 服务器 你可以在启动一个普 服务器时 定 来启动 。 前仍在开发中 个文档 内容可 实 修改 变更。 兼容 或以上 本 推 使 或以上 本。 取 前 是 分支 一 分 你必 到 克 一份 分值 后 来 得 。 序可以在 后 文档中发 它是一个命名为 序。 你也可以 下一 介 方 序 在 模式之下。 另外 一个新 本 已 包含在了 本 出文件中。 启动 对于 序 你可以 以下命令来启动
  • 190.
    命令参 对于 序 你可以以下命令来启动一个 在 模式下 服务器 两 方 可以启动一个 实例。 启动 实例必 指定 应 文件 会使 文件来保存 当前 态 并在 启时 入 文件来 态 原。 如果启动 时 有指定 应 文件 或 指定 文件不可写 么 会拒 启动。 中包含了一个名为 文件 个文件是一个带有 文件 例。 一个 所 最少 如下所 一 指 去 一个名为 主服务器 个主服务器 地址为 口号为 将 个主服务器判断为失效 少 个 同意 只 同意 数 不 标 动故 就不会执 。 不 意 无 你 多少个 同意才 判断一个服务器失效 一个 得 中多数 支持 才 发 一次 动故 并 一个 定 元 一个 元就是一个新主服务器 本号 。 换句 在只有少数 常 作 情况下 是不 执 动故 。 其他 基本格式如下 名字 主服务器 名字 值 各个 功 如下 指定了 为服务器已 断 所 数。 如果服务器在 定 数之内 有 回 发 命令 回复 或 回一个 么 将 个服务器标 为主 下 。 不 只有一个 将服务器标 为主 下 并不一定会引 服务器 动故 只有在 够数 将一个服务器标 为主 下 之后 服务器才会 标 为客 下 时 动故 才会执 。 将服务器标 为客 下 所 数 对主服务器 决定。
  • 191.
    命令参 指定了在执 故 时最多可以有多少个从服务器同时对新 主服务器 同 个数字 小 完成故 所 时 就 。 如果从服务器 为允 使 期数据 参 对 文件中对 明 么你可 不希望所有从服务器 在同一时 向新 主服务器发 同 因为尽 复制 大 分 不会 塞从服务器 但从服务器在 入主服务器发来 文件时 仍 会 成从服务器在一 时 内不 处 命令 如果全 从服务器一 对新 主服务器 同 么就可 会 成所有从服务器在 时 内全 不可 情况出 。 你可以 将 个值 为 来保 次只有一个从服务器处于不 处 命令 态。 本文档剩余 内容将对 其他 介 例 文件 也对 关 了完整 。 主 下 和客 下 前 中关于下 有两个不同 概念 主 下 指 是单个 实例对服务器做出 下 判断。 客 下 指 是多个 实例在对同一个服务器做出 判断 并且 命令互 交 之后 得出 服务器下 判断。 一个 可以 向另一个 发 命令 来 对方是否 为 定 服务器已下 。 如果一个服务器 有在 所指定 时 内 对向它发 命令 回一个有效回复 么 就会将 个服务器标 为主 下 。 服务器对 命令 有效回复可以是以下三 回复 其中一 回 。 回 。 回 。 如果服务器 回 以上三 回复之外 其他回复 又或 在指定时 内 有回复 命令 么 为服务器 回 回复无效 。 意 一个服务器必 在 内 一 回无效回复才会 标 为主 下 。 举个例子 如果 值为 么只 服务器 在 之内 回 少一次有效回复 个服务器就仍 会 为是处于 常 态 。 从主 下 态切换到客 下 态并 有使 严格 定人数 是使 了 协 如果 在 定 时 围内 从其他 接收到了 够数 主服务器下 报告 么 就会将主服务器 态从主 下 改变为客 下 。如果之后其他 不再报 告主服务器已下 么客 下 态就会 。 客 下 条件只 于主服务器 对于任何其他 型 实例 在将它们判断为下 前不 协商 所以从服务器或 其他 不会 到客 下 条件。 只 一个 发 某个主服务器 入了客 下 态 个 就可 会 其他 推 出 并对失效 主服务器执 动故 操作。 主 下 和客 下
  • 192.
    命令参 个 定期执 任务 个以 一次 向它所 主服务器、从服务器以及其他 实例发 一 个 命令。 如果一个实例 最后一次有效回复 命令 时 所指定 值 么 个实例会 标 为主 下 。一个有效回复可以是 、 或 。 如果一个主服务器 标 为主 下 么 在 个主服务器 所有 以 一次 主服务器 入了主 下 态。 如果一个主服务器 标 为主 下 并且有 够数 少 到 文件指定 数 在指定 时 围内同意 一判断 么 个主服务器 标 为客 下 。 在一 情况下 个 会以 一次 向它已 所有主服务器和从服务器发 命令。当一个主服务器 标 为客 下 时 向下 主服务器 所有从服务器发 命令 会从 一次改为 一次。 当 有 够数 同意主服务器已 下 主服务器 客 下 态就会 。当主服务 器 新向 命令 回有效回复时 主服务器 主 下 态就会 。 动发 和从服务器 一个 可以与其他多个 接 各个 之 可以互 检查对方 可 性 并 信息交换。 你无 为 个 分别 其他 地址 因为 可以 发布与 功 来 动发 在 同主服务器 其他 一功 是 向 发 信息来 实 。 与 似 你也不必手动列出主服务器属下 所有从服务器 因为 可以 主服务器来 得所 有从服务器 信息。 个 会以 两 一次 发布与 功 向 它 所有主服务器和从服务器 发 一条信息 信息中包含了 地址、 口号和 。 个 了 它 所有主服务器和从服务器 查找之前 未出 。当一个 发 一个新 时 它 会将新 加到一个列 中 个列 保存了 已 同一个主服务器 所有 其他 。 发 信息中 包括完整 主服务器当前 。如果一个 包含 主 服务器 另一个 发 旧 么 个 会 即升 到新 上。 在将一个新 加到 主服务器 列 上 之前 会先检查列 中是否已 包含了 和 加 拥有 同 或 同地址 包括 地址和 口号 如果是 会先 列 中已有 些拥有 同 或 同地址 后再 加新 。 在 情况下 使 口 普 服务器使 是 。
  • 193.
    命令参 接受 协 格式命令 所以你可以使 或 任何其他 客户 来与 。 有两 方式可以和 一 方 是 接发 命令来查 服务器 当前 态 以及 所 关于 其他 信息 如 。 另一 方 是使 发布与 功 接收 发 当执 故 操作 或 某个 服务器 判断为主 下 或 客 下 时 就会发 应 信息。 命令 以下列出 是 接受 命令 回 。 列出所有 主服务器 以及 些主服务器 当前 态。 列出 定主服务器 所有从服务器 以及 些从服务器 当前 态。 回 定名字 主服务器 地址和 口 号。如果 个主服务器 在执 故 操作 或 对 个主服务器 故 操作已 完成 么 个命令 回新 主服务器 地址和 口号。 所有名字和 定模式 匹 主服务器。 参数 是一个 格 模式。 操作 楚主服务器 前 所有 态 包括 在执 中 故 并 前已 发 和关 主服务器 所有从服务器和 。 当主服务器失效时 在不 其他 意 情况下 强 制开始一次 动故 不 发 故 会向其他 发 一个新 其他 会根据 个 应 更新 。 发布与 信息 客户 可以将 作是一个只提供了 功 服务器 你不可以使 命令向 个 服务器发 信息 但你可以 命令或 命令 定 来 取 应 事件提 。 一个 够接收和 个 名字 同 事件。 如 名为 就可以接收所有实例 入主 下 态 事件。 执 命令可以接收所有事件信息。 以下列出 是客户 可以 来 得 和信息 格式 一个 文单 是 事件 名字 其余 是数据 格式。 意 当格式中包含 字样时 所 回 信息中包含了以下 于 别 标实例 内容 字 之后 内容 于指定主服务器 些内容是可 它们仅在 字 之前 内容指定 实例不是主服 务器时使 。 主服务器已 。 一个新 从服务器已 别并关 。
  • 194.
    命令参 故 态切换到了 态。 另一个 开始了一次故操作 或 一个 从服务器 换成了主服务器。 头 向实例发 了 命 令 为实例 新 主服务器。 实例 在将 己 为指定主服务器 从服务器 但 应 同 仍未完成。 从服务器已 成功完成对新主服务器 同 。 对 定主服务器 一个或多个 已 因为 复出 ——当 实例 启 时候 就会出 情况。 一个 定主服务器 新 已 别并 加。 定 实例 在处于主 下 态。 定 实例已 不再处于主 下 态。 定 实例 在处于客 下 态。 定 实例已 不再处于客 下 态。 当前 元 已 更新。 一个新 故 操作 在执 中 待 大多数 中 。 得指定 元 举 可以 故 操作了。 故 操作 在处于 态—— 在寻找可以升 为主服务器 从服务器。 操作未 找到 合 升 从服务器。 会 在一 时 之后再次尝 寻找合 从服务器来 升 又或 接放弃执 故 操作。 利找到 合 升 从服务器。 在将指定 从服务器升 为主服务器 待升 功 完成。 故 因为 时 中 不 最 所有从服 务器 会开始复制新 主服务器 。 故 操作 利完成。所有从服务器 开始复制新 主服务 器了。 变更 主服务器 和地址已 改变。 是 大多数外 户 关心 信息。 入 模式。 出 模式。 故 一次故 操作 以下 成 发 主服务器已 入客 下 态。
  • 195.
    命令参 对我们 当前 元增 情 参 并尝 在 个 元中当 。 如果当 失 么在 定 故 时时 两倍之后 新尝 当 。如果当 成功 么执 以下 。 出一个从服务器 并将它升 为主服务器。 向 中 从服务器发 命令 它 变为主服务器。 发布与 功 将更新后 传播 所有其他 其他 对它们 己 更新。 向已下 主服务器 从服务器发 命令 它们去复制新 主服务器。 当所有从服务器 已 开始复制新 主服务器时 头 次故 操作。 当一个 实例 新 ——无 是 成主服务器、从服务器、又或 成其他主服务器 从服务器—— 会向 新 实例发 一个 命令 从 保 些 会持久化在 。 使 以下 则来 择新 主服务器 在失效主服务器属下 从服务器当中 些 标 为主 下 、已断 、或 最后一次回复 命 令 时 大于五 从服务器 会 。 在失效主服务器属下 从服务器当中 些与失效主服务器 接断开 时 指 定 时 十倍 从服务器 会 。 在 历了以上两 之后剩下来 从服务器中 我们 出复制偏 最大 个从服务器作为新 主服务器 如果复制偏 不可 或 从服务器 复制偏 同 么带有 最小 个从服务器成为新 主服务器。 动故 一 性 动故 使 来 举 头 从 保在一个 定 元 只有一个 头产 。 在同一个 元中 不会有两个 同时 中为 头 并且各个 在同一个 元中只会 对一个 头 投 。 更 元总是优于 低 元 因 个 会主动使 更新 元来代替 己 。 单来 我们可以将 作是一个带有 本号 态。一个 态会以最后写入 出 方式 也即是 最新 总是 出 传播 所有其他 。 举个例子 当出 分割 时 一个 可 会包含了 旧 当 个 接到其他 发来 本更新 时 就会对 己 更新。 如果 在 分割出 情况下仍 保持一 性 么应 使 主服务器 在 接 从实例少于 定数 时停 执 写操作 与 同时 应 在 个 主服务器或从服务器 机器上 。 态 持久化 态会 持久化在 文件 。 当 接收到一个新 或 当 头 为主服务器创建一个新 时 个 会与 元一 保存到 。 故
  • 196.
    命令参 意味 停 和启 是安全 。 在 故 情况下对实例 新 即使 有 动故 操作在 总会尝 将当前 到 实例上 。 别是 根据当前 如果一个从服务器 宣告为主服务器 么它会代替原有 主服务器 成为新 主 服务器 并且成为原有主服务器 所有从服务器 复制对 。 些 接了 主服务器 从服务器会 新 使得 些从服务器会去复制 主服务器。 不 在以上 些条件 之后 在对实例 新 之前仍 会 待一 够 时 保 可以接收到其他 发来 更新 从 免 因为保存了 期 对实例 了不必 新 。 模式 严 依 机 时 功 如 为了判断一个实例是否可 会 录 个实 例最后一次 应 命令 时 并将 个时 和当前时 对 从 个实例有多 时 有 和 任何成功 。 不 一旦 机 时 功 出 故 或 机 常忙 又或 因为某些原因 塞时 可 也会 出 故 。 模式是一 保护模式 当 发 有些不对劲时 就会 入 模式。 因为 时 中断器 执 次 所以我们 期时 中断器 两次执 之 为 左右。 做 是 录上一次时 中断器执 时 时 并将它和 一次时 中断器执 时 对 如果两次 时 之 差 为 值 或 常大 么 入 模式。 如果 已 入 模式 么 延 出 模式 时 。 当 入 模式时 它仍 会 所有 标 但是 它不再执 任何操作 如故 。 当有实例向 个 发 命令时 回 值 因 为 个 所 下 判断已 不再准 。 如果 可以 常 持 么 出 模式。 处 态 功 尚未实 当 本 时 指定时 时 就会 回 。 当出 情况时 在尝 执 故 操作之前 会先向服务器发 一个 命令 如果服务器 在执 是一个只 本 么 个 本就会 杀 服务器就会回到 常 态。
  • 197.
    命令参 客户 实 关于 客户实 信息可以参 客户 指引手册 。 客户 实
  • 198.
  • 199.
    教 本文档 。 本文档是 入教 从 户 度介 了 、 和操作 方 。 本教 不包含晦 懂 分布式概念 也 有像 样包含 实 如果你打 入地学习 方 么推 你在 完 个教 之后 再去 一 。 前仍处于 本 如果在使 中发 任何 到 件列 发 或 到 报告 。 介 是一个可以在多个 之 数据共享 施 。 不支持 些 同时处 多个 命令 因为执 些命令 在多个 之 动数据 并且在 情况下 些命令将 低 性 并导 不可 为。 分区 来提供一定 度 可 性 即使 中有一 分 失效 或 无 也可以 处 命令 。 提供了以下两个好处 将数据 动切分 到多个 力。 当 中 一 分 失效或 无 时 仍 可以 处 命令 力。 数据共享 使 数据分 一 性哈希 来实 一个 包 含 个哈希槽 数据库中 个 属于 个哈希槽 其中一个 使 公式 来 属于哪个槽 其中 句 于 校 和 。 中 个 处 一 分哈希槽。举个例子 一个 可以有三个哈希槽 其中 处 号 号哈希槽。 处 号 号哈希槽。 处 号 号哈希槽。
  • 200.
    命令参 将哈希槽分布到不同 做 使得户可以很容易地向 中 加或 删 。 如 如果 户将新 加到 中 么 只 将 、 、 中 某些槽 动到 就 可以了。 与 似 如果 户 从 中 么 只 将 中 所有哈希槽 动到 和 后再 不包含任何哈希槽 就可以了。 因为将一个哈希槽从一个 动到另一个 不会 成 塞 所以无 是 加新 是 已存在 又或 改变某个 包含 哈希槽数 不会 成 下 。 中 主从复制 为了使得 在一 分 下 或 无 与 大多数 情况下 仍 可以 常 作 对 使 了主从复制功 中 个 有 个 个复制品 其 中一个复制品为主 其余 个复制品为从 。 在之前列举 、 、 例子中 如果 下 了 么 将无 常 因为 找不到 来处 号 号 哈希槽。 另一方 假如在创建 时候 或 少在 下 之前 我们为主 加了从 么当主 下 时候 就会将 为新 主 并 它代替下 主 处 号 号 哈希槽 样 就不会因为主 下 无 常 作了。 不 如果 和 下 是会停 作。 一 性保 不保 数据 强一 性 在 定条件下 可 会丢失已 执 写命令。 使 异 复制 是 可 会丢失写命令 其中一个原因。 以下 个 写命令 例子 客户 向主 发 一条写命令。 主 执 写命令 并向客户 回命令回复。 主 将刚刚执 写命令复制 它 从 、 和 。 如你所 主 对命令 复制工作发 在 回命令回复之后 因为如果 次处 命令 待复制 操作完成 么主 处 命令 度将极大地 低——我们必 在性 和一 性之 做出权 。 如果 有必 可 会在将来提供同 地 执 写命令 方 。 另外一 可 会丢失命令 情况是 出 分 并且一个客户 与 少包括一个主 在内 少数 实例 孤 。 举个例子 假 包含 、 、 、 、 、 六个 其中 、 、 为主 、 、 分别为三个主 从 另外 有一个客户 。 假 中发 分 么 可 会分 为两方 大多数 一方包含 、 、 、 和 少数 一方则包含 和客户 。 在 分 期 主 仍 会接受 发 写命令 如果 分 出 时 很 么 会 常 教
  • 201.
    命令参 但是 如果 分出 时 够 使得大多数一方将从 为新 主 并使 来代替原来 主 么 发 主 写命令将丢失。 意 在 分 出 期 客户 可以向主 发 写命令 最大时 是有 制 一时 制 为 时时 是 一个 对于大多数一方来 如果一个主 未 在 时时 所 定 时 内 新 上 么 会将 个主 为下 并使 从 来代替 个主 工作。 对于少数一方 如果一个主 未 在 时时 所 定 时 内 新 上 么它将停 处 写命令 并向客户 报告 。 创建并使 多个 在 模式 下 实例 成 实例 模式 来 开启 开启 模式 实例将可以使 有 功 和命令。 以下是一个包含了最少 文件 例 文件中 于开实例 模式 则 定了保存 文件 径 值为 。 文件无 人为修改 它 在启动时创建 并在有 时 动 更新。 常 作 少 三个主 不 在刚开始 功 时 强 建 使 六个 其中三个 为主 其余三个则是各个主 从 。 先 我们 入一个新 录 并创建六个以 口号为名字 子 录 后我们在将 个 录中 一个 实例 在文件夹 中 各创建一个 文件 文件 内容可以使 上 例 文件 但 得将 中 口号从 改为与文件夹名字 同 号 。 在 从 分支中取出最新 出可执 文件 并将文件复制到 文件夹 后使 似以下命令 在 个标 中打开一个实例 实例打印 日志显 因为 文件不存在 所以 个 为它 指定了一个新 实例会一 使 同一个 从 在 中保持一个 一无二 名字。 个 使 不是 或 口号来 录其他 因为 地址和 口号 可 会改变 个 一无二 标 则会在 整个 命周期中一 保持不变。 我们将 个标 为 。 创建并使
  • 202.
    命令参 创建 在我们已 有了六个 在中 实例 接下来我们 使 些实例来创建 并为 个 写 文件。 使 命令 工具 写 文件 工作可以 常容易地完成 位于 文件夹中 它是一个 序 个 序 向实例发 命令来完成创建新 检查 或 对 新分 工作。 我们 执 以下命令来创建 命令 意义如下 定 序 命令是 我们希望创建一个新 。 我们希望为 中 个主 创建一个从 。 之后 其他参数则是实例 地址列 我们希望 序使 些地址所指 实例来创建新 。 单来 以上命令 意思就是 序创建一个包含三个主 和三个从 。 接 会打印出一份 想中 你 如果你 得 就可以 入 就会将 份 应 到 当中 入 并按下回 之后 就会将 应 到各个 并 接 各个 ——也即是 各个 开始互 教
  • 203.
    命令参 如果一切 常 将出以下信息 中 个槽 有 少一个主 在处 作 常。 客户 一个 是客户 实 很少。以下是一些我 实 是我 写 实 于作为其他实 参 。 实 是对 一个 单包 效地实 了与 所 最少 义 。 上去是 一个 本 个 有一 时 有更新 了 最后一次提交是在六个月之前 不 可以将 个 作学习 。 曾 对早期 有 一定 支持 但我不 定它对 支持是否完整 也不 楚它是否和最新 本 兼容 因为新 将槽 数 从 改为 了 。 分支中 序实 了 常基本 支持 可以使 命令 来启动。 单 办 就是使 或 接下来我们将使 为例来 客户
  • 204.
    命令参 对 支持是 常基本所以它总是依 来将它 向 。 一个 客户 应 做得 更好 它应 存 录 哈希槽与 地址之 映射 从 接将命令发 到 上 。 映射只会在 出 某些修改时变化 如 在一次故 之后 或 员 加 或 来修改了 布局 之后 如 。 使 写一个 例应 在展 如何使 故 、 新分 操作之前 我们 创建一个 例应 了 一些与 客户 交互 基本方 。 在 例应 中 我们会尝 入失效 态 又或 开始一次 新分 以 来 察 在 实世 时 并且为了 个 例尽可 地有 我们会 个应 向 写操作。 本 将 两个 例应 来展 基本 以下是本 一个 例应 它是一个 名为 文件 包含在 个应 所做 工作 常 单 它不断地以 为 为值 使 命令向数据库 值对。 如果我们执 个应 应 将按 序执 以下命令 教
  • 205.
    命令参 如 。。。 代 中个 操作 使 一个 和 代 块 包 因为我们希望在代 出 时 将 打印到 上 不希望应 因为异常 出。 代 七 是代 中 一个有 地方 它创建了一个 对 其中创建对 所使 参数及其 意义如下 一个参数是 录了启动 列 列 中包含了两个 地址。 二个参数指定了对于 中 各个不同 对 可以 得 最大 接数 。 三个参数 指定了一个命令在执 多久之后 才会 作是执 失 。 住 启动列 中并不 包含所有 地址 但 些地址中 少 有一个是有效 一旦 成功 接上 中 某个 时 列 就会 动更新 任何 客户 应 样做。 在 序创建 对 实例 保存到 变 我们可以将 个对 当作普 对 实 例来使 。 在十一 十九 我们先尝 数器中 值 如果 数器不存在 我们才将 数器初始化为 将 数值保存到 数器 我们可以在 例 启之后 仍 之前 执 不必 次 启之后 从 开始 新 值对。 为了 序在 下 情况下 仍 不断地尝 取 数器 值 我们将 取操作包含在了一个 循 一 应 序并不 如 小心。 二十一 三十 是 序 主循 个循 值对 并在 出 时打印 信息。 序在主循 末尾 加了一个 写操作 执 度变慢 帮助执 例 人更容易 序 出。 执 序将产 以下 出 个 序并不是十分有 后我们就会 到一个更有 应 例 不 在 之前 我们先使 个 例来 新分 操作。 对 新分 在 我们来 对 新分 操作。 在执 新分 中 你 序处于 态 样你就会 到 新分 并不会对 在 序产 任何影响 你也可以 将 中 删掉 从 新分 操作在 乎 实 写 下执 。 对 新分
  • 206.
    命令参 新分 操作基本上就是将某些 上哈希槽 动到另外一些 上 和创建 一样 新分 也可 以使 序来执 。 执 以下命令可以开始一次 新分 操作 你只 指定 中其中一个 地址 就会 动找到 中 其他 。 前 只 在 员 协助下完成 新分 工作 动将哈希槽从一个 动到另一个 前来 做不到 不 实 个功 并不 。 执 一 就是 定你打 动 哈希槽 数 我们将打 动 槽数 为 个 如果 序一 在 个槽 应 有不少 了。 了 动 哈希槽数 之外 新分 标 也即是 接收 个哈希槽 。 指 定 标 使 不 是 地 址 和 口。 如 我 们 打 使 一 个 主 来 作 为 标 它 地 址 和 口 是 则 是 么我们应 向 提供 会打印出 中所有 并且我们也可以 执 以下命令来 得 教
  • 207.
    命令参 接 会向你 新分也即是 从哪个 中取出 个哈 希槽 并将 些槽 动到 标 上 。 如果我们不打 从 定 上取出指定数 哈希槽 么可以向 入 样 中 所有主 会成为 将从各个 中各取出一 分哈希槽 凑够 个 后 动到 标 上 入 并按下回 之后 将打印出哈希槽 动 划 如果你 得 就可以 入 并再次按下回 入 并使 按下回 之后 就会 式开始执 新分 操作 将指定 哈希槽从 一 个个地 动到 标 上 在 新分 中 应 可以 常 不会出 任何 。 在 新分 操作执 完 之后 可以使 以下命令来检查 是否 常 对 新分
  • 208.
    命令参 根据检查 果显 作常。 意 就是 在三个主 中 包含了 个哈希槽 和 只包含了 个哈希槽 因为后两 将 己 个哈希槽 动到了 。 一个更有 例应 我们在前 使 例 序 并不是十分有 因为它只是不断地对 写入 但并不检查 写入 果是否 。 如 可 会 地将 发 所有 命令 改成了 但因为 并不检查写入后 值 所以它不会意 到 实 上写入 值是 。 因为 个原因 包含了一个名为 例应 个应 有 得多 它创建了多个 数器 为 个 并 发 命令来增加 些 数器 值。 在增加 数器值 同时 执 以下操作 次使 命令更新一个 数器时 应 会 录下 数器执 命令之后应 有 值。举个 例子 如果 数器 始值为 次是 序 次向它发 命令 么 数器 值应 是 。 在 次发 命令之前 序会 机从 中 取一个 数器 值 并将它与 己 录 值 对 两个值是否 同。 换句 个 序是一个一 性检查器 如果 在执 命令 中 丢 失了某条 命令 又或 多执 了某条客户 有 到 命令 么检查器将察 到 一 ——在前一 情况中 录 数器值将 录 数器值 大 在后一 情况中 录 数器值将 录 数器值 小。 序将产 似以下 出 出 打印了 序执 取次数和写入次数 以及执 操作 中因为 不可 产 数。 如果 序察 了不一 情况出 它将在 出 末尾显式不一 情况。 如 如果我们在 中 手动修改某个 数器 值 教
  • 209.
    命令参 么 将向我们报告不一 情况 在我们修改数器值 时候 数器 值是 执 了 次 命令 因为我们将 数器 值 成了 所以 会向我们报告 丢失了 个 命令。 因为 个 例 序具有一 性检查功 所以我们 它来 故 操作。 故 在执 本 操作 中 一 序。 发一次故 最 单 办 就是令 中 某个主 入下 态。 先 以下命令列出 中 所有主 命令 出 我们 口号为 、 和 是主 后我们可以 向 口号为 主 发 命令 个主 崩 在 切换到 标 可以 到 在 下 之后 一 时 将产 大 告信息 从 出可以 到 在执 故 期 总共丢失了 个 命令和 个写命令 但是并 有产 任何数据不一 。 听上去可 有 奇怪 因为在教 开头我们提到 使 是异 复制 在执 故 期 可 会丢失写命令。 故
  • 210.
    命令参 但是在实 上 丢失命令情况并不常 因为 几乎是同时执 将命令回复发 客户 以及将命 令复制 从 两个操作 所以实 上 成命令丢失 时 口是 常小 。 不 尽 出 几 不 但丢失命令 情况 是有可 会出 所以我们对 不 提供强一 性 一描 仍 是 。 在 我们使 命令 查 在执 故 操作之后 主从 布局情况 我 启了之前下 已 从原来 主 变成了从 在 中 三 个主 分别是 、 和 其中 就是因 为 下 变成主 。 命令 出有 儿复杂 它 一 是 以下信息 成 例如 。 地址和 口号 例如 其中 是客户 当前 接 地址和 口号。 例如 、 、 以及 态 例如 。 如果 是一个从 么 在 之后 将是主 例如 主 就是 。 最 一次向 发 命令之后 去了多 时 接到回复。 最 一次 回 回复 时 。 元 信息 参 。 本 接情况 例如 。 前包含 槽 例如 前包含号 为 哈希槽。 加新 到 根据新 加 我们 两 方 来将新 加到 如果 加 新 是一个主 么我们 创建一个 后将某些哈希桶 动到 个 。 另一方 如果 加 新 是一个从 么我们 将 个新 为 中某个 复制品 。 本 将对以上两 情况 介 先介 主 加方 后再介 从 加方 。 无 加 是 一 做 总是 加一个 。 我们可以 使 之前启动 、 方 创建一个 口号为 新 使 文件也和之前一样 只是 得 将 中 口号改为 。 以下是启动 口号为 新 在 创建一个新 标 。 教
  • 211.
    命令参 入 文件夹。 创建并 入文件夹。 将 文件复制到 文件夹 后将 中 口号 改为 。 使 命令 启动 。 如果一切 常 么 应 会 地启动。 接下来 执 以下命令 将 个新 加到 命令中 我们 将一个 加到 之后 是新 地址和 口号 再之后 是 中任意一个已存在 地址和 口号 我们使 是 。 命令 我们可以 新 已 加到 了 新 在已 接上了 成为 一份子 并且可以对客户 命令 向了 但是和其他 主 新 有两 区别 新 有包含任何数据 因为它 有包含任何哈希桶。 尽 新 有包含任何哈希桶 但它仍 是一个主 所以在 将某个从 升 为新 主 时 个新 不会 中。 接下来 只 使 序 将 中 某些哈希桶 动到新 新 就会成为 主 了。 因为使 动哈希桶 方 在前 已 介 所以 就不再 复介 了。 在 我们来 将一个新 变为某个主 复制品 也即是从 方 。 举个例子 如果我们打 新 成为 从 么我们只 客户 接上新 后执 以下命令就可以了 其中命令提供 就是主 。 执 命令之后 我们可以使 以下命令来 已 成为了 为 从 在有两个从 一个从 口号为 另一个从 口号为 。 加新 到
  • 212.
  • 213.
    本文档 。 引 个文档是 在开发中功 文档 文档分为两个 分 一 分介 前已 在 分支中实 了 些功 。 二 分介 前仍未实 些功 。 文档各个 分 内容可 会 功 修改 发 改变 其中 未实 功 发 修改 几 已实 功 发 修改 几 。 个 包含了 写客户 库 所 全 不 意 列出 一 分 可 会在未来发 变化。 什么是 是一个分布式 、容 实 可以使 功 是普 单机 所 使 功 一个子 。 中不存在中心 或 代 其中一个主 标是 到 性 可扩展性 。 为了保 一 性 了一 分容 性 会在保 对 断 和 失效 具有有 抵抗力 前提下 尽可 地保持数据 一 性。 将 失效 为 断 其中一 情况。 容 功 是 使 主 和从 两 来实 主 和从 使 完全 同 服务器实 它们 功 也完全一样 但从 常 仅 于替换失效 主 。 不 如果不 保 “先写入 后 取”操作 一 性 么可以使 从 来执 只 查 。
  • 214.
    命令参 实 功 子 实了单机 中 所有处 单个数据库 命令。 对多个数据库 复杂 操作 如 合 并 操作、合 操作 有 实 些 上 使 多个 多个数据库 才 完成 命令也 有 实 。 在将来 户也 可以 命令 在 中执 对 多个数据库 只 操作 但 本 不会去实 些 将多个数据库 在多个 中 来 去 复杂多 命令。 不像单机 样支持多数据库功 只使 号数据库 并且不 使 命令。 协 中 客户 和服务器 中 有以下 任 持有 值对数据。 录 态 包括 到 映射 。 动发 其他 别工作不 常 并在有 时 在从 中 举出新 主 。 为了执 以上列出 任务 中 个 与其他 建 了“ 接 ” 接是 一个 接 使 二 制协 。 之 使 协 来 以下工作 传播 关于 信息 以 来发 新 。 向其他 发 数据包 以 来检查 标 是否 常 作。 在 定事件发 时 发 信息。 之外 接 于在 中发布或 信息。 因为 不 代 命令 所以客户 应 在 回 或 向 时 将命令 发 其他 。 因为客户 可以 地向 中 任何一个 发 命令 并可以在有 时 根据 向 所提供 信息 将命令 发 所以在 上来 客户 是无 保存 态信息 。 不 如果客户 可以将 和 之 映射信息保存 来 可以有效地减少可 出 向次数 提 升命令执 效 。 分布模型 分割为 个槽 最大 数 也是 个。 推 最大 数 为 个左右。 个主 处 个哈希槽 其中一 分。 当我们 一个 处于“ 定” 态时 指 是 有在执 操作 个哈希槽 只 一个 处 。
  • 215.
    命令参 指 是将某个 某些槽从一个动到另一个 。 一个主 可以有任意多个从 些从 于在主 发 断 或 失效时 对主 替换。 以下是 将 映射到槽 以下是 所使 参数 名 又 或 果 度 位 多 数 也即是 初始化值 反射 入字 发射 出 于 出值 异或常 对于 入 出 录 中 出了 所使 实 。 所产 位 出中 位会 到。 在我们 中 可以很好地将各 不同 型 平 地分布到 个槽 。 属性 个 在 中 有一个 一无二 是一个十六 制 位 机数 在 一次启 动时 成。 会将它 保存到 文件 只 个 文件不 删 就会一 个 。 于标 中 个 。一个 可以改变它 和 口号 不改变 。 可以 动 别出 口号 变化 并将 一信息 协 广播 其他 。 以下是 个 有 关 信息 并且 会将 些信息发 其他 所使 地址和 口号。 标志 。 处 哈希槽。 最 一次使 接发 数据包 时 。 最 一次在回复中接收到 数据包 时 。 将 标 为下 时 。 从 数 。 如果 是从 么它会 录主 。如果 是一个主 么主 一栏 值为 。 属性
  • 216.
    命令参 以上信息 其中一 分可以向 中 任意 主 或 从 可以 发 命 令来 得。 以下是一个向 中 主 发 命令 例子 三个 成 在上 列出 三 信息中 从左到右 各个域分别是 地址和 口号 标志 最后发 时 最后接收 时 接 态 处 槽。 握手 已实 总是应 来 接 口 接 并对接收到 数据包 回复 即使 个 数据包来 不可信 。 了 之外 会拒 其他所有并 来 数据包。 一个 承 另一个 同属于一个 只有以下两 方 一个 可以 向另一个 发 信息 来强制 接收信息 承 发 信息 为 中 一份子。一个 仅在 员显式地向它发 命令时 才会向另一个 发 信息。 另外 如果一个可信 向另一个 传播 三 信息 么接收信息 个 也会将 三 别为 中 一份子。也即是 如果 并且 向 传播关于 信息 么 也会将 别为 中 一份子 并尝 接 。 意味 如果我们将一个 一些新 加到一个 中 么 个 些新 最 会和 中已有 其他 所有 接 来。 明只 员使 命令显式地指定了可信关 就可以 动发 其他 。 别机制 不同 因为 地址变更或 其他 事件 发 产 意料之外 合 从 使得 更具健壮性。 当 接断开时 它会主动 接其他已 。 向 一个 客户 可以向 中 任意 包括从 发 命令 。 会对命令 分析 如 果 命令是 可以执 命令 么 会查找 个命令所 处 所在 槽。 如果 查找 哈希槽 好就 接收到命令 处 么 就 接执 个命令。 另一方 如果所查找 槽不是 处 将查 内 所保存 哈希槽到 映射 录 并向客户 回复一个 。 以下是一个 例子
  • 217.
    命令参 信息包含 所属 哈希槽以及 处 个槽 和 口号 。客 户 根据 个 和 口号 向所属 新发 一次 命令 。 意 即使客户 在 新发 命令之前 待了 常久 时 以 于 又再次更改了 使得 已 不再处 槽 么当客户 向 发 命令 时 候 将再次向客户 回 指 在 处 槽 。 我们 来标 中 但是为了 客户 向操作尽可 地 单 在 中 接 回 标 和 口号 不是 标 。 不是必 但一个客户 应 录 下“槽 处 “ 一 信息 样当再次有命令 对槽 执 时 客户 就可以加快寻找 度。 意 当 处于 定 态时 所有客户 最 会保存有一个哈希槽 映射 录 使得 常 效 客户 可以 接向 发 命令 无 向、代 或 其 他任何可 发 单 故 实体 。 了 向 之外 一个客户 应 可以处 后介 向 。 在 支持在 中 加或 。 实 上 加操作和 删 操作可以抽 成同一个操作 就是 将哈希槽从一个 动到另 一个 加一个新 到 于将其他已存在 槽 动到一个 新 。 从 中 一个 于将 所有槽 动到 其他 上 去。 因 实 在 核心就是将槽从一个 动到另一个 力。因为一个哈希槽实 上就是一些 合 所以 在 哈希 时 做 就是将一些 从一个 动 到另一个 。 如何将槽从一个 动到另一个 我们 对 命令 各个子命令 介 些命 槽 换 。 以下是 命令可 子命令 最开头 两条命令 和 分别 于向 指 或 当槽 指 或 之后 会将 一信息 协 传播到整个 。 命令 常在新创建 时 作为 一 快 地将各个槽指 各个 手 来使 。 子命令可以将指定 槽 指 。 于 命令和 命令 前 于将 定 中 槽 出 后 于将 定槽 导入到 当一个槽 为 态时 原来持有 个槽 仍 会 接受关于 个槽 命令 但只有命令所处 仍 存在于 时 才会处 个命令 。 如果命令所使 不存在与 么 将向客户 回一个 向 告 客户 将命令 发 到槽 标 。 在
  • 218.
    命令参 当一个槽 为 态时仅在接收到 命令之后 才会接受关于 个槽 命 令 。 如果客户 有向 发 命令 么 会使 向 将命令 向 处 个槽 。 上 关于 和 明有些 懂 我们 一个实 实例来 明一下。 假 在 我们有 和 两个 并且我们想将槽 从 动到 于是我们 向 发 命令 向 发 命令 当客户 向其他 发 关于哈希槽 命令 时 些 会向客户 回指向 向信 息 如果命令 处 已 存在于槽 么 个命令将 处 。 如果命令 处 未存在于槽 如 向槽 加一个新 么 个命令 处 。 机制将使得 不再创建关于槽 任何新 。 与 同时 一个 客户 以及 序 会将 中 槽 动到 。 动操作 以下两个命令执 上 命令会 回 个 槽中 对于命令所 回 个 会向 发 一条 命令 命令会将所指定 原子地 从 动到 在 动 期 两个 会处于 塞 态 以免出 争条件 。 以下为 命令 作原 执 命令 会 接到 并将序列化后 数据发 一旦 回 就将 己 从数据库中删 。 从一个外 客户 来 在某个时 上 么存在于 么存在于 但不会 同时存在于 和 。 因为 只使 号数据库 所以当 命令 于执 操作时 值总是 。 参数 存在是为了 命令成为一个 命令 从 可以作 于 以外 其 他功 。 我们对 命令做了优化 使得它即使在传 包含多个元 列 样 复杂数据时 也可以保 持 效。 不 尽 常 效 对一个 常多、并且 数据 常大 来 是会 占 大 时 可 会导 办 应 些对于响应时 有严格 应 序。 向 在之前介 向 时候 我们 了 向之外 有另一 向。
  • 219.
    命令参 当 一个客户 期地将 对某个槽 命令 发 另一个 时 向客 户 回 向。 另一方 当 客户 仅仅在下一个命令 中 向 另一个 时 向客户 回 向。 如 在我们上一 列举 槽 例子中 因为槽 所包含 各个 分散在 和 中 所以当 客户 在 中 找到某个 时 它应 向到 中去寻找 但是 向应 仅仅影响一次命令 查 不是 客户 次 接去查找 在 所持有 属于槽 有全 到 之前 客户 应 先 后再 。 因为 向只 对 个槽中 其中一个槽 所以 向对 成 性 损 属于可接受 围。 因为上 原因 如果我们 在查找 之后 查找 么客户 在向 发 命令 之 前 应 先发 一个 命令 否则 个 对带有 态 槽 命令 将 拒 执 。 接收到客户 命令 将为客户 一个一次性 标志 使得客户 可以执 一次 对 态 槽 命令 。 从客户 度来 向 完整 义 如下 如果客户 接收到 向 么将命令 发 对 整为 向所指定 。 先发 一个 命令 后再发 命令 。 不必更新客户 所 录 槽 映射 槽 应 仍 映射到 不是 。 一旦 对槽 工作完成 在再次收到 对槽 命令 时 就会向客户 回 向 将关于槽 命令 期地 向到 。 意 即使客户 出 早地将槽 映射到了 上 但只 个客户 不发 命令 客户 发 命令 时候就会 上 并将它 向回 。 容 失效检 以下是 失效检查 实 方 当一个 向另一个 发 命令 但是 标 未 在 定 时 内 回 命令 回复 时 么发 命令 会将 标 标 为 可 已失效 。 待 命令回复 时 为“ 时时 ” 是一个 。 次当 对其他 发 命令 时候 它 会 机地广播三个它所 信息 些 信息 其中一 就是 明 是否已 标 为 或 。 当 接收到其他 发来 信息时 它会 下 些 其他 标 为失效 。 为失效报告 。 如果 已 将某个 标 为 并且根据 所收到 失效报告显式 中 大 分其他 主 也 为 个 入了失效 态 么 会将 个失效 态标 为 。 一旦某个 标 为 关于 个 已失效 信息就会 广播到整个 所有接收到 条 信息 会将失效 标 为 。 单来 一个 将另一个 标 为失效 必 先 其他 意 并且得到大 分主 同 意才 。 容
  • 220.
    命令参 因为 期 失效报告会所以主 将某个 标 为 必 以最 接收到 失效报告 作为根据。 在以下两 情况中 态会 如果 标 为 是从 么当 个 新上 时 标 就会 。 保持 从 态是 有意义 因为它不处 任何槽 一个从 是否处于 态 决定了 个从 在有 时 否 提升为主 。 如果一个主 打上 标 之后 了 时时 四倍时 再加上十 之后 对 个主 槽 故 操作仍未完成 并且 个主 已 新上 么 对 个 标 。 在 二 情况中 如果故 未 利完成 并且主 新上 么 就 使 原来 主 从 免去 员介入 必 。 态检 已 分实 当 发 变化时 可 是哈希槽更新 也可 是某个 入失效 态 中 个 会 对它所 扫描 。 一旦 处 完 会 入以下两 态 其中一 不 常工作。当 中有某个 入失效 态时 不 处 任何命令 对于 个命令 回 回复。 可以 常工作 处 全 个槽 中 有一个 标 为 态。 明即使 中只有一 分哈希槽不 常使 整个 也会停 处 任何命令。 不 从出 到 标 为 态 时 仍 会 常 作 所以 在某些时候 仍 有可 只 处 对 个槽 其中一个子 命令 。 以下是 入 态 两 情况 少有一个哈希槽不可 因为 处 个槽 入了 态。 中 大 分主 入下 态。当大 分主 入 态时 也会 入 态。 二个检查是必 因为 将一个 从 态改变为 态 必 有大 分主 投 决 但是 当 中 大 分主 入失效 态时 单凭一个两个 是 有办 将一个 标 为 态 。 因 有了 二个检查条件 只 中 大 分主 入了下 态 么 就可以在不 些主 意 下 将某个 判断为 态 从 整个 停 处 命令 。 从 举 一旦某个主 入 态 如果 个主 有一个或多个从 存在 么其中一个从 会 升 为新 主 其他从 则会开始对 个新 主 复制。 新 主 已下 主 属下 所有从 中 举产 以下是 举 条件 个 是已下 主 从 。 已下 主 处 槽数 。 从 数据 为是可 也即是 主从 之 复制 接 断 时 不 时时 乘以 常 得出 。
  • 221.
    命令参 如果一个从 了以上 所有条件么 个从 将向 中 其他主 发 授权 它 们 是否允 己 从 升 为新 主 。 如果发 授权 从 以下属性 么主 将向从 回 授权 同 意从 升 发 授权 是一个从 并且它所属 主 处于 态。 在已下 主 所有从 中 个从 在排序中是最小 。 个从 处于 常 态 它 有 标 为 态 也 有 标 为 态。 一旦某个从 在 定 时 内得到大 分主 授权 它就会开始执 以下故 操作 数据包 告 其他 个 在是主 了。 数据包告 其他 个 是一个已升 从 。 接 所有 已下 主 处 哈希槽。 显式地向所有 广播一个 数据包 加 其他 别 个 度 不是 待定时 数据包。 所有其他 会根据新 主 对 应 更新 别地 所有 新 主 接 槽会 更新。 已下 主 所有从 会察 到 标志 并开始对新 主 复制。 如果已下 主 新回到上 态 么它会察 到 标志 并将 整为 任主 从 。 在 命周期中 如果一个带有 标 主 因为某些原因 变成了从 么 将 丢失它所带有 标 。 发布 已实 但仍 改善 在一个 中 客户 可以 任意一个 也可以向任意一个 发 信息 会对客户 所 发 信息 发。 在 前 实 中 会将接收到 信息广播 中 其他所有 在将来 实 中 可 会使 或 其他 来优化 一操作。 录 实 参 发布 已实 但仍 改善
  • 222.
  • 223.
  • 224.
  • 225.
    关于 本文档 权归 官方所有。 关文档 可以 时 文档 最新更新 有任何 、意 或建 可以在文档 套 坛 或 接 。 本文档是 和 中文 所有 命令文档均已 完 最 一 分主 文档 如事务、持久化、复制、 、 文 也已 完 。 文档 前描 内容以 本为准 查 可以了 本文档对 所做 更新。 你可以 址 在 本文档 也可以下 格式 或 格式 本。
  • 226.
  • 227.
    捐 支持本文档 对 文档更新并及时地 大 时 和 力 如果你喜欢 个《 命令 参 》文档 可以 捐 方式 支持 对 文档 并将 个文档更好地 护下 去。 捐 地址