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