Redis的基础指令

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"
相关推荐
止语Lab10 小时前
从 sync.Map 到 Redis:Go 缓存升级的三个拐点
redis·缓存·golang
洛水水11 小时前
redis缓存:雪崩、穿透、击穿详解
数据库·redis·缓存
洛水水11 小时前
Redis 内存淘汰策略详解
数据库·redis·缓存
Mr. zhihao11 小时前
Redis 集群分区思想的演进:从哈希取余到虚拟槽
redis·哈希算法
yh弓长11 小时前
Redis的string类及基础指令
数据库·redis·缓存
csjane107912 小时前
Redis 分布式锁实战
java·redis
それども12 小时前
redis 集群操作进阶 - hashtag
数据库·redis·缓存
Devin~Y12 小时前
大厂Java面试实录:Spring Boot/Cloud、Redis+Kafka、JVM调优与RAG/Agent(Spring AI)三轮递进问答
java·jvm·spring boot·redis·spring cloud·kafka·rag
fengxin_rou12 小时前
【Spring Boot 认证登录注册模块全解析】:JWT+BCrypt+Redis 企业级实践
spring boot·redis·后端