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 访问了。 |