【redis基础01】数据结构-通用命令、String、Hash、List、Set

目录

  • 1 通用命令
    • 1.1 keys 检索匹配特定模式的所有键
    • 1.2 del 删除指定的key
    • 1.3 exists 判断key是否存在
    • 1.4 expire 给key设定有效期
    • 1.5 ttl 查看key的剩余有效期
    • 1.6 key的层级格式
  • 2 String类型
    • 2.1 set&get
    • 2.2 mset&mget 批量操作
    • 2.3 incr&incrbyfloat 自增
    • 2.4 setnx
    • 2.5 setex 添加键值对并设定有效期
  • 3 Hash类型
    • 3.1 hset&hget 添加或修改key值
    • 3.2 hmset&hmget 批量处理
    • 3.3 hgetall 返回所有的键值对
    • 3.4 hkeys&hvals 取键或者取值
    • ## 3.5 hincrby 自增
    • 3.6 hsetnx 判断是否存在
  • 4 List类型
    • 4.1 lpush&rpush 存入数据
    • 4.2 lpop&rpop 取出数值
    • 4. lrange key star end 取出相应范围的值
    • 4.5 blpop&brpop 阻塞取值
  • 5 Set类型
    • 5.1 单个集合增删改查
      • 5.1.1 sadd&srem 添加值&删除值
      • 5.1.2 scard 返回元素的个数
      • 5.1.3 sisnumber 判断一个元素是否存在
      • 5.1.4 smerbers 获取集合中的所有成员
    • 5.2 多个集合增删改查
      • 5.2.1 sinter 交集
      • 5.2.2 sdiff 差集
      • 5.2.3 sunion 并集
    • 5.3 练习
  • 6 SortedSet类型
    • 6.1 练习

1 通用命令

1.1 keys 检索匹配特定模式的所有键

KEYS:查看符合模板的所有key,不建议在生产环境设备上使用
在这里插入图片描述

1.2 del 删除指定的key

DEL:删除一个指定的key
在这里插入图片描述

1.3 exists 判断key是否存在

EXISTS:判断key是否存在
在这里插入图片描述

1.4 expire 给key设定有效期

1.5 ttl 查看key的剩余有效期

EXPIRE:给一个key设置有效期,有效期到期时该key会被自动删除
TTL:查看一个key的剩余有效期
在这里插入图片描述

1.6 key的层级格式

项目名:业务名:类型:id
项目名称叫heima,有user和product两种类型的数据
在这里插入图片描述
序列化为json字符串去存储
在这里插入图片描述
在这里插入图片描述

2 String类型

字符串,最简单的数据类型

2.1 set&get

SET:添加或者修改已经存在的一个String类型的键值对
GET:根据key获取String类型的value

2.2 mset&mget 批量操作

MSET:批量添加多个String类型的键值对
MGET:根据多个key获取多个String类型的value
在这里插入图片描述

2.3 incr&incrbyfloat 自增

INCR:让一个整型的key自增1
在这里插入图片描述
INCRBY:让一个整型的key自增并指定步长,例如:incrby num 2,让num值自增2
在这里插入图片描述

INCRBYFLOAT:让一个浮点类型的数字自增并指定步长
在这里插入图片描述

2.4 setnx

SETNX:添加一个String类型的键值对,前提是这个key不存在,否则不执行
在这里插入图片描述

2.5 setex 添加键值对并设定有效期

SETEX:添加一个String类型的键值对,并且指定有效期
在这里插入图片描述

3 Hash类型

在这里插入图片描述

在这里插入图片描述

3.1 hset&hget 添加或修改key值

在这里插入图片描述

在这里插入图片描述

3.2 hmset&hmget 批量处理

在这里插入图片描述

在这里插入图片描述

3.3 hgetall 返回所有的键值对

在这里插入图片描述

3.4 hkeys&hvals 取键或者取值

在这里插入图片描述

## 3.5 hincrby 自增

在这里插入图片描述

3.6 hsetnx 判断是否存在

4 List类型

双向链表结构

  1. 有序
  2. 元素可以重复
  3. 插入删除速度快
  4. 查询速度一般

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

4.1 lpush&rpush 存入数据

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

在这里插入图片描述

4.2 lpop&rpop 取出数值

在这里插入图片描述

4. lrange key star end 取出相应范围的值

从左边开始取,start 1号 end 2号
在这里插入图片描述
list从0开始编号
在这里插入图片描述

4.5 blpop&brpop 阻塞取值

如果一直取不到值,就会阻塞指定的时间为止。
在这里插入图片描述

5 Set类型

类似java中的hashset

  1. 无序
  2. 元素不可重复
  3. 查找快
  4. 支持交集、并集、差集等功能

5.1 单个集合增删改查

在这里插入图片描述

5.1.1 sadd&srem 添加值&删除值

