Redis命令总结

本工具列举Redis的常用命令行及注解,以便开发人员对Redis应用操作更得心应手。
提示:下面按Redis命令参数展示的语法解释和详细说明,数据较多请按 Ctrl + F 快速查找。

1、连接操作命令

命令 语法 返回值 说明
quit redis 127.0.0.1:6379> QUIT 总是返回 OK 命令用于关闭与当前客户端与redis服务的连接。
一旦所有等待中的回复(如果有的话)顺利写入到客户端,连接就会被关闭。
auth redis 127.0.0.1:6379> AUTH PASSWORD 密码匹配时返回 OK ,否则返回一个错误。 检测给定的密码和配置文件中的密码是否相符。

2、对value操作的命令

命令 语法 返回值 说明
exists redis 127.0.0.1:6379> EXISTS key [key ...] 若 key 存在返回 1 ,否则返回 0 。 用于检查给定 key 是否存在。
del redis 127.0.0.1:6379> DEL KEY_NAME 被删除 key 的数量。 用于删除已存在的键。不存在的 key 会被忽略。
type redis 127.0.0.1:6379> TYPE KEY_NAME 返回 key 的数据类型,数据类型有:none (key不存在)、string (字符串)、list (列表)、set (集合)、zset (有序集)、hash (哈希表) 用于返回 key 所储存的值的类型。
keys redis 127.0.0.1:6379> KEYS PATTERN 符合给定模式的 key 列表 (Array)。 用于查找所有符合给定模式 pattern 的 key 。
randomkey redis 127.0.0.1:6379> RANDOMKEY 当数据库不为空时,返回一个 key 。 当数据库为空时,返回 nil (windows 系统返回 null)。 从当前数据库中随机返回一个 key 。
rename redis 127.0.0.1:6379> RENAME OLD_KEY_NAME NEW_KEY_NAME 改名成功时提示 OK ,失败时候返回一个错误。
当 OLD_KEY_NAME 和 NEW_KEY_NAME 相同,或者 OLD_KEY_NAME 不存在时,返回一个错误。
当 NEW_KEY_NAME 已经存在时, RENAME 命令将覆盖旧值。
用于修改 key 的名称 。
dbsize redis 127.0.0.1:6379> DBSIZE 当前数据库的 key 的数量。 用于返回当前数据库的 key 的数量。
expire redis 127.0.0.1:6379> EXPIRE KEY_NAME TIME_IN_SECONDS 设置成功返回 1 。 当 key 不存在或者不能为 key 设置过期时间时(比如在低于 2.1.3 版本的 Redis 中你尝试更新 key 的过期时间)返回 0 。 用于设置 key 的过期时间,key 过期后将不再可用。单位以秒计。
ttl redis 127.0.0.1:6379> TTL KEY_NAME 当 key 不存在时,返回 -2 。 当 key 存在但没有设置剩余生存时间时,返回 -1 。
否则,以秒为单位,返回 key 的剩余生存时间。
注意:在 Redis 2.8 以前,当 key 不存在,或者 key 没有设置剩余生存时间时,命令都返回 -1 。
以秒为单位返回 key 的剩余过期时间。
select redis 127.0.0.1:6379> SELECT index 总是返回 OK 。 用于切换到指定的数据库,数据库索引号 index 用数字值指定,以 0 作为起始索引值。
move redis 127.0.0.1:6379> MOVE KEY_NAME DB_INDEX 移动成功返回 1 ,失败则返回 0 。 用于将当前数据库的 key 移动到给定的数据库 db 当中。
flushdb redis 127.0.0.1:6379> FLUSHDB 总是返回 OK 。 用于清空当前数据库中的所有 key。
flushall redis 127.0.0.1:6379> FLUSHALL 总是返回 OK 。 用于清空整个 Redis 服务器的数据(删除所有数据库的所有 key )。

3、对String操作的命令

