站长工具亚洲中文精品,wordpress生成海报图片插件,欧美 电台 网站模板,电子商务网页设计与制作实训报告Redis官方文档
redis官方文档
核心命令
set
将key和value存储到Redis中#xff0c;key和value都是字符串
set key valueRedis中不区分大小写#xff0c;字符串类型也不需要添加单引号或者双引号
get
根据key读取value#xff0c;如果当前key不存在#xff0c;则返回…Redis官方文档
redis官方文档
核心命令
set
将key和value存储到Redis中key和value都是字符串
set key valueRedis中不区分大小写字符串类型也不需要添加单引号或者双引号
get
根据key读取value如果当前key不存在则返回nil等同于NULL
get key全局命令
Redis中有多种数据结构——字符串哈希表列表集合有序集合不同的命令操作不同的数据结构。而全局命令可以操作任意一个数据结构
keys
通过通配符描述key的模样匹配上的key就会查询出来,时间复杂度为O(n)
keys pattern其中的pattern就是包含特殊符号的字符串
通配符作用匹配任意一个字符*匹配0个或多个任意字符[a,b,c,d]匹配a,b,c,d中的字符其他的不可以[^a]只有a不能被匹配[a-z]匹配a-z之间的任意字符包含a和z * [a,b,c] [^a] [a-z] exists
判断key是否存在返回key存在的个数时间复杂度为O(N)N是检查key的个数
exists key [key ...]之所以要同时判断多个key是否存在是因为Redis是一个客户端服务器结构的程序其交流通过网络通信。而网络通信的效率是很慢的需要经过层层封装和分用。因此Redis中的很多命令都支持多个key同时操作
del
删除指定的key返回删除成功的key的个数语法和exists类似可以删除一个或多个key
del key [key ...]expire
给指定的key设置过期时间key的存活时间超过这个指定的时间就会自动删除单位是秒需要注意的是设定的key必须存在
返回值设置成功返回1设置失败返回0
expire key seconds如果想要设置精确值更小的过期时间可以使用pexpire单位是毫秒
ttl
查询当前key剩余的过期时间单位是秒
返回值剩余的过期时间 -1没有关联过期时间-2key不存在
ttl key同样要有pttl命令单位是毫秒 ip协议的报头中也有一个ttl字段代表过期时间单位是次数
Redis的key过期策略
Redis中存储了大量的key那么他是如何知道哪些key已经过期了要被删除哪些key还没过期呢
显然一次次遍历所有的key确定key是否过期效率非常慢并且占用系统的资源
在Redis中主要采用了下面两种策略
定期删除每次抽取一部分验证过期时间并且需要保证这个过程足够快Redis是单线程的程序删除操作不能阻塞正常的处理请求命令惰性删除key虽然到达了过期时间但是还没删除后面一次访问用到了这个keyRedis会先触发删除这个key的操作然后返回nil
其实Redis可以基于优先级队列或者时间轮实现一个定时器来清理过期的key但是Redis并没有采取这种措施因为定时器的实现需要引入多线程而Redis作者早期就奠定了单线程的基调
type
返回key对应的value的数据类型
例如nonestringlistsetzsethashstream
type key