5.1.2 scard 返回元素的个数

5.1.3 sisnumber 判断一个元素是否存在

5.1.4 smerbers 获取集合中的所有成员

在这里插入图片描述

5.2 多个集合增删改查

在这里插入图片描述

在这里插入图片描述

5.2.1 sinter 交集

5.2.2 sdiff 差集

5.2.3 sunion 并集

5.3 练习

在这里插入图片描述

#1.
sadd zs lisi wangwu zhaoliu
sadd ls  wangwu mazi ergou#2.
scard zssinter zs lssdiff zs lssunion zs lssismember zs lisisismember ls zhangsansrem zs lisi

在这里插入图片描述

6 SortedSet类型

与java中的treeset有些类似

  1. 可排序
  2. 元素不重复
  3. 查询速度快

可以实现排行榜的功能
在这里插入图片描述

6.1 练习

在这里插入图片描述

#1.将班级的下列学生得分存入Redis的Sortedset中:Jack 85, Lucy 89, Rose 82, Tom 95, Jerry 78, Amy 92, Miles 76
zadd Students 85 Jack 89 Lucy 82 Rose 95 Tom 78 Jerry 92 Amy 76 Miles
#2.删除Tom同学
zrem Students Tom
#3.获取Amy同学的分数
zscore Students Amy
#4.获取Rose同学的排名 因为所有排名都是按分数升序,所以要在前面加rev,且是从0号开始
zrevrank Students Rose
#5.查询80分以下有几个学生
zcount Students 0 80
#6.给Amy同学加2分
zincrby Students Amy 2
#7.查出成绩前3名的同学
zrevrange Students 0 2
#8.查出成绩80分以下的所有同学
zrangebyscore Students 0 80

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

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/804520.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

数据结构之树的性质总结

节点的度:该节点拥有的孩子个数 叶子节点:度为0的节点 层数:根节点为第一层,根的子节点为第二层,以此类推 所有树的性质:所有节点的总度数等于节点数减一 完全m叉树性质 完全m 叉树,节点的…

AI预测福彩3D第32弹【2024年4月10日预测--第7套算法开始计算第5次测试】