命令 语法 返回值 说明
set redis 127.0.0.1:6379> SET KEY_NAME VALUE 在 Redis 2.6.12 以前版本, SET 命令总是返回 OK 。
从 Redis 2.6.12 版本开始, SET 在设置操作成功完成时,才返回 OK 。
用于设置给定 key 的值。如果 key 已经存储其他值, SET 就覆写旧值,且无视类型。
get redis 127.0.0.1:6379> GET KEY_NAME 返回 key 的值,如果 key 不存在时,返回 nil。 如果 key 不是字符串类型,那么返回一个错误。 用于获取指定 key 的值。如果 key 不存在,返回 nil 。如果key 储存的值不是字符串类型,返回一个错误。
getset redis 127.0.0.1:6379> GETSET KEY_NAME VALUE 返回给定 key 的旧值。 当 key 没有旧值时,即 key 不存在时,返回 nil 。
当 key 存在但不是字符串类型时,返回一个错误。
用于设置指定 key 的值,并返回 key 的旧值。
mget redis 127.0.0.1:6379> MGET KEY1 KEY2 .. KEYN 一个包含所有给定 key 的值的列表。 返回所有(一个或多个)给定 key 的值。 如果给定的 key 里面,有某个 key 不存在,那么这个 key 返回特殊值 nil 。
setnx redis 127.0.0.1:6379> SETNX KEY_NAME VALUE 设置成功,返回 1 。 设置失败,返回 0 。 在指定的 key 不存在时,为 key 设置指定的值。
setex redis 127.0.0.1:6379> SETEX KEY_NAME TIMEOUT VALUE 设置成功时返回 OK 。 为指定的 key 设置值及其过期时间。如果 key 已经存在, SETEX 命令将会替换旧的值。
mset redis 127.0.0.1:6379> MSET key1 value1 key2 value2 .. keyN valueN 总是返回 OK 。 用于同时设置一个或多个 key-value 对。
msetnx redis 127.0.0.1:6379> MSETNX key1 value1 key2 value2 .. keyN valueN 当所有 key 都成功设置,返回 1 。 如果所有给定 key 都设置失败(至少有一个 key 已经存在),那么返回 0 。 用于所有给定 key 都不存在时,同时设置一个或多个 key-value 对。
incr redis 127.0.0.1:6379> INCR KEY_NAME 执行 INCR 命令之后 key 的值。 将 key 中储存的数字值增一。
如果 key 不存在,那么 key 的值会先被初始化为 0 ,然后再执行 INCR 操作。
如果值包含错误的类型,或字符串类型的值不能表示为数字,那么返回一个错误。
本操作的值限制在 64 位(bit)有符号数字表示之内。
incrby redis 127.0.0.1:6379> INCRBY KEY_NAME INCR_AMOUNT 加上指定的增量值之后, key 的值。 将 key 中储存的数字加上指定的增量值。
如果 key 不存在,那么 key 的值会先被初始化为 0 ,然后再执行 INCRBY 命令。
如果值包含错误的类型,或字符串类型的值不能表示为数字,那么返回一个错误。
本操作的值限制在 64 位(bit)有符号数字表示之内。
decr redis 127.0.0.1:6379> DECR KEY_NAME 执行命令之后 key 的值。 将 key 中储存的数字值减一。
如果 key 不存在,那么 key 的值会先被初始化为 0 ,然后再执行 DECR 操作。
如果值包含错误的类型,或字符串类型的值不能表示为数字,那么返回一个错误。
本操作的值限制在 64 位(bit)有符号数字表示之内。
decrby redis 127.0.0.1:6379> DECRBY KEY_NAME DECREMENT_AMOUNT 减去指定减量值之后, key 的值。 将 key 所储存的值减去指定的减量值。
如果 key 不存在,那么 key 的值会先被初始化为 0 ,然后再执行 DECRBY 操作。
如果值包含错误的类型,或字符串类型的值不能表示为数字,那么返回一个错误。
本操作的值限制在 64 位(bit)有符号数字表示之内。
append redis 127.0.0.1:6379> APPEND KEY_NAME NEW_VALUE 追加指定值之后, key 中字符串的长度。 用于为指定的 key 追加值。
如果 key 已经存在并且是一个字符串, APPEND 命令将 value 追加到 key 原来的值的末尾。
如果 key 不存在, APPEND 就简单地将给定 key 设为 value ,就像执行 SET key value 一样。
getrange redis 127.0.0.1:6379> GETRANGE KEY_NAME START STOP 截取得到的子字符串。 用于获取存储在指定 key 中字符串的子字符串。字符串的截取范围由 start 和 end 两个偏移量决定(包括 start 和 end 在内)。

4、对List操作的命令

