redis的学习(二):常见数据结构及其方法

news2024/11/24 21:04:26

简介

redis常见的数据结构和他们的常用方法

redis的数据结构

redis是一个key-value的nosql,key一般是字符串,value有很多的类型。
j基本类型:

  • string
  • hash
  • list
  • set
  • sortedSet

特殊类型:

  • GEO
  • BitMap
  • HyperLog

key的结构

可以使用多个单词,中间使用:隔开来形成层级结构
例如 :
school:student:1
school:teacher:1
在这里插入图片描述
在这里插入图片描述
在图形界面可以查看到层级结构
在这里插入图片描述

redis的常用通用命令

可以使用help @generic查看全部的通用命令的帮助文档,也可以使用help 具体命令 查看具体命令的帮助文档。
下面是一些常用的通用命令

keys

可以接通配符,如

keys *:查看所有的key。
keys n * :查看所有n开头的key
在这里插入图片描述

注意:不建议在生产环境下使用

del

del key名:删除key,可以同时删除多个

exist

exist key名:查看指定key是否存在,存在返回1,不存在返回0。
在这里插入图片描述

expire

expire key名 时间(秒):给一个key设置有效时间,到了有效时间改key会删除。

ttl

ttl key名:查看key剩余有效时间,-1表示永久有效,-2表示已过期
在这里插入图片描述

String类型

是redis中最简单的存储类型。但根据字符串的格式,可以分为

  • string:普通字符串
  • int:整型,可进行自增自减操作
  • float:浮点类型,可进行自增自减操作
    它们的底层都是字节形式存储,只是编码方式不同
常用命令:
  • set:添加键值对或修改已经存在的key的value
  • get:根据key获得value
  • mset:批量添加键值对
  • mget:根据多个key获得多个value
  • incr:整型类型的数字自增长1
  • incrby:整型类型的数字自增长,指定增长值,加上负数就是自减
  • incrbyfloat:浮点类型的数字自增长,可以指定增长值
  • setnx:添加一个string类型的键值对,这个key要不存在,否则不执行。
  • setex:添加一个string类型的键值对,并指定有效期
    在这里插入图片描述

hash类型

也叫散列,其value是个无序字典

常用命令
  • hset key名 字段名 value值:添加或者修改hash类型的key的字段的值
  • hget key名 字段名:获取hash类型的字段的值
  • hmset:批量添加多个hash类型的key的字段的值
  • hmget:批量获取多个hash类型的key的字段的值。
  • hgetall:获取一个hash类型的key中的所有的field字段和value值。
  • hkeys:获取一个hash类型的key中的所有的field字段。
  • hvals:获取一个hash类型的key中的所有的value值。
  • hincrby:让一个hash类型key的字段值自增并指定步长。
  • hsetnx:添加一个hash类型的key的field值,前提是这个field不存在,否则不执行。
    在这里插入图片描述

list类型

和Java中的linkedlist类似,支持正向检索和反向检索。
特点:

  • 有序
  • 元素可重复
  • 插入和删除快,查询一般
常用命令
  • lpush key element …:向列表左侧插入一个或多个元素。
  • lpop key:移除并返回列表左侧的第一个元素,如果没有元素,则返回 nil。
  • rpush key element …:向列表右侧插入一个或多个元素。
  • rpop key:移除并返回列表右侧的第一个元素。
  • lrange key start end:返回列表中指定区间内的元素,起点包括,终点不包括。
  • blpop和 brpop :这两个命令类似于 LPOP 和 RPOP,但在没有元素的时候会阻塞等待指定的时间,而不是立即返回 nil。
    在这里插入图片描述

set类型

和Java中的hashset类似
特点:

  • 无序
  • 元素不可重复
  • 查询快
  • 可以进行交集,并集的操作
常用命令
  • sadd key member …:set中添加一个或多个元素
  • srem key member…:溢出set中指定的元素
  • scard key:返回set中的元素的个数
  • sismember key member:判断一个元素是否存在于set中
  • smembers:获取set中的所有元素

在这里插入图片描述

  • sinter key1 key2…:key1和key2的交集,共同拥有的部分
  • sdiff key1 key2 …:key1和key2的差集,key1有key2没有的部分
  • sunion key1 key2…:key1和key2的并集,key1和key2的加起来
    在这里插入图片描述

sortedset类型

可排序的set组合,它的每一个元素都带有score属性,可以基于这个score属性对元素进行排序。
特点:

  • 可排序
  • 元素不可重复
  • 查询速度快
常用命令

