【Redis】通用命令

keys [pattern]

遍历所有key

演示:

127.0.0.1:6379> mset hello world here hey php good physic newton
OK
127.0.0.1:6379> keys he*
1) "hello"
2) "here"
127.0.0.1:6379> keys he[h-l]*
1) "hello"
127.0.0.1:6379> keys ph?
1) "php"

keys 命令一般不在生产环境使用

  1. 首先生产环境键值对比较多,keys命令是一个较重的命令,它是O(n)的命令。

  2. 而且redis是单线程的,如果你要拿出库里那么多key,会阻塞其他的命令。

如果你真有这样的需求,比如说把长期不用的key打印出来,来提高内存的使用率。可以使用 scan 命令,或者在只做备份不使用的热备从节点执行这些较重的命令。

dbsize

计算key的总数

演示:

127.0.0.1:6379> mset k1 v1 k2 v2 k3 v3 k4 v4
OK
127.0.0.1:6379> dbsize
(integer) 4
127.0.0.1:6379> sadd myset a b c d e 
(integer) 5
127.0.0.1:6379> dbsize
(integer) 5

dbsize 可以在线上使用的, redis 内置了key的计数器。它的时间复杂度是O(1)

exists

exists [key] 检查key 是否存在

演示:

127.0.0.1:6379> set name jinx
OK
127.0.0.1:6379> exists name
(integer) 1
127.0.0.1:6379> del name
(integer) 1
127.0.0.1:6379> exists name
(integer) 0

exists 也是一个O(1)级别的命令

del

del key [key...] 删除一个或多个 key-value

演示:

127.0.0.1:6379> set name jinx
OK
127.0.0.1:6379> set age 18
OK
127.0.0.1:6379> del name age
(integer) 2
127.0.0.1:6379> get name
(nil)
127.0.0.1:6379> get age
(nil)
127.0.0.1:6379> del no
(integer) 0

del 也是一个O(1)级别的命令

expire、ttl、persist

key 过期的三个命令

expire: expire key [seconds] 设置key在seconds秒后过期

ttl: ttl key 查看key剩余的过期时间

persist: persist key 去掉key的过期时间

演示:

127.0.0.1:6379> set hello world
OK
127.0.0.1:6379> expire hello 20
(integer) 1
127.0.0.1:6379> ttl hello
(integer) 13(还有13秒过期)
127.0.0.1:6379> get hello
"world"
127.0.0.1:6379> ttl hello
(integer) -2(-2代表key已经不存在了)
127.0.0.1:6379> get hello
(nil)
127.0.0.1:6379> set hello world 
OK
127.0.0.1:6379> expire hello 20
(integer) 1
127.0.0.1:6379> ttl hello
(integer) 18(还有18秒过期)
127.0.0.1:6379> persist hello
(integer) 1
127.0.0.1:6379> ttl hello
(integer) -1(-1代表key存在,并且没有过期时间。)

expirettlpersist 的时间复杂度是O(1)

type

type key 返回key的类型

127.0.0.1:6379> set a b
OK
127.0.0.1:6379> type a
string
127.0.0.1:6379> sadd myset 1 2 3 
(integer) 3
127.0.0.1:6379> type myset 
set
127.0.0.1:6379> lpush mylist a b c
(integer) 3
127.0.0.1:6379> type mylist
list
127.0.0.1:6379> hset myhash k1 v1
(integer) 1
127.0.0.1:6379> type myhash
hash
127.0.0.1:6379> zadd myzset 89 english 92 yuwen
(integer) 2
127.0.0.1:6379> type myzset 
zset
127.0.0.1:6379> type no-exists
none

type 的时间复杂度是O(1)

暂无评论

发送评论 编辑评论


				
|´・ω・)ノ
ヾ(≧∇≦*)ゝ
(☆ω☆)
(╯‵□′)╯︵┴─┴
 ̄﹃ ̄
(/ω\)
∠( ᐛ 」∠)_
(๑•̀ㅁ•́ฅ)
→_→
୧(๑•̀⌄•́๑)૭
٩(ˊᗜˋ*)و
(ノ°ο°)ノ
(´இ皿இ`)
⌇●﹏●⌇
(ฅ´ω`ฅ)
(╯°A°)╯︵○○○
φ( ̄∇ ̄o)
ヾ(´・ ・`。)ノ"
( ง ᵒ̌皿ᵒ̌)ง⁼³₌₃
(ó﹏ò。)
Σ(っ °Д °;)っ
( ,,´・ω・)ノ"(´っω・`。)
╮(╯▽╰)╭
o(*////▽////*)q
>﹏<
( ๑´•ω•) "(ㆆᴗㆆ)
😂
😀
😅
😊
🙂
🙃
😌
😍
😘
😜
😝
😏
😒
🙄
😳
😡
😔
😫
😱
😭
💩
👻
🙌
🖕
👍
👫
👬
👭
🌚
🌝
🙈
💊
😶
🙏
🍦
🍉
😣
Source: github.com/k4yt3x/flowerhd
颜文字
Emoji
小恐龙
花!
上一篇
下一篇