命令 语法 返回值 说明
rpush redis 127.0.0.1:6379> RPUSH KEY_NAME VALUE1..VALUEN 执行 RPUSH 操作后,列表的长度。 用于将一个或多个值插入到列表的尾部(最右边)。
如果列表不存在,一个空列表会被创建并执行 RPUSH 操作。 当列表存在但不是列表类型时,返回一个错误。
注意:在 Redis 2.4 版本以前的 RPUSH 命令,都只接受单个 value 值。
lpush redis 127.0.0.1:6379> LPUSH KEY_NAME VALUE1.. VALUEN 执行 LPUSH 命令后,列表的长度。 将一个或多个值插入到列表头部。 如果 key 不存在,一个空列表会被创建并执行 LPUSH 操作。
当 key 存在但不是列表类型时,返回一个错误。
注意:在Redis 2.4版本以前的 LPUSH 命令,都只接受单个 value 值。
llen redis 127.0.0.1:6379> LLEN KEY_NAME 列表的长度。 用于返回列表的长度。
如果列表 key 不存在,则 key 被解释为一个空列表,返回 0 。
如果 key 不是列表类型,返回一个错误。
lrange redis 127.0.0.1:6379> LRANGE KEY_NAME START END 一个列表,包含指定区间内的元素。 返回列表中指定区间内的元素,区间以偏移量 START 和 END 指定。
其中 0 表示列表的第一个元素, 1 表示列表的第二个元素,以此类推。
你也可以使用负数下标,以 -1 表示列表的最后一个元素, -2 表示列表的倒数第二个元素,以此类推。
ltrim redis 127.0.0.1:6379> LTRIM KEY_NAME START STOP 命令执行成功时,返回 ok 。 对一个列表进行修剪(trim),就是说,让列表只保留指定区间内的元素,不在指定区间之内的元素都将被删除。
下标 0 表示列表的第一个元素,以 1 表示列表的第二个元素,以此类推。
你也可以使用负数下标,以 -1 表示列表的最后一个元素, -2 表示列表的倒数第二个元素,以此类推。
lindex redis 127.0.0.1:6379> LINDEX KEY_NAME INDEX_POSITION 列表中下标为指定索引值的元素。如果指定索引值不在列表的区间范围内,返回 nil 。 用于通过索引获取列表中的元素。你也可以使用负数下标,
以 -1 表示列表的最后一个元素, -2 表示列表的倒数第二个元素,以此类推。
lset redis 127.0.0.1:6379> LSET KEY_NAME INDEX VALUE 操作成功返回 ok ,否则返回错误信息。 通过索引来设置元素的值。
当索引参数超出范围,或对一个空列表进行 LSET 时,返回一个错误。
lrem redis 127.0.0.1:6379> LREM key count VALUE 被移除元素的数量。列表不存在时返回 0 。 根据参数 COUNT 的值,移除列表中与参数 VALUE 相等的元素。
COUNT 的值可以是以下几种:
count > 0 : 从表头开始向表尾搜索,移除与 VALUE 相等的元素,数量为 COUNT 。
count < 0 : 从表尾开始向表头搜索,移除与 VALUE 相等的元素,数量为 COUNT 的绝对值。
count = 0 : 移除表中所有与 VALUE 相等的值。
lpop redis 127.0.0.1:6379> LPOP KEY_NAME 列表的第一个元素。当列表 key 不存在时,返回 nil 。 用于移除并返回列表的第一个元素。
rpop redis 127.0.0.1:6379> RPOP KEY_NAME 被移除的元素。当列表不存在时,返回 nil 。 用于移除列表的最后一个元素,返回值为移除的元素。
brpop redis 127.0.0.1:6379> BRPOPLPUSH LIST1 ANOTHER_LIST TIMEOUT 假如在指定时间内没有任何元素被弹出,则返回一个 nil 和等待时长。
反之,返回一个含有两个元素的列表,第一个元素是被弹出元素的值,第二个元素是等待时长。
从列表中取出最后一个元素,并插入到另外一个列表的头部;
如果列表没有元素会阻塞列表直到等待超时或发现可弹出元素为止。
rpoplpush redis 127.0.0.1:6379> RPOPLPUSH SOURCE_KEY_NAME DESTINATION_KEY_NAME 被弹出的元素。 用于移除列表的最后一个元素,并将该元素添加到另一个列表并返回。

5、对Set操作的命令

