本文主要记录一下redis内部命令。
命令总览:
1.MIGRATE
2.DUMP
3.RESTORE
4.SYNC
5.PSYNC
命令介绍:
1.MIGRATE
可用版本: >=2.6.0
时间复杂度: O(N)
命令格式: MIGRATE host post key destination-db timeout [copy] [replace]
作用:
将key原子性的从实例传送到目标实例的指定数据库中,并删除当前实例中的key。
返回值:
迁移成功返回OK,失败返回相应Error信息。
其他:
这个命令实际是在源实例上执行dump与del命令,在目标实例执行restore命令。
timeout参数以毫秒为单位,该参数设置得是数据传送的最大时间,而不是整个操作的最大时间。
copy参数,不删除源实例上的key。
replace参数,替换目标实例上已经存在的key。
2.DUMP
可用版本: >=2.6.0
时间复杂度: 查找给定键的复杂度为 O(1) ,对键进行序列化的复杂度为 O(N*M) ,其中 N 是构成 key 的 Redis 对象的数量,而 M 则是这些对象的平均大小。如果序列化的对象是比较小的字符串,那么复杂度为 O(1)
命令格式: DUMP key
作用:
序列化给定的key,并返回被序列化的值。
其他:
它带有 64 位的校验和,用于检测错误, RESTORE 在进行反序列化之前会先检查校验和。
值的编码格式和 RDB 文件保持一致。
RDB 版本会被编码在序列化值当中,如果因为 Redis 的版本不同造成 RDB 格式不兼容,那么 Redis 会拒绝对这个值进行反序列化操作。
序列化的值不包括任何生存时间信息。
返回值:
如果 key 不存在,那么返回 nil 。 否则,返回序列化之后的值。
3.RESTORE
可用版本: >=2.6.0
时间复杂度: 查找给定键的复杂度为 O(1) ,对键进行反序列化的复杂度为 O(N*M) ,其中 N 是构成 key 的 Redis 对象的数量,而 M 则是这些对象的平均大小。 有序集合(sorted set)的反序列化复杂度为 O(N*M*log(N)) ,因为有序集合每次插入的复杂度为 O(log(N)) 。 如果反序列化的对象是比较小的字符串,那么复杂度为 O(1)
命令格式: RESTORE key ttl serialized-value [REPLACE]
作用:
反序列化给定的序列化值,并将它和给定的 key 关联。
其他:
参数 ttl 以毫秒为单位为 key 设置生存时间;如果 ttl 为 0 ,那么不设置生存时间。
RESTORE 在执行反序列化之前会先对序列化值的 RDB 版本和数据校验和进行检查,如果 RDB 版本不相同或者数据不完整的话,那么 RESTORE 会拒绝进行反序列化,并返回一个错误。
如果键 key 已经存在, 并且给定了 REPLACE 选项, 那么使用反序列化得出的值来代替键 key 原有的值; 相反地, 如果键 key 已经存在, 但是没有给定 REPLACE 选项, 那么命令返回一个错误。
返回值:
如果反序列化成功那么返回 OK ,否则返回一个错误。
4.SYNC
可用版本: >=1.0.0
时间复杂度: O(N)
命令格式: SYNC
作用:
用于复制功能(replication)的内部命令。
返回值:
序列化数据。
4.PSYNC
可用版本: >=2.8.0
命令格式: SYNC master_run_id offset
作用:
用于复制功能(replication)的内部命令。
返回值:
序列化数据。