zadd key score member:添加一个或多个元素到sorted set,如果已经存在则更新其score值
zrem key member:删除sorted set中的一个指定元素
zscore key member :获取sorted set中的指定元素的score值
zrank key member:获取sorted set中的指定元素的排名
zcard key:获取sorted set中的元素个数
zcount key min max:统计score值在给定范围内的所有元素的个数
zincrby key increment member:让sorted set中的指定元素自增,步长为指定的increment值
zrange key min max:按照score排序后,获取指定排名范围内的元素
zrangebyscore key min max:按照score排序后,获取指定score范围内的元素
zdiff:差集
zinter:交集
zunion:并集
注意:这里的排序都是升序的,如果要降序,把命令的开头z换成zrev
在这里插入图片描述
在这里插入图片描述

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

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

相关文章

VScode连接虚拟机运行Python文件的方法

声明:本文使用Linux发行版本为rocky_9.4 目录 1. 在rocky_9.4最小安装的系统中,默认是没有tar工具的,因此,要先下载tar工具 2. 在安装好的vscode中下载ssh远程插件工具 3. 然后连接虚拟机 4. 查看python是否已经安装 5. 下载…

Maven的核心概念

Maven的核心概念 —2020年06月11日 什么是Maven Maven是一款服务于Java平台的自动化构建工具。 约定的目录结构 目录结构: 根目录:工程名src目录:源码pom.xml文件:Maven工程的核心配置文件main目录:存放主程序tes…

Zabbix监控系统:zabbix服务部署+基于Proxy分布式部署+zabbix主动与被动监控模式

一、Zabbix概述 1.1 简介 zabbix 是一个基于 Web 界面的提供分布式系统监视以及网络监视功能的企业级的开源解决方案。 zabbix 能监视各种网络参数,保证服务器系统的安全运营,提供灵活的通知机制以让系统管理员快速定位/解决存在的各种问题。 zabbix…

三、GPIO按键读取

在上一篇文章中,我们详细讲解了GPIO的写函数。万事万物都具有一定的相对性,GPIO的操作也不例外。既然有写操作,那么必然也有读操作。有了上一篇文章的基础,理解本篇内容将会更加容易。 一、这篇文章能了解什么 本篇文章将基于上一…

为什么用LeSS?

实现适应性 LeSS是一个产品开发的组织系统,旨在最大化一个组织的适应性。关于适应性(或者敏捷性,也就是敏捷开发的初衷)我们是指优化: 以相对低的成本改变方向的能力,主要是基于通过频繁交付产生的探索。从…

【Linux 驱动】IMX6ULL eLCDIF驱动

