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"
相关推荐
aiks_yuan2 小时前
Token 放 Redis 还是用 JWT:Java 实测验签和查 Redis 耗时,退出登录、改密码踢下线怎么做(jjwt 0.12 + Redis 7.2)
redis
我不会起名字32210 小时前
Redis 从 0 到 1(二十九):CPU 突然 100%——commandstats 定位法与 6 步排查链路
redis·cpu·慢查询·排查·commandstats
我不会起名字32211 小时前
Redis 从 0 到 1(二十八):Redis 抖一下,重试把它打挂了——超时/重试/熔断的 Go 封装
redis·go·超时·熔断·重试
我不会起名字32212 小时前
Redis 从 0 到 1(三十):删了一半数据 RSS 不降——内存碎片与 activedefrag 观测
redis·内存碎片·rss·排查·activedefrag
csdn_aspnet1 天前
使用 Docker 和 RedisInsight 设置 Redis 以进行本地开发
redis·docker·容器·redisinsight
用户094248568031 天前
第22章:Redis 持久化 RDB 与 AOF:数据不丢的底线
redis·架构·源码
没有气的汽水1 天前
升级完客户端,redis 又开始大量返回 MOVED:一个埋了七个月的本地配置
redis
csdn_aspnet1 天前
如何在本地 Docker 容器中运行 Redis,并使用 Redis Insight 和 Redis CLI 进行管理
redis·docker·容器
IT规划师2 天前
Redis 数据类型全解 - Bitfield:99% 开发者没用过的位域操作,把内存再砍 80%(七)
redis·bitfield·位域