redis根本的全局下令

打印 上一主题 下一主题

主题 808|帖子 808|积分 2424


 博主主页: 码农派大星.

    数据结构专栏: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 * (不发起轻易使用)
语法:
  1. KEYS pattern
复制代码
返回全部满⾜样式(pattern)的key,⽀持如下统配样式:

keys下令的时间复杂度:O(N) 
在生产环境上,一般禁止使用keys,尤其是keys * , 由于生产环境上的key很多,而redis是一个单线程的服务器,执行keys * 时间会非常长,会使redis服务器被阻塞,无法给其他客户端提供服务 
redis 经常会用于做缓存.挡在mysql前面,万一redis 被一个 keys*阻塞住了,此时其他的査询 redis 操作就超时了,此时这些哀求就会直接查数据库,忽然一大波哀求过来了,mysql 可能措手不及,就容易挂了
 
2. EXISTS

判定某个key是否存在
  1. EXISTS key [key ...]
复制代码
时间复杂度:O(1)
返回值:key存在的个数
3. DEL

删除指定的key
  1. DEL key [key ...]
复制代码
时间复杂度:O(1)
返回值:删撤除的key的个数
4. EXPIRE

为指定的key添加秒级的过期时间
  1. EXPIRE key seconds
复制代码
时间复杂度:O(1)
返回值:1表⽰设置乐成。0表⽰设置失败
5. TTL

获取指定key的过期时间,秒级
  1. TTL key
复制代码
时间复杂度:O(1)
返回值:剩余过期时间。-1表⽰没有关联过期时间,-2表⽰key不存在

redis的key的过期策略是怎么实现的?

redis的整体策略是:
1.惰性删除: 假设一个key已经到过期时间了,但是暂时还没删它,key还存在,紧接着,背面有一次访问,正好用到了这个key,于是这次访问就会让redis服务器触发删除key的操作,同时再返回一个nil
2.定期删除: 每次抽取一部分,进行过期验证时间,保证这个抽取检查的过程,足够快
redis中并没有采取定时器的方式来实现过期key删除
6. TYPE

返回key对应的数据类型
  1. TYPE key
复制代码
时间复杂度:O(1)
返回值: none , string , list , set , zset ,hash and stream


免责声明:如果侵犯了您的权益,请联系站长,我们会及时删除侵权内容,谢谢合作!更多信息从访问主页:qidao123.com:ToB企服之家,中国第一个企服评测及商务社交产业平台。

本帖子中包含更多资源

您需要 登录 才可以下载或查看,没有账号?立即注册

x
回复

使用道具 举报

0 个回复

倒序浏览

快速回复

您需要登录后才可以回帖 登录 or 立即注册

本版积分规则

一给

金牌会员
这个人很懒什么都没写!

标签云

快速回复 返回顶部 返回列表