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