Skip to content

这是一个快速参考备忘单,其中列出了 redis 命令的示例

开始

入门

启动Redis

shell
$ redis-server

连接到 redis(Redis CLI 客户端)

shell
$ redis-cli

连接到redis(telnet)

shell
$ telnet 127.0.0.1 6379

Hello World

Ping

shell
redis> PING
PONG

Hello World

shell
redis> SET mykey "Hello world"
OK
redis> GET mykey
"Hello world"

基本数据类型

Redis 支持 5 种基本数据类型

Redis的字符串命令

APPEND

hljs
APPEND key value

例子

shell
redis> EXISTS mykey
(integer) 0
redis> APPEND mykey "Hello"
(integer) 5
redis> APPEND mykey " World"
(integer) 11
redis> GET mykey
"Hello World"

将值附加到键

BITCOUNT

hljs
BITCOUNT key [start end]

例子

shell
redis> SET mykey "foobar"
"OK"
redis> BITCOUNT mykey
(integer) 26
redis> BITCOUNT mykey 0 0
(integer) 4
redis> BITCOUNT mykey 1 1
(integer) 6

计算字符串中的设置位

BITFIELD

hljs
BITFIELD key [GET type offset] [SET type offset value] [INCRBY type offset increment] [OVERFLOW WRAP|SAT|FAIL]

例子

shell
redis> BITFIELD mykey INCRBY i5 100 1 GET u4 0
1) (integer) 1
2) (integer) 0

对字符串执行任意位域整数运算

BITOP

hljs
BITOP operation destkey key [key ...]

例子

shell
redis> SET key1 "foobar"
"OK"
redis> SET key2 "abcdef"
"OK"
redis> BITOP AND dest key1 key2
(integer) 6
redis> GET dest
"`bc`ab"

在字符串之间执行按位运算

BITPOS

hljs
BITPOS key bit [start] [end]

例子

shell
redis> SET mykey "\xff\xf0\x00"
"OK"
redis> BITPOS mykey 0
(integer) 12
redis> SET mykey "\x00\xff\xf0"
"OK"
redis> BITPOS mykey 1 0
(integer) 8
redis> BITPOS mykey 1 2
(integer) 16
redis> set mykey "\x00\x00\x00"
"OK"
redis> BITPOS mykey 1
(integer) -1

在字符串中查找第一个设置或清除的位

DECR

hljs
DECR key

例子

shell
redis> SET mykey "10"
"OK"
redis> DECR mykey
(integer) 9
redis> SET mykey "234293482390480948029348230948"
"OK"
redis> DECR mykey
ERR ERR value is not an integer or out of range

将键的整数值减一

DECRBY

hljs
DECRBY key decrement

例子

shell
redis> SET mykey "10"
"OK"
redis> DECRBY mykey 3
(integer) 7

按给定数字减少键的整数值

GET

hljs
GET key

例子

shell
redis> GET nonexisting
(nil)
redis> SET mykey "Hello"
"OK"
redis> GET mykey
"Hello"

获取一个键的值

GETBIT

hljs
GETBIT key offset

例子

shell
redis> SETBIT mykey 7 1
(integer) 0
redis> GETBIT mykey 0
(integer) 0
redis> GETBIT mykey 7
(integer) 1
redis> GETBIT mykey 100
(integer) 0

返回存储在 key 的字符串值中 offset 处的位值

GETRANGE

hljs
GETRANGE key start end

例子

shell
redis> SET mykey "This is a string"
"OK"
redis> GETRANGE mykey 0 3
"This"
redis> GETRANGE mykey -3 -1
"ing"
redis> GETRANGE mykey 0 -1
"This is a string"
redis> GETRANGE mykey 10 100
"string"

获取存储在键中的字符串的子字符串

GETSET

hljs
GETSET key value

例子

shell
redis> INCR mycounter
(integer) 1
redis> GETSET mycounter "0"
"1"
redis> GET mycounter
"0"

设置键的字符串值并返回其旧值

INCR

hljs
INCR key

例子

shell
redis> SET mykey "10"
"OK"
redis> INCR mykey
(integer) 11
redis> GET mykey
"11"

将键的整数值加一

MSETNX

hljs
MSETNX key value [key value ...]

例子

shell
redis> MSETNX key1 "Hello" key2 "there"
(integer) 1
redis> MSETNX key2 "new" key3 "world"
(integer) 0
redis> MGET key1 key2 key3
1) "Hello"
2) "there"
3) (nil)

将多个键设置为多个值,仅当不存在任何键时

INCRBYFLOAT 增量浮动

hljs
INCRBYFLOAT key increment

例子

shell
redis> SET mykey 10.50
"OK"
redis> INCRBYFLOAT mykey 0.1
"10.6"
redis> INCRBYFLOAT mykey -5
"5.6"
redis> SET mykey 5.0e3
"OK"
redis> INCRBYFLOAT mykey 2.0e2
"5200"

将键的浮点值增加给定的数量

MGET

hljs
MGET key [key ...]

例子

shell
redis> SET key1 "Hello"
"OK"
redis> SET key2 "World"
"OK"
redis> MGET key1 key2 nonexisting
1) "Hello"
2) "World"
3) (nil)

获取所有给定键的值

MSET

hljs
MSET key value [key value ...]

例子

shell
redis> MSET key1 "Hello" key2 "World"
"OK"
redis> GET key1
"Hello"
redis> GET key2
"World"

将多个键设置为多个值

INCRBY

hljs
INCRBY key increment

例子

shell
redis> SET mykey "10"
"OK"
redis> INCRBY mykey 5
(integer) 15

将键的整数值增加给定的数量

PSETEX

hljs
PSETEX key milliseconds value

例子

shell
redis> PSETEX mykey 1000 "Hello"
"OK"
redis> PTTL mykey
(integer) 1000
redis> GET mykey
"Hello"

以毫秒为单位设置键的值和到期时间

SET 设置

hljs
SET key value [EX seconds|PX milliseconds|KEEPTTL] [NX|XX] [GET]

例子

shell
redis> SET mykey "Hello"
"OK"
redis> GET mykey
"Hello"
redis> SET anotherkey "will expire in a minute" EX 60
"OK"

设置一个键的字符串值

SETBIT

hljs
SETBIT key offset value

例子

shell
redis> SETBIT mykey 7 1
(integer) 0
redis> SETBIT mykey 7 0
(integer) 1
redis> GET mykey
"\u0000"

设置或清除存储在键的字符串值中偏移处的位

SETEX

hljs
SETEX key seconds value

例子

shell
redis> SETEX mykey 10 "Hello"
"OK"
redis> TTL mykey
(integer) 10
redis> GET mykey
"Hello"

设置密钥的值和到期时间

SETNX

hljs
SETNX key value

例子

shell
redis> SETNX mykey "Hello"
(integer) 1
redis> SETNX mykey "World"
(integer) 0
redis> GET mykey
"Hello"

设置键的值,仅当键不存在时

SETRANGE

hljs
SETRANGE key offset value

例子

shell
redis> SET key1 "Hello World"
"OK"
redis> SETRANGE key1 6 "Redis"
(integer) 11
redis> GET key1
"Hello Redis"

从指定的偏移量开始覆盖键处的部分字符串

STRLEN

hljs
STRLEN key

例子

shell
redis> SET mykey "Hello world"
"OK"
redis> STRLEN mykey
(integer) 11
redis> STRLEN nonexisting
(integer) 0

获取存储在键中的值的长度

STRALGO

hljs
STRALGO LCS algo-specific-argument [algo-specific-argument ...]

例子

shell
redis> STRALGO LCS KEYS key1 key2 IDX
1) "matches"
2) 1) 1) 1) (integer) 4
         2) (integer) 7
      2) 1) (integer) 5
         2) (integer) 8
   2) 1) 1) (integer) 2
         2) (integer) 3
      2) 1) (integer) 0
         2) (integer) 1
3) "len"
4) (integer) 6

针对字符串运行算法(当前是 LCS)

Redis的设置命令

SADD

hljs
SADD key member [member ...]

例子

shell
redis> SADD myset "Hello"
(integer) 1
redis> SADD myset "World"
(integer) 1
redis> SADD myset "World"
(integer) 0
redis> SMEMBERS myset
1) "Hello"
2) "World"

将一个或多个成员添加到集合

