自学内容网 自学内容网

初识redis:通用命令

今天我们简单介绍一些关于redis的基础命令。

目录

get 和 set

全局命令

keys

EXISTS

del(delete)

expire

TTL

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

type


get 和 set

连接到云服务器后,通过redis-cli命令进入到redis客户端,我们就可以通过get和set命令来存储相关的信息了:

跟hash表类似的方式,set的格式为: set key value

而get的时候,只需要get key则可以拿到属性。如果是不存在该值,则返回的是nil,类似于null,也就是提示我们这个值不存在。

全局命令

Redis支持很多种数据结构,Redis是键值对结构,key固定就是字符串,而value实际上会有很多种类型,全局命令,就是能够搭配任意一个数据结构来使用的命令。

keys

用来查询当前服务器上匹配的key,通过一些特殊符号(通配符),来描述key的样子,就能够查询匹配到key的样子。

patten:包含特殊符号的字符串

为了方便演示,我们提前增加好一些keys和value:

具体来说,包括了一下多种:

  • ? 匹配任意一个字符

  • *  匹配0个或多个任意字符

  • [abcdef] 只能匹配到abcde

  • [^e]排除e,只有e匹配不了,其他的都能匹配

  • [a-e]匹配a-e这个范围内的字符,包含两侧边界

EXISTS

判断某个key是否存在。

请注意,尽量使用EXISTS hello hallo这样的命令,而不是 EXISTS hello  和EXISTS hallo

分开来,会让网络IO量增大,增加成本,所以尽量还是一行操作就完成。

del(delete)

删除指定的key,可以一次删除一个或者多个。

expire

给指定的key设置过期时间,key存活时间超出这个指定的值,就会被自动删除。

expire的单位是秒,pexpire的单位是毫秒。

例如很多业务场景,如手机验证码、外卖优惠券,只在指定时间内有效。

此处我们设置一个hello为10,那么在短时间内get,是可以得到结果的,等过了十秒后再get,就发现这个key已经过期了。

TTL

获取指定key的过期时间,秒级。(pTTL则是毫秒级)

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

一个redis中可以同时存在很多很多的key,这些key中可能有很大一部分key都有过期时间,此时redis服务器是怎么知道哪些key已经过期要被删除,哪些还没过期呢?

redis整体的策略是:

  1. 定期删除:每次抽取一部分,进行验证过期时间,保证这个抽取检查的过程足够快
  2. 惰性删除:假设这个key已经到过期时间了,但是暂时还没有删除它,key还存在,后面又一次的访问正好用到了这个key,于是这次访问就会让redis服务器触发删除key的操作,同时返回一个nil。

type

redis所有的key都是string类型,key对应的value可能会存在多种类型,type的作用就是返回key对应的数据类型。

在遇到不认识的key之前,我们可以查询一下key的类型,以帮助我们了解。


原文地址:https://blog.csdn.net/m0_62319039/article/details/140556962

免责声明:本站文章内容转载自网络资源,如本站内容侵犯了原著者的合法权益,可联系本站删除。更多内容请关注自学内容网(zxcms.com)!