redis根本的全局下令
https://i-blog.csdnimg.cn/direct/f2816a44fddc4163986f53a9de04a02a.png博主主页: 码农派大星.
数据结构专栏:Java数据结构
数据库专栏:数据库
JavaEE专栏:JavaEE
软件测试专栏:软件测试
关注博主带你了解更多知识
https://img-blog.csdnimg.cn/direct/73aac261e3644d2397dd71aa1927bc28.jpeg
1. Redis下令⾏客⼾端
通过redis-cli客户端和redis服务端交互,还会涉及很多的redis下令
https://i-blog.csdnimg.cn/direct/a0eb8e3ff68345a79b043a875214dc22.png
我们这里可以直接使用redis-cli毗连redis服务器
交互过程:
https://i-blog.csdnimg.cn/direct/5c4c5e3803384de9ae9d0558a838d73e.png
2. Redis常⻅数据类型
2.1 SET和GET 下令
SET 和 GET 下令通常用于操作字符串类型的数据
[*]SET 下令用于设置给定键的值。如果键已经存在,SET 下令会更新这个键的值。
[*]GET 下令用于获取与给定键相干联的值.
https://i-blog.csdnimg.cn/direct/539a52f9bd5d45ce85e2449abdcf1bce.png
2.2 根本全局下令
Redis 有5种数据结构,但它们都是键值对种的值,对于键来说有⼀些通⽤的下令
1. KEYS
KEYS下令用于查找全部匹配指定模式的键
查找全部键:KEYS * (不发起轻易使用)
语法:
KEYS pattern 返回全部满⾜样式(pattern)的key,⽀持如下统配样式:
https://i-blog.csdnimg.cn/direct/87d3c1870b3e43ce8e92ddebb79e679a.png
keys下令的时间复杂度:O(N)
在生产环境上,一般禁止使用keys,尤其是keys * , 由于生产环境上的key很多,而redis是一个单线程的服务器,执行keys * 时间会非常长,会使redis服务器被阻塞,无法给其他客户端提供服务
redis 经常会用于做缓存.挡在mysql前面,万一redis 被一个 keys*阻塞住了,此时其他的査询 redis 操作就超时了,此时这些哀求就会直接查数据库,忽然一大波哀求过来了,mysql 可能措手不及,就容易挂了
https://i-blog.csdnimg.cn/direct/d6478a09490e441e9daf7325a86043e9.png
2. EXISTS
判定某个key是否存在
EXISTS key 时间复杂度:O(1)
返回值:key存在的个数
3. DEL
删除指定的key
DEL key 时间复杂度:O(1)
返回值:删撤除的key的个数
4. EXPIRE
为指定的key添加秒级的过期时间
EXPIRE key seconds 时间复杂度:O(1)
返回值:1表⽰设置乐成。0表⽰设置失败
5. TTL
获取指定key的过期时间,秒级
TTL key 时间复杂度:O(1)
返回值:剩余过期时间。-1表⽰没有关联过期时间,-2表⽰key不存在
https://i-blog.csdnimg.cn/direct/f6668fa0278a45158f3379e2774e81d1.png
redis的key的过期策略是怎么实现的?
redis的整体策略是:
1.惰性删除: 假设一个key已经到过期时间了,但是暂时还没删它,key还存在,紧接着,背面有一次访问,正好用到了这个key,于是这次访问就会让redis服务器触发删除key的操作,同时再返回一个nil
2.定期删除: 每次抽取一部分,进行过期验证时间,保证这个抽取检查的过程,足够快
redis中并没有采取定时器的方式来实现过期key删除
6. TYPE
返回key对应的数据类型
TYPE key 时间复杂度:O(1)
返回值: none , string , list , set , zset ,hash and stream
https://i-blog.csdnimg.cn/direct/6057a8dc3ebd4668945f5eb1d2d692db.png
免责声明:如果侵犯了您的权益,请联系站长,我们会及时删除侵权内容,谢谢合作!更多信息从访问主页:qidao123.com:ToB企服之家,中国第一个企服评测及商务社交产业平台。
页:
[1]