SCARD

hljs
SCARD key

例子

shell
redis> SADD myset "Hello"
(integer) 1
redis> SADD myset "World"
(integer) 1
redis> SCARD myset
(integer) 2

获取集合中的成员数

SDIFF

hljs
SDIFF key [key ...]

例子

shell
redis> SADD key1 "a"
(integer) 1
redis> SADD key1 "b"
(integer) 1
redis> SADD key1 "c"
(integer) 1
redis> SADD key2 "c"
(integer) 1
redis> SADD key2 "d"
(integer) 1
redis> SADD key2 "e"
(integer) 1
redis> SDIFF key1 key2
1) "a"
2) "b"

减去多组

SDIFFSTORE

hljs
SDIFFSTORE destination key [key ...]

例子

shell
redis> SADD key1 "a"
(integer) 1
redis> SADD key1 "b"
(integer) 1
redis> SADD key1 "c"
(integer) 1
redis> SADD key2 "c"
(integer) 1
redis> SADD key2 "d"
(integer) 1
redis> SADD key2 "e"
(integer) 1
redis> SDIFFSTORE key key1 key2
(integer) 2
redis> SMEMBERS key
1) "a"
2) "b"

减去多个集合并将结果集合存储在一个键中

SINTER

hljs
SINTER key [key ...]

例子

shell
redis> SADD key1 "a"
(integer) 1
redis> SADD key1 "b"
(integer) 1
redis> SADD key1 "c"
(integer) 1
redis> SADD key2 "c"
(integer) 1
redis> SADD key2 "d"
(integer) 1
redis> SADD key2 "e"
(integer) 1
redis> SINTER key1 key2
1) "c"

多组相交

SINTERSTORE

hljs
SINTERSTORE destination key [key ...]

例子

shell
redis> SADD key1 "a"
(integer) 1
redis> SADD key1 "b"
(integer) 1
redis> SADD key1 "c"
(integer) 1
redis> SADD key2 "c"
(integer) 1
redis> SADD key2 "d"
(integer) 1
redis> SADD key2 "e"
(integer) 1
redis> SINTERSTORE key key1 key2
(integer) 1
redis> SMEMBERS key
1) "c"

将多个集合相交并将结果集存储在一个键中

SISMEMBER

hljs
SISMEMBER key member

例子

shell
redis> SADD myset "one"
(integer) 1
redis> SISMEMBER myset "one"
(integer) 1
redis> SISMEMBER myset "two"
(integer) 0

确定给定值是否是集合的成员

SMISMEMBER

hljs
SMISMEMBER key member [member ...]

例子

shell
redis> SADD myset "one"
(integer) 1
redis> SADD myset "one"
(integer) 0
redis> SMISMEMBER myset "one" "notamember"
1) (integer) 1
2) (integer) 0

返回与集合的给定元素相关联的成员资格

SMEMBERS

hljs
SMEMBERS key

例子

shell
redis> SADD myset "Hello"
(integer) 1
redis> SADD myset "World"
(integer) 1
redis> SMEMBERS myset
1) "Hello"
2) "World"

获取集合中的所有成员

SMOVE

hljs
SMOVE source destination member

例子

shell
redis> SADD myset "one"
(integer) 1
redis> SADD myset "two"
(integer) 1
redis> SADD myotherset "three"
(integer) 1
redis> SMOVE myset myotherset "two"
(integer) 1
redis> SMEMBERS myset
1) "one"
redis> SMEMBERS myotherset
1) "two"
2) "three"

将成员从一组移动到另一组

SPOP

hljs
SPOP key [count]

例子

shell
redis> SADD myset "one"
(integer) 1
redis> SADD myset "two"
(integer) 1
redis> SADD myset "three"
(integer) 1
redis> SPOP myset
"two"
redis> SMEMBERS myset
1) "one"
2) "three"
redis> SADD myset "four"
(integer) 1
redis> SADD myset "five"
(integer) 1
redis> SPOP myset 3
1) "four"
2) "five"
3) "three"
redis> SMEMBERS myset
1) "one"

从集合中删除并返回一个或多个随机成员

SRANDMEMBER

hljs
SRANDMEMBER key [count]

例子

shell
redis> SADD myset one two three
(integer) 3
redis> SRANDMEMBER myset
"three"
redis> SRANDMEMBER myset 2
1) "two"
2) "three"
redis> SRANDMEMBER myset -5
1) "one"
2) "two"
3) "three"
4) "three"
5) "one"

从集合中获取一个或多个随机成员

SREM

hljs
SREM key member [member ...]

例子

shell
redis> SADD myset "one"
(integer) 1
redis> SADD myset "two"
(integer) 1
redis> SADD myset "three"
(integer) 1
redis> SREM myset "one"
(integer) 1
redis> SREM myset "four"
(integer) 0
redis> SMEMBERS myset
1) "two"
2) "three"

从集合中删除一个或多个成员

SUNION

hljs
SUNION key [key ...]

例子

shell
redis> SADD key1 "a"
(integer) 1
redis> SADD key1 "b"
(integer) 1
redis> SADD key1 "c"
(integer) 1
redis> SADD key2 "c"
(integer) 1
redis> SADD key2 "d"
(integer) 1
redis> SADD key2 "e"
(integer) 1
redis> SUNION key1 key2
1) "a"
2) "c"
3) "e"
4) "b"
5) "d"

添加多组

SUNIONSTORE

hljs
SUNIONSTORE destination key [key ...]

例子

shell
redis> SADD key1 "a"
(integer) 1
redis> SADD key1 "b"
(integer) 1
redis> SADD key1 "c"
(integer) 1
redis> SADD key2 "c"
(integer) 1
redis> SADD key2 "d"
(integer) 1
redis> SADD key2 "e"
(integer) 1
redis> SUNIONSTORE key key1 key2
(integer) 5
redis> SMEMBERS key
1) "a"
2) "c"
3) "e"
4) "b"
5) "d"

添加多个集合并将结果集合存储在一个键中

Redis的列表命令

杂项

|---|-------------------------------------| | | 从列表中弹出一个元素,将其推送到另一个列表并返回;或阻塞直到有一个可用 | | | 从列表中弹出一个元素,将其推送到另一个列表并返回;或阻塞直到有一个可用 |

BLPOP

hljs
BLPOP key [key ...] timeout

例子

shell
redis> DEL list1 list2
(integer) 0
redis> RPUSH list1 a b c
(integer) 3
redis> BLPOP list1 list2 0
1) "list1"
2) "a"

删除并获取列表中的第一个元素,或阻塞直到一个可用 |

BRPOP

hljs
BRPOP key [key ...] timeout

例子

shell
redis> DEL list1 list2
(integer) 0
redis> RPUSH list1 a b c
(integer) 3
redis> BRPOP list1 list2 0
1) "list1"
2) "c"

删除并获取列表中的最后一个元素,或者阻塞直到有一个可用 |

LINDEX

hljs
LINDEX key index

例子

shell
redis> LPUSH mylist "World"
(integer) 1
redis> LPUSH mylist "Hello"
(integer) 2
redis> LINDEX mylist 0
"Hello"
redis> LINDEX mylist -1
"World"
redis> LINDEX mylist 3
(nil)

通过索引从列表中获取元素

LINSERT

hljs
LINSERT key BEFORE|AFTER pivot element

例子

shell
redis> RPUSH mylist "Hello"
(integer) 1
redis> RPUSH mylist "World"
(integer) 2
redis> LINSERT mylist BEFORE "World" "There"
(integer) 3
redis> LRANGE mylist 0 -1
1) "Hello"
2) "There"
3) "World"

在列表中的另一个元素之前或之后插入一个元素

LLEN

hljs
LLEN key

例子

shell
redis> LPUSH mylist "World"
(integer) 1
redis> LPUSH mylist "Hello"
(integer) 2
redis> LLEN mylist
(integer) 2

获取列表的长度

LPOP

hljs
LPOP key [count]

例子

shell
redis> RPUSH mylist "one"
(integer) 1
redis> RPUSH mylist "two"
(integer) 2
redis> RPUSH mylist "three"
(integer) 3
redis> LPOP mylist
"one"
redis> LRANGE mylist 0 -1
1) "two"
2) "three"

删除并获取列表中的第一个元素

LPOS