1. eLCDIF设备树 lcdif: lcdif021c8000 {compatible "fsl,imx6ul-lcdif", "fsl,imx28-lcdif"; //属性reg <0x021c8000 0x4000>; //起始地址 地址大小interrupts <GIC_SPI 5 IRQ_TYPE_LEVEL_HIGH>; …

1小时上手Alibaba Sentinel流控安全组件

微服务的雪崩效应 假如我们开发了一套分布式应用系统&#xff0c;前端应用分别向A/H/I/P四个服务发起调用请求&#xff1a; 但随着时间推移&#xff0c;假如服务 I 因为优化问题&#xff0c;导致需要 20 秒才能返回响应&#xff0c;这就必然会导致20秒内该请求线程会一直处于阻…

Prompt Enginnering(提示工程)

什么是提示工程 prompt enginnering是提示工程的意思&#xff0c;也有叫指令工程。 用白话讲&#xff1a;是我们对GPT说出的话&#xff0c;我们向它提问的信息&#xff0c;就是prompt。 官方一点&#xff1a;是我们使用自然语言提示来控制和优化生成式模型&#xff08;生成式…

《Milvus Cloud向量数据库指南》——SPLADE:基于BERT的Learned稀疏向量技术深度解析

在自然语言处理(NLP)领域,随着深度学习技术的飞速发展,预训练语言模型如BERT(Bidirectional Encoder Representations from Transformers)已成为推动研究与应用进步的重要基石。BERT通过其强大的上下文感知能力,在多项NLP任务中取得了显著成效,尤其是在文本表示和语义理…

深入理解Linux网络(五):TCP接收唤醒

深入理解Linux网络&#xff08;五&#xff09;&#xff1a;TCP接收唤醒 TCP接收唤醒由软中断提供服务。 软中断&#xff08;也就是 Linux ⾥的 ksoftirqd 进程&#xff09;⾥收到数据包以后&#xff0c;发现是 tcp 的包的话就会执⾏到 tcp_v4_rcv 函数。接着如果是 ESTABLISH…

GMSSL2.x编译鸿蒙静态库和动态库及使用

一、编译环境准备 1.1 开发工具 DevEco-Studio下载。 1.2 SDK下载 ​ 下载编译第三方库的SDK有两种方式&#xff0c;第一种方式从官方渠道根据电脑系统选择对应的SDK版本&#xff0c;第二种方式通过DevEco-Studio下载SDK。本文只介绍通过DevEco-Studio下载SDK的方式。 安装…

(十一)Spring教程——Bean基本配置与依赖注入之属性注入

1.Bean基本配置 在进行Bean配置的详细讲解之前&#xff0c;先来了解以下Bean配置的基础知识&#xff0c;以快速建立起Bean配置的初步概念。 1.1装配一个Bean 在Spring容器的配置文件中定义一个简要Bean的配置片段如下所示 <bean id”foo” class”com.smart.Foo”/> 一般…

【VSCode】安装 【ESP-IDF】插件及【ESP32-S3】新建工程和工程配置

一、搭建基础工程 二、基础工程的文件架构解析 三、调试相关工具介绍 1、串口下载2、JTAG 下载与调试 四、工程的文件架构解析 五、基础工程配置 一、搭建基础工程 在 VS Code 中新建 ESP-IDF 基础工程的步骤如下&#xff1a; 1、启动 VS Code 并打开命令面板 按下“Ctrl…

AI+BI结合,数据分析新方向 —— 奥威BI数据可视化引领未来

【AIBI结合&#xff0c;数据分析新方向 —— 奥威BI数据可视化引领未来】 在数字化浪潮汹涌的今天&#xff0c;企业对于数据的洞察力与决策效率的需求日益增长。奥威BI&#xff08;Business Intelligence&#xff09;数据可视化解决方案&#xff0c;以其独特的“AIBI”融合创新…

压缩视频在线免费 怎么免费压缩视频大小 哪个软件可以免费压缩视频

在数字媒体时代&#xff0c;视频文件的体积越来越大&#xff0c;这就需要我们找到高效的方式来压缩视频&#xff0c;以节省存储空间和提升分享速度。本文将为您介绍几款免费的视频压缩软件&#xff0c;帮助您轻松应对视频文件管理难题。 方法一、 安装并打开一款的视频软件。 …

通过iframe嵌套的不同域名的页面之间处理cookie存储失败的问题——js技能提升

最近同事在写mvc的后台管理系统&#xff0c;通过iframe实现不同域名的页面的嵌套。 但是有个问题&#xff0c;就是从父页面打开iframe的子页面时&#xff0c;需要登录子页面&#xff0c;此时需要将子页面登录后的token存储到子页面的cookie中&#xff0c;方便子页面的其他接口…

Python 全栈体系【三阶】(三)

第一章 Django 七、静态文件 1. 概述 静态文件是指在WEB应用中的图像文件、CSS文件、Javascript文件。 2. 静态文件的配置 settings.py中关于静态文件的配置如下&#xff1a; STATICFILES_DIRS [BASE_DIR , static, ]STATIC_URL /static/其中&#xff1a; STATICFILES…

Vue 3 + Vite 项目中安装 Tailwind CSS

官网&#xff1a;安装 - TailwindCSS中文文档 | TailwindCSS中文网 tips&#xff1a;只按照官网的配置可能会导致样式不加载/加载不生效的问题 1、正确安装指令 npm install -D tailwindcss postcss autoprefixer npx tailwindcss init -p 自动生成 ​tailwind.config.js​…

鱼眼摄像头-opencv校准(基于棋盘+畸变表)

一&#xff1a;主要参数说明 1&#xff1a;内参矩阵K 是3*3的矩阵&#xff0c;其类似格式 Knp.array([ [389.2109574522624, 0.0, 630.2525667489842], [0.0, 388.505701978078, 360.7886749292513], [0.0, 0.0, 1.0]]) 2&#xff1a;畸变系数 针对鱼眼相机&#xff1a;…

DVWA靶场超(详细教程)--跨站攻击(XSS+CSRF)

一、XSS 反射型xss 打开dvwa的Reflected Cross Site Scripting (XSS) &#xff08;1&#xff09;low等级 查看页面源码&#xff08;ctrlu&#xff09;该界面有提交按钮和输入框 在输入框随便输入点字符&#xff0c;点击提交 可以看见输入的helloword嵌入到界面中。 View sou…