Redis从入门到放弃01—— 常用Key命令

100 阅读2分钟

Redis从入门到放弃01

常用基础Key命令

keys [pattern]

keys *      #获取所有的键(不建议在生产环境下操作,如果键太多会影响性能)
127.0.0.1:6379> keys *
1) "list2"
2) "k1"
3) "list1"
4) "k2"

keys list*
127.0.0.1:6379> keys list*
1) "list2"
2) "list1"

exists key [key ...] :判断一个或多个键是否存在,如果键存在则返回存在键的个数,若都不存在否则返回0

127.0.0.1:6379> keys *
1) "list2"
2) "k1"
3) "list1"
4) "k2"
127.0.0.1:6379> exists k1
(integer) 1
127.0.0.1:6379> exists k1 k2
(integer) 2
127.0.0.1:6379> exists k1 k2 k3
(integer) 2
127.0.0.1:6379> exists k5
(integer) 0

del key [key ...]  :删除键,可以删除一个或者多个,返回值是删除键的个数

127.0.0.1:6379> del key1

(integer) 1

127.0.0.1:6379> del key4

(integer) 0

127.0.0.1:6379> del key2 key3

(integer) 2

DEL命令的参数不支持通配符,但我们可以结合Linux的管道和xargs命令自己实现删除所有符合规则的键。比如要删除所有以“myset”开头的键,就可以执行

[root@gone bin]# redis-cli keys 'myset*' | xargs redis-cli del

(integer) 3

ttl key : 以秒为单位,返回给定 key 的剩余生存时间,如果设置key 没有指定过期时间返回的是 -1,若key过期则返回 -2

127.0.0.1:6379> ttl k1
(integer) 6
#等待过期后执行
127.0.0.1:6379> ttl k1
(integer) -2
# 未指定过期时间
127.0.0.1:6379> ttl k2
(integer) -1

expire key seconds:设置key 的过期时间 - 秒

127.0.0.1:6379> expire k1 10
(integer) 1
127.0.0.1:6379> ttl k1
(integer) 6

pexipre key seconds:设置key 的过期时间 - 毫秒,若key过期后执行返回 -2

127.0.0.1:6379> set k1 v1 pexipre 20000
(error) ERR syntax error
127.0.0.1:6379> set k1 v1 px 20000
OK
127.0.0.1:6379> pttl k1
(integer) 15841

#等待过期后执行
127.0.0.1:6379> pttl k1
(integer) -2

persist key:移除key的过期时间 (如果key没有过期则能成功,否则执行失败)

127.0.0.1:6379> set k2 v2 ex 20
OK
127.0.0.1:6379> ttl k2
(integer) 17
127.0.0.1:6379> persist k2
(integer) 1
127.0.0.1:6379> ttl k2
(integer) -1

randomkey:从redis中随机返回一个key

127.0.0.1:6379> keys *
1) "k3"
2) "r2"
3) "r3"
4) "r1"
5) "k1"
6) "k2"
127.0.0.1:6379> randomkey
"k2"

rename key newkey : 用于修改 key 的名称

127.0.0.1:6379> keys *
1) "foo3"
2) "foo2"
3) "foo1"
127.0.0.1:6379> rename foo3 foo
OK
127.0.0.1:6379> keys *
1) "foo"
2) "foo2"
3) "foo1"

renamenx key newkey:用于修改 key 的名称(仅当 newkey 不存在时,将 key 改名为 newkey)

127.0.0.1:6379> keys *
1) "foo"
2) "foo2"
3) "foo1"
127.0.0.1:6379> renamenx foo foo3
(integer) 1
127.0.0.1:6379> keys *
1) "foo3"
2) "foo2"
3) "foo1"
127.0.0.1:6379> renamenx foo2 foo1
(integer) 0
127.0.0.1:6379> keys *
1) "foo3"
2) "foo2"
3) "foo1"

type key :返回key 的存储值类型

127.0.0.1:6379> lpush lkey 1

(integer) 1

127.0.0.1:6379> type lkey
list