Redis常用命令
下面地址是Redis命令的详细API
http://redisdoc.com/
一、Key(键)常用命令
- keys pattern(查找所有符合给定模式 pattern 的 key )
keys * 匹配数据库中所有 key 。
127.0.0.1:6379> keys *
1) "my"
2) "bb"
3) "cc"
4) "dd"
5) "aa"
keys *a* 匹配数据库中包含a的key。
127.0.0.1:6379> keys *a*
1) "ab"
2) "aa"
- exists key(检查给定 key 是否存在。)
若 key 存在,返回 1 ,否则返回 0 。
exists aa 判断aa这个key是否存在
127.0.0.1:6379> exists aa
(integer) 1
- del key(删除给定的一个或多个 key ,不存在的 key 会被忽略。返回被删除 key 的数量。)
del aa 删除单个key
del aa bb 删除多个key
127.0.0.1:6379> del aa
(integer) 1
127.0.0.1:6379> del aa bb
(integer) 1
127.0.0.1:6379> del aa
(integer) 0
- expire key seconds(为给定 key 设置生存时间,当 key 过期时(生存时间为 0 ),它会被自动删除。 )
设置成功返回1 ,失败返回 0
expire aa 30 设置aa的过期时间为 30 秒
127.0.0.1:6379> expire aa 300
(integer) 1
ttl key(以秒为单位,返回给定 key 的剩余生存时间。)
当 key 不存在时,返回 -2 。
当 key 存在但没有设置剩余生存时间时,返回 -1 。
否则,以秒为单位,返回 key 的剩余生存时间。
127.0.0.1:6379> ttl aa
(integer) 283
127.0.0.1:6379> ttl xx
(integer) -2
127.0.0.1:6379> ttl cc
(integer) -1
- type key(返回 key 所储存的值的类型。)
none (key不存在)
string (字符串)
list (列表)
set (集合)
zset (有序集)
hash (哈希表)
127.0.0.1:6379> type aa
none
127.0.0.1:6379> type cc
string
二、String(Redis字符串)常用命令
- set key value [EX seconds] [PX milliseconds] [NX|XX] (设置Redis值)
EX second :设置键的过期时间为 second 秒。
PX millisecond :设置键的过期时间为 millisecond 毫秒。
NX :只在键不存在时,才对键进行设置操作。
XX :只在键已经存在时,才对键进行设置操作。
127.0.0.1:6379> set ex 1111 EX 300
OK
127.0.0.1:6379> ttl ex
(integer) 295
127.0.0.1:6379> set px 2222 PX 66666
OK
127.0.0.1:6379> ttl px
(integer) 59
- get key(返回 key 所关联的字符串值)
当 key 不存在时,返回 nil ,否则,返回 key 的值。
如果 key 不是字符串类型,那么返回一个错误。
127.0.0.1:6379> get aa
(nil)
127.0.0.1:6379> get cc
"789654123"
127.0.0.1:6379> get myhash
(error) WRONGTYPE Operation against a key holding the wrong kind of value
- mget key key… (返回所有一个或多个给定 key 的值)
如果给定的 key 里面,有某个 key 不存在,那么这个 key 返回特殊值 nil 。
因此,该命令永不失败。
127.0.0.1:6379> mget aa cc myhash
1) (nil)
2) "789654123"
3) (nil)
- mset key value key value…(同时设置一或多对值)
如果某个给定 key 已经存在,那么 MSET 会用新值覆盖原来的旧值。
MSET 是一个原子性(atomic)操作,所有给定 key 都会在同一时间内被设置,某些给定 key 被更新而另一些给定 key 没有改变的情况,不可能发生。
127.0.0.1:6379> mset aa 1232321 bb resds xx fefsfs
OK
127.0.0.1:6379> mget aa bb xx
1) "1232321"
2) "resds"
3) "fefsfs"
- append key value
如果 key 已经存在并且是一个字符串, append 命令将 value 追加到 key 原来的值的末尾。
如果 key 不存在, append 就简单地将给定 key 设为 value 。
返回追加 value 之后, key 中字符串的长度。
127.0.0.1:6379> append aa 9898989
(integer) 14
127.0.0.1:6379> append yy 789
(integer) 3
三、Hash(Redis Hash表)常用命令
- hkeys key(返回哈希表 key 中的所有域)
127.0.0.1:6379> hkeys myhash
1) "w"
2) "c"
- hget key field(返回哈希表 key 中给定域 field 的值)
给定域的值。
当给定域不存在或是给定 key 不存在时,返回 nil 。
127.0.0.1:6379> hget myhash c
"1234556"
- hgetall key(返回哈希表 key 中,所有的域和值)
以列表形式返回哈希表的域和域的值。
若 key 不存在,返回空列表。
127.0.0.1:6379> hgetall myhash
1) "w"
2) "\xe6\x88\x98\xe6\x96\x97\xe6\x9c\xba"
3) "c"
4) "1234556"
- hexists key field(查看哈希表 key 中,给定域 field 是否存在)
如果哈希表含有给定域,返回 1 。
如果哈希表不含有给定域,或 key 不存在,返回 0 。
127.0.0.1:6379> hexists myhash 2
(integer) 0
127.0.0.1:6379> hexists myhash w
(integer) 1
- hset key field value(将哈希表 key 中的域 field 的值设为 value)
如果 key 不存在,一个新的哈希表被创建并进行 HSET 操作。
如果域 field 已经存在于哈希表中,旧值将被覆盖。
如果 field 是哈希表中的一个新建域,并且值设置成功,返回 1 。
如果哈希表中域 field 已经存在且旧值已被新值覆盖,返回 0 。
127.0.0.1:6379> hset myhash bb test
(integer) 1
127.0.0.1:6379> hset myhash bb uu
(integer) 0