hljs
LPOS key element [RANK rank] [COUNT num-matches] [MAXLEN len]

例子

shell
redis> RPUSH mylist a b c d 1 2 3 4 3 3 3
(integer) 11
redis> LPOS mylist 3
(integer) 6
redis> LPOS mylist 3 COUNT 0 RANK 2
1) (integer) 8
2) (integer) 9
3) (integer) 10

返回列表中匹配元素的索引

LPUSH

hljs
LPUSH key element [element ...]

例子

shell
redis> LPUSH mylist "world"
(integer) 1
redis> LPUSH mylist "hello"
(integer) 2
redis> LRANGE mylist 0 -1
1) "hello"
2) "world"

将一个或多个元素添加到列表中

LPUSHX

hljs
LPUSHX key element [element ...]

例子

shell
redis> LPUSH mylist "World"
(integer) 1
redis> LPUSHX mylist "Hello"
(integer) 2
redis> LPUSHX myotherlist "Hello"
(integer) 0
redis> LRANGE mylist 0 -1
1) "Hello"
2) "World"
redis> LRANGE myotherlist 0 -1
(empty list or set)

将元素添加到列表中,仅当列表存在时

LRANGE

hljs
LRANGE key start stop

例子

shell
redis> RPUSH mylist "one"
(integer) 1
redis> RPUSH mylist "two"
(integer) 2
redis> RPUSH mylist "three"
(integer) 3
redis> LRANGE mylist 0 0
1) "one"
redis> LRANGE mylist -3 2
1) "one"
2) "two"
3) "three"
redis> LRANGE mylist -100 100
1) "one"
2) "two"
3) "three"
redis> LRANGE mylist 5 10
(empty list or set)

从列表中获取一系列元素

LREM

hljs
LREM key count element

例子

shell
redis> RPUSH mylist "hello"
(integer) 1
redis> RPUSH mylist "hello"
(integer) 2
redis> RPUSH mylist "foo"
(integer) 3
redis> RPUSH mylist "hello"
(integer) 4
redis> LREM mylist -2 "hello"
(integer) 2
redis> LRANGE mylist 0 -1
1) "hello"
2) "foo"

从列表中删除元素

LSET

hljs
LSET key index element

例子

shell
redis> RPUSH mylist "one"
(integer) 1
redis> RPUSH mylist "two"
(integer) 2
redis> RPUSH mylist "three"
(integer) 3
redis> LSET mylist 0 "four"
"OK"
redis> LSET mylist -2 "five"
"OK"
redis> LRANGE mylist 0 -1
1) "four"
2) "five"
3) "three"

通过索引设置列表中元素的值

LTRIM

hljs
LTRIM key start stop

例子

shell
redis> RPUSH mylist "one"
(integer) 1
redis> RPUSH mylist "two"
(integer) 2
redis> RPUSH mylist "three"
(integer) 3
redis> LTRIM mylist 1 -1
"OK"
redis> LRANGE mylist 0 -1
1) "two"
2) "three"

将列表修剪到指定范围

RPOP

hljs
RPOP key [count]

例子

shell
redis> RPUSH mylist "one"
(integer) 1
redis> RPUSH mylist "two"
(integer) 2
redis> RPUSH mylist "three"
(integer) 3
redis> RPOP mylist
"three"
redis> LRANGE mylist 0 -1
1) "one"
2) "two"

删除并获取列表中的最后一个元素

RPOPPUSH

hljs
RPOPLPUSH source destination

例子

shell
redis> RPUSH mylist "one"
(integer) 1
redis> RPUSH mylist "two"
(integer) 2
redis> RPUSH mylist "three"
(integer) 3
redis> RPOPLPUSH mylist myotherlist
"three"
redis> LRANGE mylist 0 -1
1) "one"
2) "two"
redis> LRANGE myotherlist 0 -1
1) "three"

删除列表中的最后一个元素,将其添加到另一个列表中并返回

LMOVE

hljs
LMOVE source destination LEFT|RIGHT LEFT|RIGHT

例子

shell
redis> RPUSH mylist "one"
(integer) 1
redis> RPUSH mylist "two"
(integer) 2
redis> RPUSH mylist "three"
(integer) 3
redis> LMOVE mylist myotherlist RIGHT LEFT
"three"
redis> LMOVE mylist myotherlist LEFT RIGHT
"one"
redis> LRANGE mylist 0 -1
1) "two"
redis> LRANGE myotherlist 0 -1
1) "three"
2) "one"

从列表中弹出一个元素,将其推送到另一个列表并返回

RPUSH

hljs
RPUSH key element [element ...]

例子

shell
redis> RPUSH mylist "hello"
(integer) 1
redis> RPUSH mylist "world"
(integer) 2
redis> LRANGE mylist 0 -1
1) "hello"
2) "world"

将一个或多个元素附加到列表中

RPUSHX

hljs
RPUSHX key element [element ...]

例子

shell
redis> RPUSH mylist "Hello"
(integer) 1
redis> RPUSHX mylist "World"
(integer) 2
redis> RPUSHX myotherlist "World"
(integer) 0
redis> LRANGE mylist 0 -1
1) "Hello"
2) "World"
redis> LRANGE myotherlist 0 -1
(empty list or set)

将元素追加到列表中,仅当列表存在时

Redis的哈希命令

HDEL

hljs
HDEL key field [field ...]

例子

shell
redis> HSET myhash field1 "foo"
(integer) 1
redis> HDEL myhash field1
(integer) 1
redis> HDEL myhash field2
(integer) 0

删除一个或多个哈希字段

HEXISTS

hljs
HEXISTS key field

例子

shell
redis> HSET myhash field1 "foo"
(integer) 1
redis> HEXISTS myhash field1
(integer) 1
redis> HEXISTS myhash field2
(integer) 0

确定哈希字段是否存在

HGET

hljs
HGET key field

例子

shell
redis> HSET myhash field1 "foo"
(integer) 1
redis> HGET myhash field1
"foo"
redis> HGET myhash field2
(nil)

获取哈希字段的值

HGETALL

hljs
HGETALL key

例子

shell
redis> HSET myhash field1 "Hello"
(integer) 1
redis> HSET myhash field2 "World"
(integer) 1
redis> HGETALL myhash
1) "field1"
2) "Hello"
3) "field2"
4) "World"

获取哈希中的所有字段和值

HINCRBY

hljs
HINCRBY key field increment

例子

shell
redis> HSET myhash field 5
(integer) 1
redis> HINCRBY myhash field 1
(integer) 6
redis> HINCRBY myhash field -1
(integer) 5
redis> HINCRBY myhash field -10
(integer) -5

将散列字段的整数值增加给定的数字

HINCRBYFLOAT

hljs
HINCRBYFLOAT key field increment

例子

shell
redis> HSET mykey field 10.50
(integer) 1
redis> HINCRBYFLOAT mykey field 0.1
"10.6"
redis> HINCRBYFLOAT mykey field -5
"5.6"
redis> HSET mykey field 5.0e3
(integer) 0
redis> HINCRBYFLOAT mykey field 2.0e2
"5200"

将哈希字段的浮点值增加给定的数量

HKEYS

hljs
HKEYS key

例子

shell
redis> HSET myhash field1 "Hello"
(integer) 1
redis> HSET myhash field2 "World"
(integer) 1
redis> HKEYS myhash
1) "field1"
2) "field2"

获取哈希中的所有字段

HLEN

hljs
HLEN key

例子

shell
redis> HSET myhash field1 "Hello"
(integer) 1
redis> HSET myhash field2 "World"
(integer) 1
redis> HLEN myhash
(integer) 2

获取哈希中的字段数

HMGET

hljs
HMGET key field [field ...]

例子

shell
redis> HSET myhash field1 "Hello"
(integer) 1
redis> HSET myhash field2 "World"
(integer) 1
redis> HMGET myhash field1 field2 nofield
1) "Hello"
2) "World"
3) (nil)

获取所有给定哈希字段的值

HMSET

hljs
HMSET key field value [field value ...]

例子

shell
redis> HMSET myhash field1 "Hello" field2 "World"
"OK"
redis> HGET myhash field1
"Hello"
redis> HGET myhash field2
"World"

将多个哈希字段设置为多个值

HSET

hljs
HSET key field value [field value ...]

例子

shell
redis> HSET myhash field1 "Hello"
(integer) 1
redis> HGET myhash field1
"Hello"

