redis的key命令总结
文章目录
1.set
设置key-value
如果key已经存在,会被覆盖
127.0.0.1:6379> set k1 v1
OK
2. key查询相关
(1) keys *
查看所有key
127.0.0.1:6379> keys *
1) "k1"
(2)使用 * 表示 0 或多个字符
keys k*:查看数据库中所有以k开头的key
keys k*o:查看数据库中以h开头、以o结尾的key
127.0.0.1:6379> keys *name
1) "username"
127.0.0.1:6379> keys us*me
1) "username"
(3)使用 ? 表示单个
keys h?o:查看数据库中所有以h开头,以o结尾、并且中间只有一个字符的key.
127.0.0.1:6379> keys *
1) "username"
2) "k1"
127.0.0.1:6379> keys user?ame
1) "username"
(4)使用[a,b,c]表示包含[]内的字符
127.0.0.1:6379> keys *
1) "adress"
2) "address"
3) "username"
4) "k1"
127.0.0.1:6379> keys ad[abcder]ress
1) "address"
3. exists
判断key是否存在
##存在 key 返回 1,其他返回 0
127.0.0.1:6379> exists username
(integer) 1
##使用多个 key,返回存在的 key 的数量
127.0.0.1:6379> exists username address email
(integer) 2
4.move
移动key到指定数据库实例
127.0.0.1:6379> keys *
1) "adress"
2) "address"
3) "username"
4) "k1"
## 将adress移到数据库实例2
127.0.0.1:6379> move adress 2
(integer) 1
127.0.0.1:6379> keys *
1) "address"
2) "username"
3) "k1"
127.0.0.1:6379>
5. key过期时间相关
(1) 以毫秒为单位设置key过期时间
127.0.0.1:6379> keys *
1) "address"
2) "username"
3) "k1"
##设置username的生存时间为5秒
127.0.0.1:6379> expire username 5
(integer) 1
127.0.0.1:6379> keys *
1) "address"
2) "username"
3) "k1"
127.0.0.1:6379> keys *
1) "address"
2) "k1"
(2) 设置过期时间(UNIX时间戳)
##设置key的过期时间,时间为UNIX时间戳
127.0.0.1:6379> expireat location 1000000
(integer) 1
(3) 以秒为单位返回key剩余过期时间
以秒为单位,返回 key 的剩余生存时间(ttl: time to live)
返回值:
● -1 :没有设置 key 的生存时间, key 永不过期
● -2 :key 不存在
● 数字:key 的剩余时间,秒为单位
127.0.0.1:6379> keys *
1) "readlight"
2) "address"
3) "k1"
127.0.0.1:6379> expire readlight 600
(integer) 1
## 查询readlight的剩余生存时间
127.0.0.1:6379> ttl readlight
(integer) 595
127.0.0.1:6379> ttl address
(integer) -1
127.0.0.1:6379> ttl email
(integer) -2
127.0.0.1:6379>
(4) 以毫秒为单位返回key剩余过期时间
127.0.0.1:6379> expire k1 600
(integer) 1
## pttl,以毫秒返回key剩余过期时间
127.0.0.1:6379> pttl k1
(integer) 596314
(5) 取消key的过期时间,key将持久保持
##设置过期时间
127.0.0.1:6379> expire k1 6000
(integer) 1
##查看key剩余生存时间
127.0.0.1:6379> ttl k1
(integer) 5988
##取消key的过期时间
127.0.0.1:6379> persist k1
(integer) 1
127.0.0.1:6379> ttl k1
(integer) -1
6. 查询key的数据类型
查看 key 所存储值的数据类型返回值:字符串表示的数据类型.
● none (key 不存在)
● string (字符串)
● list (列表)
● set (集合)
● zset (有序集)
● hash (哈希表)
127.0.0.1:6379> keys *
1) "readlight"
2) "address"
3) "k1"
##type查询key的类型
127.0.0.1:6379> type readlight
string
7. 删除key
删除存在的 key ,不存在的 key 忽略。
返回值:数字,删除的 key 的数量
127.0.0.1:6379> del readligth
(integer) 0
127.0.0.1:6379> keys *
1) "readlight"
2) "address"
3) "k1"
127.0.0.1:6379> del k1
(integer) 1
127.0.0.1:6379> keys *
1) "readlight"
2) "address"
127.0.0.1:6379>
8. 直接修改key名称
127.0.0.1:6379> keys *
1) "readlight"
2) "address"
127.0.0.1:6379> rename address location
OK
127.0.0.1:6379> keys *
1) "location"
2) "readlight"
9. 仅当newKey不存在时,将key修改为newKey
127.0.0.1:6379> keys *
1) "k2"
2) "k1"
3) "k3"
##直接修改key名称,不论newKey是否已经存在
127.0.0.1:6379> rename k1 k2
OK
127.0.0.1:6379> keys *
1) "k2"
2) "k3"
##如果newKey存在,则不会修改
127.0.0.1:6379> renamenx k2 k3
(integer) 0
127.0.0.1:6379> keys *
1) "k2"
2) "k3"
127.0.0.1:6379>
10. 序列化指定key
127.0.0.1:6379> set k1 v1
OK
## dum key 序列化指定key
127.0.0.1:6379> dump k1
"\x00\x02v1\b\x00\xe6\xc8\\\xe1bI\xf3c"
127.0.0.1:6379> keys *
1) "k1"
2) "location"
11.从当前数据库随机返回一个key
127.0.0.1:6379> keys *
1) "k2"
2) "k1"
3) "k3"
127.0.0.1:6379> randomkey
"k1"
127.0.0.1:6379> randomkey
"k3"
12. flushall清空所有key
127.0.0.1:6379> flushall
2193:M 28 Sep 08:04:08.066 * DB saved on disk
OK