命令 语法 返回值 说明
sadd redis 127.0.0.1:6379> SADD KEY_NAME VALUE1..VALUEN 被添加到集合中的新元素的数量,不包括被忽略的元素。 将一个或多个成员元素加入到集合中,已经存在于集合的成员元素将被忽略。
假如集合 key 不存在,则创建一个只包含添加的元素作成员的集合。
当集合 key 不是集合类型时,返回一个错误。
注意:在 Redis2.4 版本以前, SADD 只接受单个成员值。
srem redis 127.0.0.1:6379> SREM KEY MEMBER1..MEMBERN 被成功移除的元素的数量,不包括被忽略的元素。 用于移除集合中的一个或多个成员元素,不存在的成员元素会被忽略。
当 key 不是集合类型,返回一个错误。
在 Redis 2.4 版本以前, SREM 只接受单个成员值。
spop redis 127.0.0.1:6379> SPOP key [count] 被移除的随机元素。当集合不存在或是空集时,返回 nil 。 用于移除集合中的指定 key 的一个或多个随机元素,移除后会返回移除的元素。
该命令类似 Srandmember 命令,但 SPOP 将随机元素从集合中移除并返回,而 Srandmember 则仅仅返回随机元素,而不对集合进行任何改动。
smove redis 127.0.0.1:6379> SMOVE SOURCE DESTINATION MEMBER 如果成员元素被成功移除,返回 1 。 如果成员元素不是 source 集合的成员,
并且没有任何操作对 destination 集合执行,那么返回 0 。
将指定成员 member 元素从 source 集合移动到 destination 集合。
SMOVE 是原子性操作。
如果 source 集合不存在或不包含指定的 member 元素,则 SMOVE 命令不执行任何操作,仅返回 0 。
否则, member 元素从 source 集合中被移除,并添加到 destination 集合中去。
当 destination 集合已经包含 member 元素时, SMOVE 命令只是简单地将 source 集合中的 member 元素删除。
当 source 或 destination 不是集合类型时,返回一个错误。
scard redis 127.0.0.1:6379> SCARD KEY_NAME 集合的数量。当集合 key 不存在时,返回 0 。 返回集合中元素的数量。
sismember redis 127.0.0.1:6379> SISMEMBER KEY VALUE 如果成员元素是集合的成员,返回 1 。
如果成员元素不是集合的成员,或 key 不存在,返回 0 。
判断成员元素是否是集合的成员。
sinter redis 127.0.0.1:6379> SINTER KEY KEY1..KEYN 交集成员的列表。 返回给定所有给定集合的交集。不存在的集合 key 被视为空集。
当给定集合当中有一个空集时,结果也为空集(根据集合运算定律)。
sinterstore redis 127.0.0.1:6379> SINTERSTORE DESTINATION_KEY KEY KEY1..KEYN 返回存储交集的集合的元素数量。 将给定集合之间的交集存储在指定的集合中。如果指定的集合已经存在,则将其覆盖。
sunion redis 127.0.0.1:6379> SUNION KEY KEY1..KEYN 并集成员的列表。 返回给定集合的并集。不存在的集合 key 被视为空集。
sunionstore redis 127.0.0.1:6379> SUNIONSTORE destination key [key ...] 结果集中的元素数量。 将给定集合的并集存储在指定的集合 destination 中。如果 destination 已经存在,则将其覆盖。
sdiff redis 127.0.0.1:6379> SDIFF FIRST_KEY OTHER_KEY1..OTHER_KEYN 包含差集成员的列表。 返回第一个集合与其他集合之间的差异,也可以认为说第一个集合中独有的元素。
不存在的集合 key 将视为空集。
差集的结果来自前面的 FIRST_KEY ,而不是后面的 OTHER_KEY1,也不是整个 FIRST_KEY OTHER_KEY1..OTHER_KEYN 的差集。
sdiffstore redis 127.0.0.1:6379> SDIFFSTORE DESTINATION_KEY KEY1..KEYN 结果集中的元素数量。 将给定集合之间的差集存储在指定的集合中。如果指定的集合 key 已存在,则会被覆盖。
smembers redis 127.0.0.1:6379> SMEMBERS KEY 集合中的所有成员。 返回集合中的所有的成员。 不存在的集合 key 被视为空集合。
srandmember redis 127.0.0.1:6379> SRANDMEMBER KEY [count] 只提供集合 key 参数时,返回一个元素;如果集合为空,返回 nil 。
如果提供了 count 参数,那么返回一个数组;如果集合为空,返回空数组。
用于返回集合中的一个随机元素。
从 Redis 2.6 版本开始, Srandmember 命令接受可选的 count 参数:
如果 count 为正数,且小于集合基数,那么命令返回一个包含 count 个元素的数组,数组中的元素各不相同。如果 count 大于等于集合基数,那么返回整个集合。
如果 count 为负数,那么命令返回一个数组,数组中的元素可能会重复出现多次,而数组的长度为 count 的绝对值。
该操作和 SPOP 相似,但 SPOP 将随机元素从集合中移除并返回,而 Srandmember 则仅仅返回随机元素,而不对集合进行任何改动。