设置哈希字段的字符串值

HSETNX

hljs
HSETNX key field value

例子

shell
redis> HSETNX myhash field "Hello"
(integer) 1
redis> HSETNX myhash field "World"
(integer) 0
redis> HGET myhash field
"Hello"

设置哈希字段的值,仅当该字段不存在时

HSTRLEN

hljs
HSTRLEN key field

例子

shell
redis> HMSET myhash f1 HelloWorld f2 99 f3 -256
"OK"
redis> HSTRLEN myhash f1
(integer) 10
redis> HSTRLEN myhash f2
(integer) 2
redis> HSTRLEN myhash f3
(integer) 4

获取哈希字段值的长度

HVALS

hljs
HVALS key

例子

shell
redis> HSET myhash field1 "Hello"
(integer) 1
redis> HSET myhash field2 "World"
(integer) 1
redis> HVALS myhash
1) "Hello"
2) "World"

获取哈希中的所有值

Redis的有序集合命令

BZPOPMIN

hljs
BZPOPMIN key [key ...] timeout

例子

shell
redis> DEL zset1 zset2
(integer) 0
redis> ZADD zset1 0 a 1 b 2 c
(integer) 3
redis> BZPOPMIN zset1 zset2 0
1) "zset1"
2) "a"
3) "0"

从一个或多个排序集中删除并返回分数最低的成员,或阻止直到有一个可用

BZPOPMAX

hljs
BZPOPMAX key [key ...] timeout

例子

shell
redis> DEL zset1 zset2
(integer) 0
redis> ZADD zset1 0 a 1 b 2 c
(integer) 3
redis> BZPOPMAX zset1 zset2 0
1) "zset1"
2) "c"
3) "2"

从一个或多个排序集中删除并返回得分最高的成员,或阻止直到有一个可用

ZADD

hljs
ZADD key [NX|XX] [GT|LT] [CH] [INCR] score member [score member ...]

例子

shell
redis> ZADD myzset 1 "one"
(integer) 1
redis> ZADD myzset 1 "uno"
(integer) 1
redis> ZADD myzset 2 "two" 3 "three"
(integer) 2
redis> ZRANGE myzset 0 -1 WITHSCORES
1) "one"
2) "1"
3) "uno"
4) "1"
5) "two"
6) "2"
7) "three"
8) "3"

将一个或多个成员添加到已排序的集合中,如果已经存在则更新其分数

ZCARD

hljs
ZCARD key

例子

shell
redis> ZADD myzset 1 "one"
(integer) 1
redis> ZADD myzset 2 "two"
(integer) 1
redis> ZCARD myzset
(integer) 2

获取有序集合中的成员数

ZScore

hljs
ZSCORE key member

例子

shell
redis> ZADD myzset 1 "one"
(integer) 1
redis> ZSCORE myzset "one"
"1"

获取与排序集中的给定成员相关联的分数

ZCOUNT

hljs
ZCOUNT key min max

例子

shell
redis> ZADD myzset 1 "one"
(integer) 1
redis> ZADD myzset 2 "two"
(integer) 1
redis> ZADD myzset 3 "three"
(integer) 1
redis> ZCOUNT myzset -inf +inf
(integer) 3
redis> ZCOUNT myzset (1 3
(integer) 2

用给定值内的分数计算排序集中的成员

ZDIFF

hljs
ZDIFF numkeys key [key ...] [WITHSCORES]

例子

shell
redis> ZADD zset1 1 "one"
(integer) 1
redis> ZADD zset1 2 "two"
(integer) 1
redis> ZADD zset1 3 "three"
(integer) 1
redis> ZADD zset2 1 "one"
(integer) 1
redis> ZADD zset2 2 "two"
(integer) 1
redis> ZDIFF 2 zset1 zset2
1) "three"
redis> ZDIFF 2 zset1 zset2 WITHSCORES
1) "three"
2) "3"

减去多个排序集

ZDIFFSTORE

hljs
ZDIFFSTORE destination numkeys key [key ...]

例子

shell
redis> ZADD zset1 1 "one"
(integer) 1
redis> ZADD zset1 2 "two"
(integer) 1
redis> ZADD zset1 3 "three"
(integer) 1
redis> ZADD zset2 1 "one"
(integer) 1
redis> ZADD zset2 2 "two"
(integer) 1
redis> ZDIFFSTORE out 2 zset1 zset2
(integer) 1
redis> ZRANGE out 0 -1 WITHSCORES
1) "three"
2) "3"

减去多个排序集并将结果排序集存储在一个新键中

ZINCRBY

hljs
ZINCRBY key increment member

例子

shell
redis> ZADD myzset 1 "one"
(integer) 1
redis> ZADD myzset 2 "two"
(integer) 1
redis> ZINCRBY myzset 2 "one"
"3"
redis> ZRANGE myzset 0 -1 WITHSCORES
1) "two"
2) "2"
3) "one"
4) "3"

增加排序集中成员的分数

ZINTER

hljs
ZINTER numkeys key [key ...] [WEIGHTS weight [weight ...]] [AGGREGATE SUM|MIN|MAX] [WITHSCORES]

例子

shell
redis> ZADD zset1 1 "one"
(integer) 1
redis> ZADD zset1 2 "two"
(integer) 1
redis> ZADD zset2 1 "one"
(integer) 1
redis> ZADD zset2 2 "two"
(integer) 1
redis> ZADD zset2 3 "three"
(integer) 1
redis> ZINTER 2 zset1 zset2
1) "one"
2) "two"
redis> ZINTER 2 zset1 zset2 WITHSCORES
1) "one"
2) "2"
3) "two"
4) "4"

将多个排序集相交

ZINTERSTORE

hljs
ZINTERSTORE destination numkeys key [key ...] [WEIGHTS weight [weight ...]] [AGGREGATE SUM|MIN|MAX]

例子

shell
redis> ZADD zset1 1 "one"
(integer) 1
redis> ZADD zset1 2 "two"
(integer) 1
redis> ZADD zset2 1 "one"
(integer) 1
redis> ZADD zset2 2 "two"
(integer) 1
redis> ZADD zset2 3 "three"
(integer) 1
redis> ZINTERSTORE out 2 zset1 zset2 WEIGHTS 2 3
(integer) 2
redis> ZRANGE out 0 -1 WITHSCORES
1) "one"
2) "5"
3) "two"
4) "10"

将多个排序集相交并将结果排序集存储在一个新键中

ZLEXCOUNT

hljs
ZLEXCOUNT key min max

例子

shell
redis> ZADD myzset 0 a 0 b 0 c 0 d 0 e
(integer) 5
redis> ZADD myzset 0 f 0 g
(integer) 2
redis> ZLEXCOUNT myzset - +
(integer) 7
redis> ZLEXCOUNT myzset [b [f
(integer) 5

计算给定字典范围之间排序集中的成员数

ZPOPMAX

hljs
ZPOPMAX key [count]

例子

shell
redis> ZADD myzset 1 "one"
(integer) 1
redis> ZADD myzset 2 "two"
(integer) 1
redis> ZADD myzset 3 "three"
(integer) 1
redis> ZPOPMAX myzset
1) "three"
2) "3"

删除并返回排序集中得分最高的成员

ZPOPMIN

hljs
ZPOPMIN key [count]

例子

shell
redis> ZADD myzset 1 "one"
(integer) 1
redis> ZADD myzset 2 "two"
(integer) 1
redis> ZADD myzset 3 "three"
(integer) 1
redis> ZPOPMIN myzset
1) "one"
2) "1"

删除并返回排序集中得分最低的成员

ZRANGE

hljs
ZRANGE key start stop [WITHSCORES]

例子

shell
redis> ZADD myzset 1 "one"
(integer) 1
redis> ZADD myzset 2 "two"
(integer) 1
redis> ZADD myzset 3 "three"
(integer) 1
redis> ZRANGE myzset 0 -1
1) "one"
2) "two"
3) "three"
redis> ZRANGE myzset 2 3
1) "three"
redis> ZRANGE myzset -2 -1
1) "two"
2) "three"

按索引返回排序集中的成员范围

ZRANGEBYLEX

hljs
ZRANGEBYLEX key min max [LIMIT offset count]

例子

