当前位置: 首页 > news >正文

Redis常见命令

(一)常见命令①

在这里插入图片描述

一、数据结构

在这里插入图片描述

二、通用命令

在这里插入图片描述

①KEYS查询语句

pattern代表模板,有点像匹配表达式(不是正则),是redis的一种内置表达式,可以在里面使用通配符
在这里插入图片描述
底层存在一种模糊查询机制,效率并不高。当redis的数据量达到一定规模时(数百万上千万甚至更多),使用这种模糊查询机制会给服务器带来巨大负担,搜索可能会花很长时间,又因为redis是单线程的,在搜索期间无法执行其他命令,等于整个redis服务被阻塞了,所以不建议在生产环境下使用keys来做查询
除非当前的redis是一个集群模式,有主有从,则可以在从节点上执行该命令

②DEL删除语句

在这里插入图片描述
中括号的意思是可以接受多个key
在这里插入图片描述
返回的integer值代表删除的key数量

③EXISTS判断存在语句

在这里插入图片描述

④EXPIRE设置有效期语句

在这里插入图片描述

⑤TTL查看剩余有效期语句

在这里插入图片描述
在这里插入图片描述
未设置有效期的key的剩余有效期为-1,意为永久有效
在这里插入图片描述
已被删除的key的剩余有效期为-2

三、String类型与key的格式

在这里插入图片描述

(1)String类型

String类型的三种格式:
在这里插入图片描述
String的常见命令:
在这里插入图片描述

①增查类命令(SET、GET、MSET、MGET)

在这里插入图片描述

②自增类命令(INCR、INCRBY、INCREBYFLOAT)
  1. INCR
    在这里插入图片描述
  2. INCRBY
    在这里插入图片描述
  3. INCREBYFLOAT
    在这里插入图片描述
③复合类命令
  1. SETNX
    在这里插入图片描述
    在这里插入图片描述
    set后面跟nx与setnx的效果是类似的
  2. SETEX
    在这里插入图片描述
    在这里插入图片描述
    效果跟set后面跟ex类似
(2)Key

Key的层级格式:
在这里插入图片描述
在这里插入图片描述
用户也好商品也好,在项目中往往都是一个java类或者java对象,这样的对象可以通过序列化成json的风格(即string字符串的形式)存储为一个值
在这里插入图片描述
以冒号隔开始,key很自然地就把数据给分离了,形成层级结构
在这里插入图片描述
可以避免id相同时地冲突,让数据分离看起来比较优雅

四、Hash类型

(1)Hash类型介绍

在这里插入图片描述

①对象序列化为json字符串存储的弊端:

无论一个字符串中有几个字段,是无法单独对某个字段做修改的,要么把整个字符串覆盖,要么只能删掉重写。要想解决这个弊端可以使用到哈希结构

②哈希结构:

field也称哈希key,哈希结构可以把一个用户的不同属性拆开变成独立的字段值分别存储,实现每个字段的独立表示,也就不需要用json字符串来标识一个用户,同时如果想要修改某个字段时对于其他字段没有影响

③优点:更加灵活
(2)常见命令

在这里插入图片描述

①HSET

在这里插入图片描述
在这里插入图片描述
重写一遍代码即可实现对单个哈希值的修改
在这里插入图片描述
在这里插入图片描述

②HGET

在这里插入图片描述

③HMSET

在这里插入图片描述
在这里插入图片描述

④HMGET

在这里插入图片描述

⑤HGETALL

在这里插入图片描述

⑥HKEYS、HVALS

在这里插入图片描述

⑦HINCRBY

在这里插入图片描述

⑧HSETNX

在这里插入图片描述

(二)常见命令②

在这里插入图片描述

一、List类型

在这里插入图片描述
在这里插入图片描述
在这里插入图片描述

①LPUSH

在这里插入图片描述
在这里插入图片描述
不管推了几个元素,都是按照顺序先推1号,1此时在最左边又推2号,2就跑到1的左边去了

②RPUSH

在这里插入图片描述
在这里插入图片描述

③LPOP、RPOP

在这里插入图片描述
在这里插入图片描述

④LRANGE

在这里插入图片描述

⑤BLPOP

在这里插入图片描述
"B"意为Block,即阻塞
输入该命令后发现队列被阻塞,不再向下执行
此时在另外一个控制台中向链表内插入元素
在这里插入图片描述
此时左边拿到数据,即解开队列,还会告诉等待时间
在这里插入图片描述

二、Set类型

在这里插入图片描述
在这里插入图片描述
在这里插入图片描述

三、SortedSet类型

1.类型介绍
在这里插入图片描述
SortedSet与TreeSet虽然在功能上比较相似,都是可排序的,但是在底层数据结构上的差异比较大。因为TreeSet的底层是由红黑树进行实现并且需要自行定义排序方法,而SortedSet的底层排序是根据一个固定的score值来排序的
SkipList跳表用于实现排序功能,可以增加查询速度
2.常见命令
在这里插入图片描述
在这里插入图片描述

在这里插入图片描述
在这里插入图片描述
虽然插入的数据为乱序,但是集合会自动排序为升序

在这里插入图片描述
在这里插入图片描述

相关文章:

  • 淘宝活动策划网站福州短视频seo网红
  • 有域名了怎么建站蚌埠网络推广
  • 外网访问wordpress全站路径设置阳西网站seo
  • 贵州的网页制作深圳高端seo外包公司
  • 免费做名片儿的网站黄冈seo
  • 大同网站建设优化营商环境的金句
  • 反向查询详解以Django为例
  • 速解!Cadence SPB24.1 ORCAD 开始页空白难题
  • Chapter06_图像复原
  • Transformer与注意力机制详解
  • Unity:Colliders(碰撞体) Rigidbody(刚体)
  • 解锁健康密码,拥抱品质生活
  • Redis最佳实践——购物车管理详解
  • RPG UNITY实战
  • MySQL篇(四)事务相关知识详解
  • 小白 thingsboard 拆分前后端分离
  • 第七章:从类库到服务的分布式基石_《凤凰架构:构建可靠的大型分布式系统》
  • iPhone XR:一代神机,止步于此
  • 浅谈 MVVM 模式
  • MessageQueue --- RabbitMQ WorkQueue and Prefetch
  • ROS Master多设备连接
  • React 函数组件间怎么进行通信?
  • java如何处理网络延时问题,并保证数据安全?
  • 丹麦波尔实验室2025.4.5
  • 学生管理系统(java)
  • [C++面试] 如何在特定内存位置上分配内存、构造对象