6、对zset(sorted set)操作的命令

命令 语法 返回值 说明
zadd redis 127.0.0.1:6379> ZADD KEY_NAME SCORE1 VALUE1.. SCOREN VALUEN 被成功添加的新成员的数量,不包括那些被更新的、已经存在的成员。 用于将一个或多个成员元素及其分数值加入到有序集当中。
如果某个成员已经是有序集的成员,那么更新这个成员的分数值,并通过重新插入这个成员元素,来保证该成员在正确的位置上。
分数值可以是整数值或双精度浮点数。
如果有序集合 key 不存在,则创建一个空的有序集并执行 ZADD 操作。
当 key 存在但不是有序集类型时,返回一个错误。
注意:在 Redis 2.4 版本以前, ZADD 每次只能添加一个元素。
zrem redis 127.0.0.1:6379> ZREM key member [member ...] 被成功移除的成员的数量,不包括被忽略的成员。 用于移除有序集中的一个或多个成员,不存在的成员将被忽略。
当 key 存在但不是有序集类型时,返回一个错误。
注意:在 Redis 2.4 版本以前, ZREM 每次只能删除一个元素。
zincrby redis 127.0.0.1:6379> ZINCRBY KEY INCREMENT MEMBER 字符串回复,成员的新分数(双精度浮点数),以字符串表示。 将有序集合中成员的分数递增increment。
如果成员不存在于有序集合中,则使用increment添加成员并将其分数设置为increment(就好像其先前的分数是0.0)。
如果key不存在,则创建一个具有指定成员作为唯一成员的新有序集合。当key存在但不是有序集合时,会返回错误。
zrank redis 127.0.0.1:6379> ZRANK KEY MEMBER 如果成员是有序集 key 的成员,返回 member 的排名。
如果成员不是有序集 key 的成员,返回 nil 。
返回有序集中指定成员的排名。其中有序集成员按分数值递增(从小到大)顺序排列。
zrevrank redis 127.0.0.1:6379> ZREVRANK KEY MEMBER 如果成员是有序集 key 的成员,返回成员的排名。
如果成员不是有序集 key 的成员,返回 nil 。
返回有序集中成员的排名。其中有序集成员按分数值递减(从大到小)排序。
排名以 0 为底,也就是说, 分数值最大的成员排名为 0 。
使用 ZRANK 命令可以获得成员按分数值递增(从小到大)排列的排名。
zrange redis 127.0.0.1:6379> ZRANGE key START STOP [WITHSCORES] 指定区间内,带有分数值(可选)的有序集成员的列表。 返回有序集中,指定区间内的成员。
其中成员的位置按分数值递增(从小到大)来排序。
具有相同分数值的成员按字典序(lexicographical order )来排列。
如果你需要成员按值递减(从大到小)来排列。
下标参数 start 和 stop 都以 0 为底,也就是说,以 0 表示有序集第一个成员,以 1 表示有序集第二个成员,以此类推。
你也可以使用负数下标,以 -1 表示最后一个成员, -2 表示倒数第二个成员,以此类推。
zrevrange redis 127.0.0.1:6379> SINTER KEY KEY1..KEYN ZREVRANGE key start stop [WITHSCORES] 指定区间内,带有分数值(可选)的有序集成员的列表。
其中成员的位置按分数值递减(从大到小)来排列。
具有相同分数值的成员按字典序的逆序(reverse lexicographical order)排列。
除了成员按分数值递减的次序排列这一点外, ZREVRANGE 命令的其他方面和 ZRANGE 命令一样。
zrangebyscore redis 127.0.0.1:6379> ZREMRANGEBYSCORE KEY MIN MAX 被移除成员的数量。 用于移除有序集中,指定分数(score)区间内的所有成员。
zcount redis 127.0.0.1:6379> ZCOUNT KEY MIN MAX 分数值在 min 和 max 之间的成员的数量。 用于计算有序集合中指定分数区间的成员数量。
zcard redis 127.0.0.1:6379> ZCARD KEY_NAME 当 key 存在且是有序集类型时,返回有序集的基数。 当 key 不存在时,返回 0 。 用于计算集合中元素的数量。
zscore redis 127.0.0.1:6379> ZSCORE KEY MEMBER 成员的分数值,以字符串形式表示。 返回有序集中,成员的分数值。 如果成员元素不是有序集 key 的成员,或 key 不存在,返回 nil 。
zremrangebyrank redis 127.0.0.1:6379> ZREMRANGEBYRANK KEY START STOP 被移除成员的数量。 用于移除有序集中,指定排名(rank)区间内的所有成员。
zremrangebyscore redis 127.0.0.1:6379> ZREMRANGEBYSCORE KEY MIN MAX 被移除成员的数量。 用于移除有序集中,指定分数(score)区间内的所有成员。
zunionstore redis 127.0.0.1:6379> ZUNIONSTORE destination numkeys key [key ...] [WEIGHTS weight [weight ...]] [AGGREGATE SUM|MIN|MAX] 保存到 destination 的结果集的成员数量。 计算给定的一个或多个有序集的并集,其中给定 key 的数量必须以 numkeys 参数指定,并将该并集(结果集)储存到 destination 。
默认情况下,结果集中某个成员的分数值是所有给定集下该成员分数值之和 。
zinterstore redis 127.0.0.1:6379> ZINTERSTORE destination numkeys key [key ...] [WEIGHTS weight [weight ...]] [AGGREGATE sum|min|max] 保存到目标结果集的的成员数量。 用于计算多个有序集合的交集,并将结果存储在新的有序集合中。
Zinterstore 命令对于需要对有序集合进行集合运算(例如计算交集)时非常有用。
默认情况下,结果集中某个成员的分数值是所有给定集下该成员分数值之和。