shell
redis> ZADD myzset 0 a 0 b 0 c 0 d 0 e 0 f 0 g
(integer) 7
redis> ZRANGEBYLEX myzset - [c
1) "a"
2) "b"
3) "c"
redis> ZRANGEBYLEX myzset - (c
1) "a"
2) "b"
redis> ZRANGEBYLEX myzset [aaa (g
1) "b"
2) "c"
3) "d"
4) "e"
5) "f"

按字典顺序返回排序集中的成员范围

ZREVRANGEBYLEX

hljs
ZREVRANGEBYLEX key max min [LIMIT offset count]

例子

shell
redis> ZADD myzset 0 a 0 b 0 c 0 d 0 e 0 f 0 g
(integer) 7
redis> ZREVRANGEBYLEX myzset [c -
1) "c"
2) "b"
3) "a"
redis> ZREVRANGEBYLEX myzset (c -
1) "b"
2) "a"
redis> ZREVRANGEBYLEX myzset (g [aaa
1) "f"
2) "e"
3) "d"
4) "c"
5) "b"

返回排序集中的成员范围,按字典序范围,从高到低的字符串排序。

ZRANGEBYSCORE

hljs
ZRANGEBYSCORE key min max [WITHSCORES] [LIMIT offset count]

例子

shell
redis> ZADD myzset 1 "one"
(integer) 1
redis> ZADD myzset 2 "two"
(integer) 1
redis> ZADD myzset 3 "three"
(integer) 1
redis> ZRANGEBYSCORE myzset -inf +inf
1) "one"
2) "two"
3) "three"
redis> ZRANGEBYSCORE myzset 1 2
1) "one"
2) "two"
redis> ZRANGEBYSCORE myzset (1 2
1) "two"
redis> ZRANGEBYSCORE myzset (1 (2
(empty list or set)

按分数返回排序集中的成员范围

ZRANK

hljs
ZRANK key member

例子

shell
redis> ZADD myzset 1 "one"
(integer) 1
redis> ZADD myzset 2 "two"
(integer) 1
redis> ZADD myzset 3 "three"
(integer) 1
redis> ZRANK myzset "three"
(integer) 2
redis> ZRANK myzset "four"
(nil)

确定有序集合中成员的索引

ZREM

hljs
ZREM key member [member ...]

例子

shell
redis> ZADD myzset 1 "one"
(integer) 1
redis> ZADD myzset 2 "two"
(integer) 1
redis> ZADD myzset 3 "three"
(integer) 1
redis> ZREM myzset "two"
(integer) 1
redis> ZRANGE myzset 0 -1 WITHSCORES
1) "one"
2) "1"
3) "three"
4) "3"

从排序集中删除一个或多个成员

ZREMRANGEBYLEX

hljs
ZREMRANGEBYLEX key min max

例子

shell
redis> ZADD myzset 0 aaaa 0 b 0 c 0 d 0 e
(integer) 5
redis> ZADD myzset 0 foo 0 zap 0 zip 0 ALPHA 0 alpha
(integer) 5
redis> ZRANGE myzset 0 -1
1) "ALPHA"
 2) "aaaa"
 3) "alpha"
 4) "b"
 5) "c"
 6) "d"
 7) "e"
 8) "foo"
 9) "zap"
10) "zip"
redis> ZREMRANGEBYLEX myzset [alpha [omega
(integer) 6
redis> ZRANGE myzset 0 -1
1) "ALPHA"
2) "aaaa"
3) "zap"
4) "zip"

删除给定字典范围之间排序集中的所有成员

ZREMRANGEBYRANK

hljs
ZREMRANGEBYRANK key start stop

例子

shell
redis> ZADD myzset 1 "one"
(integer) 1
redis> ZADD myzset 2 "two"
(integer) 1
redis> ZADD myzset 3 "three"
(integer) 1
redis> ZREMRANGEBYRANK myzset 0 1
(integer) 2
redis> ZRANGE myzset 0 -1 WITHSCORES
1) "three"
2) "3"

删除给定索引内排序集中的所有成员

ZREMRANGEBYScore

hljs
ZREMRANGEBYSCORE key min max

例子

shell
redis> ZADD myzset 1 "one"
(integer) 1
redis> ZADD myzset 2 "two"
(integer) 1
redis> ZADD myzset 3 "three"
(integer) 1
redis> ZREMRANGEBYSCORE myzset -inf (2
(integer) 1
redis> ZRANGE myzset 0 -1 WITHSCORES
1) "two"
2) "2"
3) "three"
4) "3"

删除给定分数内排序集中的所有成员

ZREVRANGE

hljs
ZREVRANGE key start stop [WITHSCORES]

例子

shell
redis> ZADD myzset 1 "one"
(integer) 1
redis> ZADD myzset 2 "two"
(integer) 1
redis> ZADD myzset 3 "three"
(integer) 1
redis> ZREVRANGE myzset 0 -1
1) "three"
2) "two"
3) "one"
redis> ZREVRANGE myzset 2 3
1) "one"
redis> ZREVRANGE myzset -2 -1
1) "two"
2) "one"

按索引返回排序集中的成员范围,分数从高到低排序

ZREVRANGEBYScore

hljs
ZREVRANGEBYSCORE key max min [WITHSCORES] [LIMIT offset count]

例子

shell
redis> ZADD myzset 1 "one"
(integer) 1
redis> ZADD myzset 2 "two"
(integer) 1
redis> ZADD myzset 3 "three"
(integer) 1
redis> ZREVRANGEBYSCORE myzset +inf -inf
1) "three"
2) "two"
3) "one"
redis> ZREVRANGEBYSCORE myzset 2 1
1) "two"
2) "one"
redis> ZREVRANGEBYSCORE myzset 2 (1
1) "two"
redis> ZREVRANGEBYSCORE myzset (2 (1
(empty list or set)

按分数返回排序集中的一系列成员,分数从高到低排序

ZREVRANK

hljs
ZREVRANK key member

例子

shell
redis> ZADD myzset 1 "one"
(integer) 1
redis> ZADD myzset 2 "two"
(integer) 1
redis> ZADD myzset 3 "three"
(integer) 1
redis> ZREVRANK myzset "one"
(integer) 2
redis> ZREVRANK myzset "four"
(nil)

确定有序集合中某个成员的索引,分数从高到低排序

ZUNION

hljs
ZUNION numkeys key [key ...] [WEIGHTS weight [weight ...]] [AGGREGATE SUM|MIN|MAX] [WITHSCORES]

例子

shell
redis> ZADD zset1 1 "one"
(integer) 1
redis> ZADD zset1 2 "two"
(integer) 1
redis> ZADD zset2 1 "one"
(integer) 1
redis> ZADD zset2 2 "two"
(integer) 1
redis> ZADD zset2 3 "three"
(integer) 1
redis> ZUNION 2 zset1 zset2
1) "one"
2) "three"
3) "two"
redis> ZUNION 2 zset1 zset2 WITHSCORES
1) "one"
2) "2"
3) "three"
4) "3"
5) "two"
6) "4"

添加多个排序集

ZMSCORE

hljs
ZMSCORE key member [member ...]

例子

shell
redis> ZADD myzset 1 "one"
(integer) 1
redis> ZADD myzset 2 "two"
(integer) 1
redis> ZMSCORE myzset "one" "two" "nofield"
1) "1"
2) "2"
3) (nil)

获取与排序集中的给定成员相关联的分数

ZUNION 商店

hljs
ZUNIONSTORE destination numkeys key [key ...] [WEIGHTS weight [weight ...]] [AGGREGATE SUM|MIN|MAX]

例子

shell
redis> ZADD zset1 1 "one"
(integer) 1
redis> ZADD zset1 2 "two"
(integer) 1
redis> ZADD zset2 1 "one"
(integer) 1
redis> ZADD zset2 2 "two"
(integer) 1
redis> ZADD zset2 3 "three"
(integer) 1
redis> ZUNIONSTORE out 2 zset1 zset2 WEIGHTS 2 3
(integer) 3
redis> ZRANGE out 0 -1 WITHSCORES
1) "one"
2) "5"
3) "three"
4) "9"
5) "two"
6) "10"

添加多个排序集并将结果排序集存储在新键中

Redis GEO 命令

GEOADD

hljs
GEOADD key longitude latitude member [longitude latitude member ...]

例子