今天咱们继续进行进行第7套算法的测试,今天是第5次测试,昨天7码大方案错过,四码小方案直选命中,组选命中。这套算法的目标是争取稳定7码方案中的第一套方案,争取四码小方案的命中率达到50%(十期命中5期,目前…

C# 操作PDF表单 - 创建、填写、删除PDF表单域

通常情况下,PDF文件是不可编辑的,但PDF表单提供了一些可编辑区域,允许用户填写和提交信息。PDF表单通常用于收集信息、反馈或进行在线申请,是许多行业中数据收集和交换的重要工具。 PDF表单可以包含各种类型的输入控件&#xff0…

实验1 eNSP安装与使用

实验1 eNSP安装与使用 一、 原理描述二、 实验目的三、 实验内容四、 实验步骤1.下载并安装eNSP2.eNSP软件界面3.搭建并运行网络拓扑4. Wireshark 捕获分组并分析 一、 原理描述 eNSP(Enterprise Network Simulation Platform)是由华为提供的免费网络模…

idea中jdk版本的配置

配置JDK版本的步骤如下: 下载JDK安装文件:首先,需要从Oracle官方网站(https://www.oracle.com/java/technologies/javase-jdk8-downloads.html)下载适合您操作系统的JDK版本。 安装JDK:双击下载的安装文件…

什么是 DNS 记录?

DNS记录是存储在DNS服务器上的文本指令。它们表明与一个域名相关的IP地址,也可以提供其他信息。DNS记录是计算机用语,指域名系统(Domain Name System,简称DNS)中的一条记录,这条记录存储于DNS服务器中。每一…

全自动ai生成视频源码,利用AI大模型,一键生成高清短视频

MoneyPrinterTurbo-基于Python全自动ai生成视频源码,利用AI大模型,一键生成高清短视频,只需提供一个视频 主题 或 关键词 ,就可以全自动生成视频文案、视频素材、视频字幕、视频背景音乐,然后合成一个高清的短视频。 地…

c++ - 运算符重载

文章目录 一、运算符重载的关键字和注意点二、重载 运算符三、重载 运算符四、重载 运算符五、重载前置 和 后置 运算符六、重载 << >>运算符 一、运算符重载的关键字和注意点 C为了增强代码的可读性引入了运算符重载&#xff0c;运算符重载是具有特殊函数名的函…

【JavaEE】浅谈线程(一)

线程 前言线程的由来线程是什么线程的属性线程更高效的原因举个例子&#xff08;线程便利性的体现&#xff09; 多线程代码线程并发执行的代码jconsole(观测多线程) 线程的调度问题创建线程的几种方法1&#xff09;通过继承Thread 重写run2&#xff09;使用Runnable接口 重写ru…

MySQL 上亿大表,如何深度优化?

背景 分析 测试 实施 索引优化后 delete大表优化为小批量删除 总结 前段时间刚入职一家公司&#xff0c;就遇上这事&#xff01; 背景 XX实例&#xff08;一主一从&#xff09;xxx告警中每天凌晨在报SLA报警&#xff0c;该报警的意思是存在一定的主从延迟&#xff08;…

【Node】Node的配置文件的使用,dotenv框架的使用

&#x1f601; 作者简介&#xff1a;一名大四的学生&#xff0c;致力学习前端开发技术 ⭐️个人主页&#xff1a;夜宵饽饽的主页 ❔ 系列专栏&#xff1a;Node.js &#x1f450;学习格言&#xff1a;成功不是终点&#xff0c;失败也并非末日&#xff0c;最重要的是继续前进的勇…

linux-docker安装nginx

1.拉取镜像&#xff1a; docker pull nginx2.创建挂在路径&#xff1a; mkdir -p /usr/local/nginx/conf mkdir -p /usr/local/nginx/logs mkdir -p /usr/local/nginx/www mkdir -p /usr/local/nginx/conf.d 3.启动镜像:为了拿到位置文件&#xff0c;先启动下 docker run -…

2024 EasyRecovery易恢复 帮你轻松找回回收站删除的视频

随着数字化时代的到来&#xff0c;我们的生活和工作中越来越依赖于电子设备。然而&#xff0c;电子设备中的数据丢失问题也随之而来。数据丢失可能是由各种原因引起的&#xff0c;如硬盘故障、病毒感染、误删除等。面对这种情况&#xff0c;一个高效、可靠的数据恢复工具变得尤…

智慧农场牧场认养系统畜牧养殖积分签到直播监控农资商城养鸡APP小程序支持定制

每日签到&#xff1a;用户每天签到可以获取积分&#xff0c;连续签到7天还有惊喜奖品&#xff0c;这有助于增加用户粘性和活跃度。 我的鸡崽&#xff1a;这一功能以动画形式展示用户的鸡崽状态&#xff0c;新用户可以通过购物满额获得鸡苗&#xff0c;并通过饲喂动作参与鸡的成…

Netty NioEventLoop详解

文章目录 前言类图主要功能NioEventLoop如何实现事件循环NioEventLoop如何处理多路复用Netty如何管理Channel和Selector管理Channel管理Selector注意事项 前言 Netty通过事件循环机制(EventLoop)处理IO事件和异步任务&#xff0c;简单来说&#xff0c;就是通过一个死循环&…

【堡垒机】堡垒机的介绍

目前&#xff0c;常用的堡垒机有收费和开源两类。 收费的有行云管家、纽盾堡垒机&#xff1b; 开源的有jumpserver&#xff1b; 这几种各有各的优缺点&#xff0c;如何选择&#xff0c;大家可以根据实际场景来判断 什么是堡垒机 堡垒机&#xff0c;即在一个特定的网络环境下&…

李沐23_LeNet——自学笔记

手写的数字识别 知名度最高的数据集&#xff1a;MNIST 1.训练数据&#xff1a;50000 2.测试数据&#xff1a;50000 3.图像大小&#xff1a;28✖28 4.10类 总结 1.LeNet是早期成功的神经网络 2.先使用卷积层来学习图片空间信息 3.使用全连接层来转换到类别空间 代码实现…

【oracle数据库安装篇一】Linux5.6基于LVM安装oracle10gR2单机

说明 本篇文章主要介绍了Linux5.6基于LVM安装oracle10gR2单机的配置过程&#xff0c;比较详细&#xff0c;基本上每一个配置部分的步骤都提供了完整的脚本&#xff0c;安装部分都提供了简单的说明和截图&#xff0c;帮助你100%安装成功oracle数据库。 安装过程有不明白的地方…

二维相位解包理论算法和软件【全文翻译- DCT相位解包裹(5.3.2)】

5.3.2 基于 DCT 的方法 在本节中,我们将详细介绍如何通过 DCT 算法解决非加权最小二乘相位解缠问题,而不是通过FFT.我们将使用公式 5.53 所定义的二维余弦变换。我们开发的算法等同于 FFT 方法 2(第 5.3.1 节)。与 FFT 方法 I 等价的 DCT 算法也可以推导出来,但我们将其作…

PlayerSettings.WebGL.emscriptenArgs设置无效的问题

1&#xff09;PlayerSettings.WebGL.emscriptenArgs设置无效的问题 2&#xff09;多个小资源包合并为大资源包的疑问 3&#xff09;AssetBundle在移动设备上丢失 4&#xff09;Unity云渲染插件RenderStreaming&#xff0c;如何实现多用户分别有独立的操作 这是第381篇UWA技术知…