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

news2025/1/8 4:53:51

目录

  • 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 zs

sinter zs ls

sdiff zs ls

sunion zs ls

sismember zs lisi

sismember ls zhangsan

srem 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.coloradmin.cn/o/1601913.html

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

相关文章

RabbitMQ-交换机

文章目录 交换机fanoutDirecttopicHeadersRPC 交换机 **交换机 **是消息队列中的一个组件,其作用类似于网络路由器。它负责将我们发送的消息转发到相应的目标,就像快递站将快递发送到对应的站点,或者网络路由器将网络请求转发到相应的服务器…

杀死那个名为360安全的软件

背景 2023年底,闲来没事想起了xjun师傅2021年发的procexp驱动利用帖子时在群里讨论的,通过procexp驱动突破PPL后注入到csrss进程中,再通过csrss来结束那些个安全防护软件。于是在当时就有了如下成果: 这些弄完之后,觉…

康谋技术 | 深入探讨:自动驾驶中的相机标定技术

随着自动驾驶技术的快速发展,多传感器的数据采集和融合可以显著提高系统的冗余度和容错性,进而保证决策的快速性和正确性。在项目开发迭代过程中,传感器标定扮演着至关重要的角色,它位于数据采集平台与感知融合算法之间&#xff0…

关于外网后端服务访问内网minio中间件,因连接minio超时,启动失败问题

注:服务器情况:2台服务器,内网服务器包含(activemq、minio、nginx、redis、mysql、后端java服务)。外网服务器只有后端java服务,访问内网的中间件(内网服务器开放了部分指定端口) 问…

01_FreeRTOS移植

FreeRTOS移植 FreeRTOS移植FreeRTOS移植-中断文件修改 FreeRTOS移植 内核移植时用到的文件 复制工程模板,不需要的源文件全部删除 复制到工程文件中 放到这里 注释掉这两个重复定义的中断 替换掉工程中的裸机延时 FreeRTOS移植-中断文件修改

React脚手架的搭建与使用

React脚手架是开发现代Web应用的必备,其充分利用Webpack、Babel、ESlint等工具辅助项目的开发,当然这些工具也无需手动配置即可使用,脚手架的意义更多的是关注的是业务而不是工具的配置;项目的整体技术架构为:react w…

OpenHarmony实战开发-如何通过分割swiper区域,实现指示器导航点位于swiper下方的效果。

介绍 本示例介绍通过分割swiper区域,实现指示器导航点位于swiper下方的效果。 效果预览图 使用说明 1.加载完成后swiper指示器导航点,位于显示内容下方。 实现思路 1.将swiper区域分割为两块区域,上方为内容区域,下方为空白区…

git clone报错:error invalid path ‘dorisdockerthirdpartiesdocker-composexxxx‘

git clone报错:error: invalid path ‘doris/docker/thirdparties/docker-compose/xxxx’ 在周日晚上,我尝试从GitHub上克隆Doris的代码库,以便进行学习。在使用IntelliJ IDEA进行克隆时,我遇到了一个Git错误。具体操作如下&…

selenium反反爬虫,隐藏selenium特征

一、stealth.min.js 使用 用selenium爬网页时,常常碰到被检测到selenium ,会被服务器直接判定为非法访问,这个时候就可以用stealth.min.js 来隐藏selenium特征,达到绕过检测的目的 from selenium import webdriver from seleniu…

KDTree索引(K近邻搜索,半径R内近邻搜索)——PCL

K近邻搜索(K Nearest Neighbors) K近邻搜索是一种基于点数量的搜索方法,它会找到指定点附近最接近的K个邻居点。K近邻搜索中的K值是一个参数,您需要指定要搜索的邻居数量。该方法适用于需要查找固定数量邻居点的情况,…

2W 3KVDC 隔离 稳压单输出 DC/DC 电源模块——TPK-SAR 系列介绍

TPK-SAR系列产品是专门针对PCB上分布式电源系统中需要与输入电源隔离且输出精度要求较高的电源应用场合而设计。该产品适用于;1)输入电源的电压变化≤5%;2)输入输出之前要求隔离电压≥3000VDC;3)对输出电压…

使用两台主机实现博客的搭建

1.运行环境 这里的主机IP是自己虚拟器的IP。 主机主机名系统服务192.168.179.128Server-WebLinuxWeb192.168.179.129Server-NFSDNSLinuxNFS/DNS 2.基础配置 1.配置主机名,静态IP地址 2.开启防火墙并配置 3.部分开启SElinux并配置 4.服务器之间使用同ntp.aliyun.com…

正整数分解-第12届蓝桥杯省赛Python真题精选

[导读]:超平老师的Scratch蓝桥杯真题解读系列在推出之后,受到了广大老师和家长的好评,非常感谢各位的认可和厚爱。作为回馈,超平老师计划推出《Python蓝桥杯真题解析100讲》,这是解读系列的第54讲。 正整数分解&#…

Golang 开发实战day11 - Pass By Value

🏆个人专栏 🤺 leetcode 🧗 Leetcode Prime 🏇 Golang20天教程 🚴‍♂️ Java问题收集园地 🌴 成长感悟 欢迎大家观看,不执着于追求顶峰,只享受探索过程 Golang 开发实战day11 - 按值…

如何阻止访问您的网站

本周有一个客户,购买Hostease的HK Basic Linux虚拟主机,询问我们的在线客服,如何阻止部分地区或IP段访问他的网站。我们为用户提供教程,用户很快完成了设置。在此,我们分享这个操作教程,希望可以对您有帮助…

管理 nodejs 版本工具 nvm

nvm 方便切换不同版本的 node 及 对应的 npm 版本 一、安装nvm nvm官网 &#xff08;内含下载的文件&#xff0c;点击进去下载&#xff0c;并按照 网站文档步骤 操作即可&#xff09; 二、nvm 基础命令 nvm arch&#xff1a;显示node是运行在32位还是64位。nvm install <…

网上订餐系统|基于springboot的网上订餐系统设计与实现(源码+数据库+文档)

网上订餐系统目录 目录 基于springboot的网上订餐系统设计与实现 一、前言 二、系统功能设计 三、系统实现 1、用户功能模块的实现 &#xff08;1&#xff09;用户注册界面 &#xff08;2&#xff09;用户登录界面 &#xff08;3&#xff09;菜品详情界面 &#xff08…

随动系统同步性问题(跟随给定和跟随反馈的区别)

1、运动控制比例随动 运动控制比例随动系统_正运动随动系统-CSDN博客文章浏览阅读1.4k次,点赞2次,收藏5次。PLC如何测量采集编码器的位置数据,不清楚的可以参看我的另一篇博文:三菱FX3U PLC高速计数器应用(附代码)_RXXW_Dor的博客-CSDN博客本文主要以三菱FX3U系列的高速…

Groovy程序设计-【第一部分Groovy起步】-02-面向Java开发者的Groovy

前言&#xff1a; 知识点记录来源于【Groovy程序设计】一书中&#xff0c;本文仅作知识点记录供日后使用查询&#xff0c;不做教程使用。 groovy支持java语法&#xff0c;并且保留了java的语义&#xff0c;所以我们可以随心所欲的混用两种语言。 1.从Java到Groovy 先看一个…

vr兽医设备操作模拟仿真教学平台提升教学效果

在兽医教育的传统领域中&#xff0c;动物诊疗一直是一项不可或缺的实践环节。然而&#xff0c;传统的解剖教学方式受限于动物数量、种类以及安全隐患&#xff0c;无法充分满足学生的学习需求。随着VR虚拟仿真技术的不断精进&#xff0c;VR动物诊疗仿真实训系统为兽医教育带来了…