shell
redis> GEOADD Sicily 13.361389 38.115556 "Palermo" 15.087269 37.502669 "Catania"
(integer) 2
redis> GEODIST Sicily Palermo Catania
"166274.1516"
redis> GEORADIUS Sicily 15 37 100 km
1) "Catania"
redis> GEORADIUS Sicily 15 37 200 km
1) "Palermo"
2) "Catania"

在使用排序集表示的地理空间索引中添加一个或多个地理空间项

GEOHASH

hljs
GEOHASH key member [member ...]

例子

shell
redis> GEOADD Sicily 13.361389 38.115556 "Palermo" 15.087269 37.502669 "Catania"
(integer) 2
redis> GEOHASH Sicily Palermo Catania
1) "sqc8b49rny0"
2) "sqdtr74hyu0"

将地理空间索引的成员作为标准 geohash 字符串返回

GEOPOS

hljs
GEOPOS key member [member ...]

例子

shell
redis> GEOADD Sicily 13.361389 38.115556 "Palermo" 15.087269 37.502669 "Catania"
(integer) 2
redis> GEOPOS Sicily Palermo Catania NonExisting
1) 1) "13.36138933897018433"
   2) "38.11555639549629859"
2) 1) "15.08726745843887329"
   2) "37.50266842333162032"
3) (nil)

返回地理空间索引成员的经度和纬度

GEODIST

hljs
GEODIST key member1 member2 [m|km|ft|mi]

例子

shell
redis> GEOADD Sicily 13.361389 38.115556 "Palermo" 15.087269 37.502669 "Catania"
(integer) 2
redis> GEODIST Sicily Palermo Catania
"166274.1516"
redis> GEODIST Sicily Palermo Catania km
"166.2742"
redis> GEODIST Sicily Palermo Catania mi
"103.3182"
redis> GEODIST Sicily Foo Bar
(nil)

返回地理空间索引的两个成员之间的距离

GEORADIUS

hljs
GEORADIUS key longitude latitude radius m|km|ft|mi [WITHCOORD] [WITHDIST] [WITHHASH] [COUNT count] [ASC|DESC] [STORE key] [STOREDIST key]

例子

shell
redis> GEOADD Sicily 13.361389 38.115556 "Palermo" 15.087269 37.502669 "Catania"
(integer) 2
redis> GEORADIUS Sicily 15 37 200 km WITHDIST
1) 1) "Palermo"
   2) "190.4424"
2) 1) "Catania"
   2) "56.4413"
redis> GEORADIUS Sicily 15 37 200 km WITHCOORD
1) 1) "Palermo"
   2) 1) "13.36138933897018433"
      2) "38.11555639549629859"
2) 1) "Catania"
   2) 1) "15.08726745843887329"
      2) "37.50266842333162032"
redis> GEORADIUS Sicily 15 37 200 km WITHDIST WITHCOORD
1) 1) "Palermo"
   2) "190.4424"
   3) 1) "13.36138933897018433"
      2) "38.11555639549629859"
2) 1) "Catania"
   2) "56.4413"
   3) 1) "15.08726745843887329"
      2) "37.50266842333162032"

查询表示地理空间索引的排序集,以获取与某个点的给定最大距离匹配的成员

GEORADIUSBYMEMBER

hljs
GEORADIUSBYMEMBER key member radius m|km|ft|mi [WITHCOORD] [WITHDIST] [WITHHASH] [COUNT count] [ASC|DESC] [STORE key] [STOREDIST key]

例子

shell
redis> GEOADD Sicily 13.583333 37.316667 "Agrigento"
(integer) 1
redis> GEOADD Sicily 13.361389 38.115556 "Palermo" 15.087269 37.502669 "Catania"
(integer) 2
redis> GEORADIUSBYMEMBER Sicily Agrigento 100 km
1) "Agrigento"
2) "Palermo"

查询表示地理空间索引的排序集以获取与成员的给定最大距离匹配的成员

GEOSEARCH

hljs
GEOSEARCH key [FROMMEMBER member] [FROMLONLAT longitude latitude] [BYRADIUS radius m|km|ft|mi] [BYBOX width height m|km|ft|mi] [ASC|DESC] [COUNT count] [WITHCOORD] [WITHDIST] [WITHHASH]

例子

shell
redis> GEOADD Sicily 13.361389 38.115556 "Palermo" 15.087269 37.502669 "Catania"
(integer) 2
redis> GEOADD Sicily 12.758489 38.788135 "edge1"   17.241510 38.788135 "edge2"
(integer) 2
redis> GEOSEARCH Sicily FROMLONLAT 15 37 BYRADIUS 200 km ASC
1) "Catania"
2) "Palermo"
redis> GEOSEARCH Sicily FROMLONLAT 15 37 BYBOX 400 400 km ASC
1) "Catania"
2) "Palermo"
3) "edge2"
4) "edge1"

查询表示地理空间索引的排序集以获取框或圆区域内的成员。

杂项

|---|------------------------------------------| | | 查询表示地理空间索引的排序集以获取框或圆区域内的成员,并将结果存储在另一个键中。 |

Redis Hyperloglog 命令

PFADD

hljs
PFADD key element [element ...]

例子

shell
redis> PFADD hll a b c d e f g
(integer) 1
redis> PFCOUNT hll
(integer) 7

将指定的元素添加到指定的 HyperLogLog。

PFCOUNT

hljs
PFCOUNT key [key ...]

例子

shell
redis> PFADD hll foo bar zap
(integer) 1
redis> PFADD hll zap zap zap
(integer) 0
redis> PFADD hll foo bar
(integer) 0
redis> PFCOUNT hll
(integer) 3
redis> PFADD some-other-hll 1 2 3
(integer) 1
redis> PFCOUNT hll some-other-hll
(integer) 6

返回 HyperLogLog 在 key(s) 处观察到的集合的近似基数。

PFMERGE

hljs
PFMERGE destkey sourcekey [sourcekey ...]

例子

shell
redis> PFADD hll1 foo bar zap a
(integer) 1
redis> PFADD hll2 a b c foo
(integer) 1
redis> PFMERGE hll3 hll1 hll2
"OK"
redis> PFCOUNT hll3
(integer) 6

将 N 个不同的 HyperLogLog 合并为一个。

Redis的服务器命令

命令

hljs
COMMAND

例子

shell
redis> COMMAND
1) 1) "georadius_ro"
     2) (integer) -6
     3) 1) "readonly"
        2) "movablekeys"
     4) (integer) 1
     5) (integer) 1
     6) (integer) 1
     7) 1) "@read"
        2) "@geo"
        3) "@slow"
  2) 1) "zpopmin"
     2) (integer) -2
     3) 1) "write"
        2) "fast"
  ........

获取 Redis 命令详细信息数组

杂项

|---|----------------------------------------------------------| | | 从配置的 ACL 文件重新加载 ACL | | | 将当前 ACL 规则保存在配置的 ACL 文件中 | | | 以 ACL 配置文件格式列出当前的 ACL 规则 | | | 列出所有配置的ACL规则的用户名 | | | 获取特定 ACL 用户的规则 | | | 修改或创建特定 ACL 用户的规则 | | | 删除指定的 ACL 用户和关联规则 | | | 列出 ACL 类别或类别内的命令 | | | 生成伪随机安全密码以供 ACL 用户使用 | | | 返回与当前连接关联的用户名 | | | 列出由于 ACL 到位而被拒绝的最新事件 | | | 显示有关不同子命令的有用文本 | | | 异步重写 append-only 文件 | | | 将数据集异步保存到磁盘 | | | 获取配置参数的值 | | | 使用内存配置重写配置文件 | | | 将配置参数设置为给定值 | | | 重置 INFO 返回的统计信息 | | | 返回所选数据库中的键数 | | | 获取有关密钥的调试信息 | | | 使服务器崩溃 | | | 从所有数据库中删除所有键 | | | 从当前数据库中删除所有密钥 | | | 展示一些计算机艺术和Redis版本 | | | 获取上次成功保存到磁盘的 UNIX 时间戳 | | | 输出内存问题报告 | | | 显示有关不同子命令的有用文本 | | | 显示分配器内部统计信息 | | | 要求分配器释放内存 | | | 显示内存使用详情 | | | 估计一个键的内存使用情况 | | | 列出服务器加载的所有模块 | | | 加载模块 | | | 卸载模块 | | | 实时监听服务器收到的所有请求 | | | 将数据集同步保存到磁盘 | | | 将数据集同步保存到磁盘然后关闭服务器 | | | 使服务器成为另一个实例的副本,或将其提升为主服务器。从 Redis 5 开始已弃用。请改用 REPLICAOF。 | | | 使服务器成为另一个实例的副本,或将其提升为主服务器。 | | | 管理Redis慢查询日志 | | | 交换两个Redis数据库 | | | 用于复制的内部命令 | | | 用于复制的内部命令 | | | 返回人类可读的延迟分析报告。 | | | 返回事件的延迟图。 | | | 返回事件的时间戳延迟样本。 | | | 返回所有事件的最新延迟样本。 | | | 重置一个或多个事件的延迟数据。 | | | 显示有关不同子命令的有用文本。 |