7、对Hash操作的命令

命令 语法 返回值 说明
hset redis 127.0.0.1:6379> HSET KEY_NAME FIELD VALUE 如果字段是哈希表中的一个新建字段,并且值设置成功,返回 1 。
如果哈希表中域字段已经存在且旧值已被新值覆盖,返回 0 。
用于为哈希表中的字段赋值 。
如果哈希表不存在,一个新的哈希表被创建并进行 HSET 操作。
如果字段已经存在于哈希表中,旧值将被覆盖。
hget redis 127.0.0.1:6379> HGET KEY_NAME FIELD_NAME 返回给定字段的值。如果给定的字段或 key 不存在时,返回 nil 。 用于返回哈希表中指定字段的值。
hmget redis 127.0.0.1:6379> HMGET KEY_NAME FIELD1...FIELDN 一个包含多个给定字段关联值的表,表值的排列顺序和指定字段的请求顺序一样。 用于返回哈希表中,一个或多个给定字段的值。
如果指定的字段不存在于哈希表,那么返回一个 nil 值。
hmset redis 127.0.0.1:6379> HMSET KEY_NAME FIELD1 VALUE1 ...FIELDN VALUEN 如果命令执行成功,返回 OK 。 用于同时将多个 field-value (字段-值)对设置到哈希表中。
此命令会覆盖哈希表中已存在的字段。
如果哈希表不存在,会创建一个空哈希表,并执行 HMSET 操作。
hincrby redis 127.0.0.1:6379> HINCRBY KEY_NAME FIELD_NAME INCR_BY_NUMBER 执行 HINCRBY 命令之后,哈希表中字段的值。 用于为哈希表中的字段值加上指定增量值。
增量也可以为负数,相当于对指定字段进行减法操作。
如果哈希表的 key 不存在,一个新的哈希表被创建并执行 HINCRBY 命令。
如果指定的字段不存在,那么在执行命令前,字段的值被初始化为 0 。
对一个储存字符串值的字段执行 HINCRBY 命令将造成一个错误。
本操作的值被限制在 64 位(bit)有符号数字表示之内。
hexists redis 127.0.0.1:6379> HEXISTS KEY_NAME FIELD_NAME 如果哈希表含有给定字段,返回 1 。如果哈希表不含有给定字段,或 key 不存在,返回 0 。 用于查看哈希表的指定字段是否存在。
hdel redis 127.0.0.1:6379> HDEL KEY_NAME FIELD1.. FIELDN 被成功删除字段的数量,不包括被忽略的字段。 用于删除哈希表 key 中的一个或多个指定字段,不存在的字段将被忽略。
hlen redis 127.0.0.1:6379> HLEN KEY_NAME 哈希表中字段的数量。当 key 不存在时,返回 0 。 用于获取哈希表中字段的数量。
hkeys redis 127.0.0.1:6379> HKEYS KEY_NAME 包含哈希表中所有域(field)列表。 当 key 不存在时,返回一个空列表。 用于获取哈希表中的所有域(field)。
hvals redis 127.0.0.1:6379> HVALS KEY_NAME 一个包含哈希表中所有值的列表。当 key 不存在时,返回一个空表。 返回哈希表所有的值。
hgetall redis 127.0.0.1:6379> HGETALL KEY_NAME 以列表形式返回哈希表的字段及字段值。 若 key 不存在,返回空列表。 用于返回哈希表中,所有的字段和值。
在返回值里,紧跟每个字段名(field name)之后是字段的值(value),所以返回值的长度是哈希表大小的两倍。

