redis通用命令

redis是按照键值对存储数据的,在xshell中必须进入redis客服端才能输入redis命令

redis命令不区分大小写

key固定式字符串,value实际会有多种类型(字符串、哈希表、列表、集合、有序集合等,操作不同的数据结构就有不同的命令)

1.redis-cli:进入redis客服端

2.set:向redis中插入kye和value

格式 set key value (key和value是字符串不需要加"" '',也可以加,看个人习惯)

3.get:输入key就能得到valude 如果不存在返回nil(nil和null是一个意思)

全局命令:能够搭配任意一个数据结构来使用的命令

4.keys:返回满足的样式(pattern)

格式: keys pattern

4.1 h?llo 匹配 hello healo等 ?:表示匹配任意一个字符

4.2 h*llo 匹配 hello heeeello * : 表示匹配任意多个字符

4.3 hae匹配 hallo hello ae: 表示匹配\[\]=里的任意一个字符

4.4 h\^ 匹配 hallo hbllo ^e :表示匹配 不包含e的字符

4.5 ha-b匹配 hallo hbllo a-b:表示匹配 a到b的任意一个字符

的key

格式: keys pattern

4.1 h?llo 匹配 hello healo等 ?:表示匹配任意一个字符

4.2 h*llo 匹配 hello heeeello * : 表示匹配任意多个字符

4.3 hae匹配 hallo hello ae: 表示匹配\[\]里的任意一个字符

4.4 h\^ 匹配 hallo hbllo ^e :表示匹配 不包含e的字符

4.5 ha-b匹配 hallo hbllo a-b:表示匹配 a到b的任意一个字符

5.exists 判断key是否存在(一次查看多个key可以减少网络通信的轮次,提高效率)

返回值: 返回存在的key的个数(针对查看多个key 列如 exists key1 key2)

6.del:删除指定的key

返回删除key的个数

格式del key1 key2

7.expire:作用是给指定key设置过期时间(单位秒)

格式:expire key seconds

返回值1表示成功,0表示失败

8.pexpire:作用是给指定key设置过期时间(单位毫秒)pexpire key 毫秒

返回值1表示成功,0表示失败

返回值1表示成功,0表示失败

9.ttl :查看当前的key过期时间还剩多少

返回值:剩余的过期时间。-1表示没有关联过期时间、-2表示key不存在

redis删除的整体策略:

3.1.定期删除:每次抽取一部分,进行验证过期时间,保证抽查过程足够快,为什么会对这个时间有要求呢? 因为redis是一个单线程的程序主要的任务(处理每个命令的任务),如果扫描过期的key消耗了太多时间,就可能导致正常处理的请求命令被阻塞。(类似于执行keys * 这样的效果)

3.2.惰性删除:假设这个key已经到过期时间了,但是暂时还没删它,key还在。紧接着,后面又访问依次,正好用到了这个key,于是这次访问就会让redis服务器触发这个删除key的操作,同时返回一个nil。

10.定时器:在某个直接到达之后,执行指定的任务

4.1基于优先级队列实现 ,过期时间越找优先级越高

4.2基于时间轮实现的定时器

redis没有采取上述的方案

11.type:查看key的类型

返回值:返回key的类型

格式:type key key key ... type key

相关推荐
闪电悠米2 小时前
黑马点评-Redis 消息队列-03_stream_consumer_group
开发语言·数据库·redis·分布式·缓存·junit·lua
DIY源码阁2 小时前
JavaSwing航班订票管理系统 - MySQL版
数据库·mysql
qqxhb2 小时前
47|成本与性能:缓存、批处理、模型路由与降级
缓存·批处理·智能模型路由·多级降级预案·成本预算
浪客灿心4 小时前
项目篇:模块设计与实现
数据库·c++
佛祖让我来巡山5 小时前
线上 Redis 突然“爆”了,怎么办?
redis·redis宕机·redis崩了·redis线上事故
流星白龙5 小时前
【MySQL高阶】26.事务(1)
数据库·mysql
三十..6 小时前
Redis 核心原理与高可用架构实践
运维·数据库·redis
这个DBA有点耶6 小时前
索引优化深潜(下):索引合并、ICP 与索引设计的实战法则
数据库·mysql·架构
努力努力再努力wz6 小时前
【内存管理与高并发内存池系列】从 mmap 到 malloc:文件映射、匿名映射与 glibc 内存分配机制详解
linux·c语言·数据结构·数据库·c++·qt·链表
JdSnE27zv7 小时前
Qt 操作SQLite数据库
数据库·qt·sqlite