命令计数

hljs
COMMAND COUNT

例子

shell
redis> COMMAND COUNT
(integer) 217

获取Redis命令总数

命令获取密钥

hljs
COMMAND GETKEYS

例子

shell
redis> COMMAND GETKEYS MSET a b c d e f
1) "a"
2) "c"
3) "e"
redis> COMMAND GETKEYS EVAL "not consulted" 3 key1 key2 key3 arg1 arg2 arg3 argN
1) "key1"
2) "key2"
3) "key3"
redis> COMMAND GETKEYS SORT mylist ALPHA STORE outlist
1) "mylist"
2) "outlist"

在给定完整的 Redis 命令的情况下提取键

命令信息

hljs
COMMAND INFO command-name [command-name ...]

例子

shell
redis> COMMAND INFO get set eval
1) 1) "get"
   2) (integer) 2
   3) 1) "readonly"
      2) "fast"
   4) (integer) 1
   5) (integer) 1
   6) (integer) 1
   7) 1) "@read"
      2) "@string"
      3) "@fast"
2) 1) "set"
   2) (integer) -3
   3) 1) "write"
      2) "denyoom"
   4) (integer) 1
   5) (integer) 1
   6) (integer) 1
   7) 1) "@write"
      2) "@string"
      3) "@slow"
3) 1) "eval"
   2) (integer) -3
   3) 1) "noscript"
      2) "movablekeys"
   4) (integer) 0
   5) (integer) 0
   6) (integer) 0
   7) 1) "@slow"
      2) "@scripting"

获取特定 Redis 命令详细信息的数组

信息

hljs
INFO [section]

例子

shell
redis> INFO
# Server
redis_version:6.1.240
redis_git_sha1:00000000
redis_git_dirty:0
redis_build_id:a26db646ea64a07c
redis_mode:standalone
os:Linux 5.4.0-1017-aws x86_64
......

获取有关服务器的信息和统计信息

角色

hljs
ROLE

例子

shell
redis> ROLE
1) "master"
2) (integer) 0
3) (empty list or set)

返回实例在复制上下文中的角色

时间

hljs
TIME

例子

shell
redis> TIME
1) "1609040690"
2) "558952"
redis> TIME
1) "1609040690"
2) "559206"

返回当前服务器时间

Redis的通用命令

杂项

|---|------------------------------| | | 复制一个密钥 | | | 以原子方式将密钥从 Redis 实例传输到另一个实例。 | | | 将密钥移动到另一个数据库 | | | 检查Redis对象的内部 | | | 使用提供的序列化值创建一个键,之前使用 DUMP 获得。 | | | 对列表、集合或有序集合中的元素进行排序 | | | 等待同步复制当前连接上下文中发送的所有写命令 | | | 增量迭代键空间 |

DEL

hljs
DEL key [key ...]

例子

shell
redis> SET key1 "Hello"
"OK"
redis> SET key2 "World"
"OK"
redis> DEL key1 key2 key3
(integer) 2

删除一个键

DUMP

hljs
DUMP key

例子

shell
redis> SET mykey 10
"OK"
redis> DUMP mykey
"\u0000\xC0\n\t\u0000\xBEm\u0006\x89Z(\u0000\n"

返回存储在指定键中的值的序列化版本。

EXISTS

hljs
EXISTS key [key ...]

例子

shell
redis> SET key1 "Hello"
"OK"
redis> EXISTS key1
(integer) 1
redis> EXISTS nosuchkey
(integer) 0
redis> SET key2 "World"
"OK"
redis> EXISTS key1 key2 nosuchkey
(integer) 2

判断key是否存在

EXPIRE

hljs
EXPIRE key seconds

例子

shell
redis> SET mykey "Hello"
"OK"
redis> EXPIRE mykey 10
(integer) 1
redis> TTL mykey
(integer) 10
redis> SET mykey "Hello World"
"OK"
redis> TTL mykey
(integer) -1

以秒为单位设置键的存活时间

EXPIREAT

hljs
EXPIREAT key timestamp

例子

shell
redis> SET mykey "Hello"
"OK"
redis> EXISTS mykey
(integer) 1
redis> EXPIREAT mykey 1293840000
(integer) 1
redis> EXISTS mykey
(integer) 0

将密钥的到期时间设置为 UNIX 时间戳

KEYS

hljs
KEYS pattern

例子

shell
redis> MSET firstname Jack lastname Stuntman age 35
"OK"
redis> KEYS *name*
1) "firstname"
2) "lastname"
redis> KEYS a??
1) "age"
redis> KEYS *
1) "firstname"
2) "age"
3) "lastname"

查找与给定模式匹配的所有键

PERSIST

hljs
PERSIST key

例子

shell
redis> SET mykey "Hello"
"OK"
redis> EXPIRE mykey 10
(integer) 1
redis> TTL mykey
(integer) 10
redis> PERSIST mykey
(integer) 1
redis> TTL mykey
(integer) -1

从密钥中删除过期时间

PEXPIRE

hljs
PEXPIRE key milliseconds

例子

shell
redis> SET mykey "Hello"
"OK"
redis> PEXPIRE mykey 1500
(integer) 1
redis> TTL mykey
(integer) 1
redis> PTTL mykey
(integer) 1499

以毫秒为单位设置键的生存时间

PEXPIREAT

hljs
PEXPIREAT key milliseconds-timestamp

例子

shell
redis> SET mykey "Hello"
"OK"
redis> PEXPIREAT mykey 1555555555005
(integer) 1
redis> TTL mykey
(integer) -2
redis> PTTL mykey
(integer) -2

将密钥的到期时间设置为以毫秒为单位指定的 UNIX 时间戳

PTTL

hljs
PTTL key

例子

shell
redis> SET mykey "Hello"
"OK"
redis> EXPIRE mykey 1
(integer) 1
redis> PTTL mykey
(integer) 1000

以毫秒为单位获取密钥的生存时间

RENAME

hljs
RENAME key newkey

例子

shell
redis> SET mykey "Hello"
"OK"
redis> RENAME mykey myotherkey
"OK"
redis> GET myotherkey
"Hello"

重命名密钥

RENAMENX

hljs
RENAMENX key newkey

例子

shell
redis> SET mykey "Hello"
"OK"
redis> SET myotherkey "World"
"OK"
redis> RENAMENX mykey myotherkey
(integer) 0
redis> GET myotherkey
"World"

重命名密钥,仅当新密钥不存在时

TOUCH

hljs
TOUCH key [key ...]

例子

shell
redis> SET key1 "Hello"
"OK"
redis> SET key2 "World"
"OK"
redis> TOUCH key1 key2
(integer) 2

更改密钥的最后访问时间。返回指定的现有键的数量。

TTL

hljs
TTL key

例子

shell
redis> SET mykey "Hello"
"OK"
redis> EXPIRE mykey 10
(integer) 1
redis> TTL mykey
(integer) 10

为一把钥匙赢得时间

TYPE

hljs
TYPE key

例子

shell
redis> SET key1 "value"
"OK"
redis> LPUSH key2 "value"
(integer) 1
redis> SADD key3 "value"
(integer) 1
redis> TYPE key1
"string"
redis> TYPE key2
"list"
redis> TYPE key3
"set"

确定存储在 key 的类型

hljs
UNLINK key [key ...]

例子

shell
redis> SET key1 "Hello"
"OK"
redis> SET key2 "World"
"OK"
redis> UNLINK key1 key2 key3
(integer) 2