8、持久化

命令 语法 返回值 说明
save redis 127.0.0.1:6379> SAVE 保存成功时返回 OK 。 执行一个同步保存操作,将当前 Redis 实例的所有数据快照(snapshot)以 RDB 文件的形式保存到硬盘。
bgsave redis 127.0.0.1:6379> BGSAVE 反馈信息。 用于在后台异步保存当前数据库的数据到磁盘。
BGSAVE 命令执行之后立即返回 OK ,然后 Redis fork 出一个新子进程,原来的 Redis 进程(父进程)继续处理客户端请求,而子进程则负责将数据保存到磁盘,然后退出。
lastsave redis 127.0.0.1:6379> LASTSAVE 字符串,文本行的集合。 返回最近一次 Redis 成功将数据保存到磁盘上的时间,以 UNIX 时间戳格式表示。
shundown redis 127.0.0.1:6379> SHUTDOWN [NOSAVE] [SAVE] 执行失败时返回错误。 执行成功时不返回任何信息,服务器和客户端的连接断开,客户端自动退出。 停止所有客户端
如果有至少一个保存点在等待,执行 SAVE 命令
如果 AOF 选项被打开,更新 AOF 文件
关闭 redis 服务器(server)

9、远程服务控制

命令 语法 返回值 说明
info redis 127.0.0.1:6379> INFO [section] 字符串,文本行的集合。 以一种易于理解和阅读的格式,返回关于 Redis 服务器的各种信息和统计数值。
monitor redis 127.0.0.1:6379> MONITOR 总是返回 OK 。 用于实时打印出 Redis 服务器接收到的命令,调试用。
slaveof redis 127.0.0.1:6379> SLAVEOF host port 总是返回 OK 。 可以将当前服务器转变为指定服务器的从属服务器(slave server)。
如果当前服务器已经是某个主服务器(master server)的从属服务器,那么执行 SLAVEOF host port 将使当前服务器停止对旧主服务器的同步,丢弃旧数据集,转而开始对新主服务器进行同步。
另外,对一个从属服务器执行命令 SLAVEOF NO ONE 将使得这个从属服务器关闭复制功能,并从从属服务器转变回主服务器,原来同步所得的数据集不会被丢弃。
利用『 SLAVEOF NO ONE 不会丢弃同步所得数据集』这个特性,可以在主服务器失败的时候,将从属服务器用作新的主服务器,从而实现无间断运行。
config set redis 127.0.0.1:6379> CONFIG Set parameter value 当设置成功时返回 OK ,否则返回一个错误。 可以动态地调整 Redis 服务器的配置(configuration)而无须重启。
你可以使用它修改配置参数,或者改变 Redis 的持久化(Persistence)方式。
config get redis 127.0.0.1:6379> CONFIG GET parameter 给定配置参数的值。 用于获取 redis 服务的配置参数。
在 Redis 2.4 版本中, 有部分参数没有办法用 CONFIG GET 访问,但是在最新的 Redis 2.6 版本中,所有配置参数都已经可以用 CONFIG GET 访问了。