Redis的基础指令
1. KEYS --- 谨慎使用
通过通配符进行匹配:
1. h?llo 匹配 hello,hallo,hxllo
2. h*llo 匹配 hllo, heeeello
3. h[ae]llo 匹配 hallo, hello
4. h[^e]llo 匹配 除了 hello
5. h[a-e] 匹配 hello ---匹配从a到e的闭区间
🌟特别注意3和5的区别
语法:
KEYS pattern
返回值:
匹配pattern的所有key
示例:
redis> MSET firstname Jack lastname Stuntman age 35
"OK"
redis> KEYS *name*
1) "firstname"
2) "lastname"
redis> KEYS a??
1) "age"
redis> KEYS *
1) "age"
2) "firstname"
3) "lastname"
- 为什么慎重使用呢?
- 因为当数据很多时,会占用这个线程去查询,而堵塞了其他的指令
- 🌟尤其是 **KEYS *** 这条语句,和 SELECT * FROM table; 一样不能随便使用在数据很多的情况下
2. EXISTS
判断某个 key 是否存在
语法:
bash
EXISTS key [key ...]
这个 [ ] 里面的东西可以加也可以不加,在这里可以一次查询多个key是否存在,批量查询,减少网络开销
返回值:
存在key的个数,没有则返回0
示例:
redis> SET key1 "Hello"
"OK"
redis> EXISTS key1
(integer) 1
redis> EXISTS nosuchkey
(integer) 0
redis> SET key2 "World"
"OK"
redis> EXISTS key1 key2 nosuchkey
(integer) 2
3. DEL
删除指定的key
语法:
DEL key [key ...]
返回值:
删除key的个数
示例:
redis> SET key1 "Hello"
"OK"
redis> SET key2 "World"
"OK"
redis> DEL key1 key2 key3
(integer) 2
4. EXPIRE
为指定的key添加秒级的过期时间
语法:
EXPIRE key seconds
返回值:
1:设置成功
0:设置失败
示例:
redis> SET mykey "Hello"
"OK"
redis> EXPIRE mykey 10
(integer) 1
redis> TTL mykey
(integer) 10
5. TTL (Time To Live)
获取指定key的过期时间,秒级
语法:
TTL key
返回值:
1. 剩余的过期时间
2. -1表示没有关联过期时间
3. -2表示key不存在,有可能本来就不存在这个key,有可能过期了,总的来说都是key不存在了
示例:
redis> SET mykey "Hello"
"OK"
redis> EXPIRE mykey 10
(integer) 1
redis> TTL mykey
(integer) 10
- EXPIRE 和 TTL 命令都有对应的支持毫秒为单位的版本:PEXPIRE 和 PTTL
6. TYPE
返回key对应的数据类型
语法:
TYPE key
返回值:
none, string, list, set, zset, hash, stream ...
示例:
redis> SET key1 "value"
"OK"
redis> LPUSH key2 "value"
(integer) 1
redis> SADD key3 "value"
(integer) 1
redis> TYPE key1
"string"
redis> TYPE key2
"list"
redis> TYPE key3
"set"