在另一个线程中异步删除一个键。否则它就像 DEL 一样,但非阻塞。

Redis的连接命令

杂项

|---|------------------------| | | 向服务器进行身份验证 | | | 指示服务器在下一个请求中跟踪或不跟踪密钥 | | | 终止客户端的连接 | | | 获取客户端连接列表 | | | 获取当前连接名称 | | | 获取跟踪通知重定向客户端 ID(如果有) | | | 停止处理来自客户端的命令一段时间 | | | 指示服务器是否回复命令 | | | 设置当前连接名称 | | | 启用或禁用服务器辅助客户端缓存支持 | | | 从不同的连接取消阻止在阻止命令中阻止的客户端 | | | 切换Redis协议 | | | 关闭连接 | | | 重置连接 | | | 更改当前连接的选定数据库 |

客户编号

hljs
CLIENT ID

例子

shell
redis> CLIENT ID
ERR Unknown or disabled command 'CLIENT'

返回当前连接的客户端 ID

客户信息

hljs
CLIENT INFO

例子

shell
redis> CLIENT INFO
"id=55542 addr=127.0.0.1:58710 laddr=127.0.0.1:6379 fd=8 name= age=114920 idle=0 flags=N db=0 sub=0 psub=0 multi=-1 qbuf=26 qbuf-free=40928 argv-mem=10 obl=0 oll=0 omem=0 tot-mem=61466 events=r cmd=client user=default redir=-1\n"

返回有关当前客户端连接的信息。

回声

hljs
ECHO message

例子

shell
redis> ECHO "Hello World!"
"Hello World!"

回显给定的字符串

PING

hljs
PING [message]

例子

shell
redis> PING
"PONG"
redis> PING "hello world"
"hello world"

ping 服务器

Redis的流命令

杂项

|---|---------------------------------------------------| | | 获取有关流和消费者组的信息 | | | 从流中删除指定的条目。返回实际删除的项目数,如果某些 ID 不存在,则可能与传递的 ID 数不同。 | | | 返回多个流中从未见过的元素,其 ID 大于调用者为每个流报告的 ID。可以挡。 | | | 创建、销毁和管理消费者群体。 | | | 使用消费者组从流中返回新条目,或访问给定消费者的待处理条目的历史记录。可以挡。 | | | 更改(或获取)消费者组中消息的所有权,就像将消息传递给指定的消费者一样。 | | | 从流消费者组挂起条目列表中返回信息和条目,即获取但从未确认的消息。 |

XADD

hljs
XADD key [MAXLEN [=|~] length] [NOMKSTREAM] *|ID field value [field value ...]

例子

shell
redis> XADD mystream * name Sara surname OConnor
"1609040574632-0"
redis> XADD mystream * field1 value1 field2 value2 field3 value3
"1609040574632-1"
redis> XLEN mystream
(integer) 2
redis> XRANGE mystream - +
1) 1) "1609040574632-0"
   2) 1) "name"
      2) "Sara"
      3) "surname"
      4) "OConnor"
2) 1) "1609040574632-1"
   2) 1) "field1"
      2) "value1"
      3) "field2"
      4) "value2"
      5) "field3"
      6) "value3"

将新条目附加到流

XTRIM

hljs
XTRIM key MAXLEN [=|~] length

例子

shell
redis> XADD mystream * field1 A field2 B field3 C field4 D
"1609040575750-0"
redis> XTRIM mystream MAXLEN 2
(integer) 0
redis> XRANGE mystream - +
1) 1) "1609040575750-0"
   2) 1) "field1"
      2) "A"
      3) "field2"
      4) "B"
      5) "field3"
      6) "C"
      7) "field4"
      8) "D"

将流修剪为(大约如果 '~' 被传递)特定大小

XRANGE

hljs
XRANGE key start end [COUNT count]

例子

shell
redis> XADD writers * name Virginia surname Woolf
"1609040578002-0"
redis> XADD writers * name Jane surname Austen
"1609040578002-1"
redis> XADD writers * name Toni surname Morrison
"1609040578003-0"
redis> XADD writers * name Agatha surname Christie
"1609040578003-1"
redis> XADD writers * name Ngozi surname Adichie
"1609040578003-2"
redis> XLEN writers
(integer) 5
redis> XRANGE writers - + COUNT 2
1) 1) "1609040578002-0"
   2) 1) "name"
      2) "Virginia"
      3) "surname"
      4) "Woolf"
2) 1) "1609040578002-1"
   2) 1) "name"
      2) "Jane"
      3) "surname"
      4) "Austen"

返回流中的一系列元素,其 ID 与指定的 ID 间隔匹配

XREVRANGE

hljs
XREVRANGE key end start [COUNT count]

例子

shell
redis> XADD writers * name Virginia surname Woolf
"1609040579130-0"
redis> XADD writers * name Jane surname Austen
"1609040579130-1"
redis> XADD writers * name Toni surname Morrison
"1609040579130-2"
redis> XADD writers * name Agatha surname Christie
"1609040579131-0"
redis> XADD writers * name Ngozi surname Adichie
"1609040579131-1"
redis> XLEN writers
(integer) 5
redis> XREVRANGE writers + - COUNT 1
1) 1) "1609040579131-1"
   2) 1) "name"
      2) "Ngozi"
      3) "surname"
      4) "Adichie"

与 XRANGE 相比,以相反的顺序(从较大到较小的 ID)返回流中的元素范围,其中 ID 与指定的 ID 间隔匹配

XLEN

hljs
XLEN key

例子

shell
redis> XADD mystream * item 1
"1609040580250-0"
redis> XADD mystream * item 2
"1609040580250-1"
redis> XADD mystream * item 3
"1609040580251-0"
redis> XLEN mystream
(integer) 3

返回流中的条目数

XACK

hljs
XACK key group ID [ID ...]

例子

shell
redis> XACK mystream mygroup 1526569495631-0
ERR Unknown or disabled command 'XACK'

将待处理消息标记为正确处理,有效地将其从消费者组的待处理条目列表中删除。该命令的返回值是成功确认的消息数,即我们在 PEL 中实际能够解析的 ID。

其他

集群命令

|---|----------------------| | | 为接收节点分配新的哈希槽 | | | 推进集群配置时代 | | | 返回给定节点活动的故障报告数量 | | | 返回指定哈希槽中本地键的数量 | | | 在接收节点中将哈希槽设置为未绑定 | | | 强制副本对其主服务器执行手动故障转移。 | | | 删除一个节点自己的slots信息 | | | 从节点表中删除节点 | | | 返回指定哈希槽中的本地键名 | | | 提供有关 Redis 集群节点状态的信息 | | | 返回指定键的哈希槽 | | | 强制一个节点集群与另一个节点握手 | | | 返回节点 ID | | | 获取节点的集群配置 | | | 将节点重新配置为指定主节点的副本 | | | 重置 Redis 集群节点 | | | 强制节点在磁盘上保存集群状态 | | | 在新节点中设置配置纪元 | | | 将哈希槽绑定到特定节点 | | | 列出指定主节点的副本节点 | | | 列出指定主节点的副本节点 | | | 获取集群槽到节点映射的数组 | | | 启用对集群副本节点连接的读取查询 | | | 禁用对集群副本节点连接的读取查询 |

事务命令

|---|---------------------------| | | 丢弃 MULTI 之后发出的所有命令 | | | 执行 MULTI 之后发出的所有命令 | | | 标记一个事务块的开始 | | | 忘记所有观看过的钥匙 | | | 观察给定的键以确定 MULTI/EXEC 块的执行 |

脚本命令

|---|----------------------| | | 执行一个 Lua 脚本服务器端 | | | 执行一个 Lua 脚本服务器端 | | | 为执行的脚本设置调试模式。 | | | 检查脚本缓存中是否存在脚本。 | | | 从脚本缓存中删除所有脚本。 | | | 杀死当前正在执行的脚本。 | | | 将指定的 Lua 脚本加载到脚本缓存中。 |

发布/订阅命令

|---|----------------------| | | 侦听发布到与给定模式匹配的频道的消息 | | | 检查 Pub/Sub 子系统的状态 | | | 向频道发布消息 | | | 停止侦听发布到与给定模式匹配的频道的消息 | | | 侦听发布到给定频道的消息 | | | 停止侦听发布到给定频道的消息 |