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

【速成Redis】02 Redis 五大基本数据类型常用命令

前言:

上一节课,我们对redis进行了初步了解,和安装好了redis。
【速成Redis】01 Redis简介及windows上如何安装redisicon-default.png?t=O83Ahttps://blog.csdn.net/weixin_71246590/article/details/142319358?spm=1001.2014.3001.5501

该篇博客,我们正式开始学习redis的操作。

上节课我们讲到redis的数据类型有如下几种:

本篇我们将讲解:redis五大基本数据类型(也是就上图的第一列)的常用语句。 

食用说明:初学者建议边看边看边敲。复习者可根据目录快速复习某个命令。

目录

1.字符串String

设置键值对:set key value

根据键取其值:get key

删除某个键:del key 

判断一个键是否存在:exists key 

 查找所有的键:keys * 

查找所有以ge结尾的键:*ge

删除所有的键:flushall 

如何设置带有过期时间的键值对?

- setnx 和setex 的区别

2.list(列表)

lpush(头插元素)

lrange(查看当前元素)

lpop、rpop 命令也可以一次性删除多个元素

删除操作: 

3.集合Set

新建/增加set中的元素:sadd  set x y z 

查看set中的成员:smember  set

判断某个元素是否在set中:sismember set element

删除set中某个元素 :srem sourse element

4.有序集合sortedSet

创建一个集合/追加元素:zadd 

查看集合中的元素:zrange

查看某个成员分数:zscore

查看某个成员排名(从大到小):zrevrank

- 删除有序集合中的某个成员:ZREM

- 对某个成员的分数进行增加ZINCRBY

- 删除某个排名范围内的成员ZREMRANGEBYRANK

5.哈希Hash

 hset用法示例:设置名为person的集合的键值对

hget用法示例: 查看名为person的某个key对应的value

hgetall:查看某个集合里的所有的键值对 

hdel:删除某个集合里的某个键值对

hexists:查看某个集合里的某个键值对是否存在 

 hkeys:获取所有键值对的key 

 hlen:获取所有键值对的数量


1.字符串String

redis insight 中也可以使用命令行。

- redis中的值以键值对的方式存储。

设置键值对:set key value
根据键取其值:get key


- redis里的键区分大小写

- redis里默认使用字符串存储数据,并且是二进制安全的,我们可以把很多类型的数据存储到redis当中,比如数字,布尔类型,序列化后的对象等。


删除某个键:del key 


判断一个键是否存在:exists key 


 查找所有的键:keys * 


查找所有以ge结尾的键:*ge


删除所有的键:flushall 

 


(ps:redis中的值都是以二进制的形式存储的,默认是不支持中文的) 

中文 -> 二进制

\x表示后面的是16进制

解决办法:

在连接服务时候加上一个raw参数,表示以原始形式显示内容:

redis-cli --raw


跟着练习的小伙伴们,这时候的命令行窗口已经很满了,我们需要清空屏幕: 

清空屏幕:clear


如何设置带有过期时间的键值对?

- TTL命令查看键的过期时间(time to live :表示这个键还有多久过期) 

ttl key 

- 给已经存在的key设置过期时间:

expire key 10 (默认为单位为秒)

- 直接新建一个带有过期时间的键值对:

setex key seconds value


- setnx 和setex 的区别

setnx key value:当键不存在时,才新建该键,当键已经存在时,不做任何动作。

set key value:当键不存在时,新建该键。当键已经存在时,覆盖原value。


2.list(列表)

一般用来存储和操作一组有顺序的数据,类似数组。

lpush(头插元素)
lrange(查看当前元素)

lpush可以一次性添加多个元素~ 


当前list中的状况:  

通过观察我们可以知道:lpush是头插法:元素添加到list头部


rpush是尾插法(元素添加到列表尾部),其用法与lpush类似。

 


看这个图可以理解四个关键字:进出都有两个方向

l代表左边(left),r代表右边(right)

lpop、rpop 命令也可以一次性删除多个元素

一次性删除两个元素:lpop list

(注意:redis版本大于6.2.0才能一次性删除多个元素)


查看列表元素:llen list


实现简单的消息队列:可以用 rpop让队尾的元素出队 ,用lpush让心元素进队头。


删除操作: 

删除一个整个队列:del list

删除列表元素(理解为保留列表指定范围x-y内的元素):ltrim list x y

3.集合Set

set 为无序不重复集合,就是我们在数学上的那个集合。

list中的元素可以重复,而set中不可以。

set的命令以s开头

新建/增加set中的元素:sadd  set x y z 
查看set中的成员:smember  set

验证set的唯一性,尝试添加已有元素:

0 通常表示命令没有对目标数据造成实际变化,影响的元素数为 0

判断某个元素是否在set中:sismember set element

删除set中某个元素 :srem sourse element

 

(图片标注那里有个错别字啊啊啊,见谅)

我是故意的,让大家记住srem!!

 集合的运算:

两个集合之间的交集、并集等运算,redis当中也是支持的。


4.有序集合sortedSet

有序集合,可以理解为优先级队列,每个元素有一个分数,代表权重。

创建一个集合/追加元素:zadd 
查看集合中的元素:zrange

使用例子:

注意使用zadd关键字时是先分数再成员。


查看某个成员分数:zscore

zscore key member

 


查看某个成员排名(从小到大):zrank

zrank result member 

 

注意:下标是从0开始的,这里的排名值的是升序排序(从小到大)的排名。


查看某个成员排名(从大到小):zrevrank

zrevrank result member 


- 删除有序集合中的某个成员:ZREM

可以使用 ZREM命令来删除有序集合中的某个或多个成员。

ZREM key member [member ...]

示例:

ZREM result alice


- 对某个成员的分数进行增加ZINCRBY

可以使用ZINCRBY命令为有序集合中的某个成员增加指定的分数。

ZINCRBY key increment member

示例:

ZINCRBY result 10 sally


- 删除某个排名范围内的成员ZREMRANGEBYRANK

可以使用 ZREMRANGEBYRANK 命令根据成员的排名范围删除成员。排名是按分数从低到高排列。

ZREMRANGEBYRANK key start stop

示例:

ZREMRANGEBYRANK result 0 2 

该命令将删除 result 集合中排名从 0 到 2 的成员(排名从 0 开始)。


5.哈希Hash

哈希是一个字符类型的字段和值的映射表。键值对的集合。特别适合存储对象。

 前面我们在学习字符串时所使用的set和get的操作在这里变成hset、hget

我们现在有一个对象person:

其name:taylor

其age:32

 hset用法示例:设置名为person的集合的键值对

hget用法示例: 查看名为person的某个key对应的value

hgetall:查看某个集合里的所有的键值对 

  

hdel:删除某个集合里的某个键值对

 

可以看到删除完之后只剩person了。

hexists:查看某个集合里的某个键值对是否存在 

 

1表示name存在,0表示age不存在。

注意这里的exists是有s的,可以理解为第三人称单数(?)

 hkeys:获取所有键值对的key 

 hlen:获取所有键值对的数量

相关文章:

【速成Redis】02 Redis 五大基本数据类型常用命令

前言: 上一节课,我们对redis进行了初步了解,和安装好了redis。【速成Redis】01 Redis简介及windows上如何安装redishttps://blog.csdn.net/weixin_71246590/article/details/142319358?spm1001.2014.3001.5501 该篇博客,我们正…...

UnLua扩展C++函数和蓝图自定义事件

一、通过BlueprintImplementableEvent标记扩展C函数 1、 这个标记表示C不需要实现,让蓝图/Lua重写。 2、首先在C中将LuaImp函数标记为BlueprintImplementableEvent,不需要实现,然后再GetIndex中调用该函数。 MyBaseActor.h UFUNCTION(Bluepr…...

干耳屎硬掏不出来怎么办?质量最好的可视挖耳勺推荐

很多干耳的小伙伴都会用普通耳勺来掏耳朵。由于普通耳勺由于其盲操作的特性,对于耳道非直线结构的清理存在诸多不便。所以市面上出现了可视挖耳勺,让我们清晰的看到自己耳道,更加安全的清洁耳朵。,可视挖耳勺这款产品在市场上越来…...

谷歌 Chrome 最新版升级:更强的安全检查功能守护你的上网安全

谷歌 Chrome 浏览器产品经理 Andrew Kamau 在最新发布的博文中宣布,Chrome 浏览器迎来了新一轮的安全升级。新版 Chrome 在后台自动运行安全检查功能,采取了额外的主动措施来保障用户的安全。 自动撤销通知权限 新版 Chrome 浏览器采用了一项基于谷歌安…...

深度学习自编码器 - 收缩自编码器(CAE)篇

序言 在深度学习的浪潮中,收缩自编码器( Compressive Autoencoder, CAE \text{Compressive Autoencoder, CAE} Compressive Autoencoder, CAE)作为自编码器的一种高级形式,正逐步崭露头角。收缩自编码器在保留自编码器核心功能—…...

Dubbo与SpringCloud的区别和优缺点

经常会有同学问我,Dubbo和SpringCloud的选择。甚至也经常会有面试官就这个问题刨根问底。 说实话,其实我不太喜欢回答这个问题,本质上来讲,Dubbo的SpringCloud可以算是完全不同赛道的两种东西,就好像问大家西瓜和土豆我…...

★ C++进阶篇 ★ 多态

Ciallo&#xff5e;(∠・ω< )⌒☆ ~ 今天&#xff0c;我将继续和大家一起学习C进阶篇第二章----多态 ~ ❄️❄️❄️❄️❄️❄️❄️❄️❄️❄️❄️❄️❄️❄️ 澄岚主页&#xff1a;椎名澄嵐-CSDN博客 C基础篇专栏&#xff1a;★ C基础篇 ★_椎名澄嵐的博客-CSDN博客 …...

pg入门3—详解tablespaces2

pg默认的tablespace的location为空&#xff0c;那么如果表设置了默认的tablespace&#xff0c;数据实际上是存哪个目录的呢? 在 PostgreSQL 中&#xff0c;如果你创建了一个表并且没有显式指定表空间&#xff08;tablespace&#xff09;&#xff0c;或者表空间的 location 为…...

python 爬虫 selenium 笔记

todo 阅读并熟悉 Xpath, 这个与 Selenium 密切相关、 selenium selenium 加入无图模式&#xff0c;速度快很多。 from selenium import webdriver from selenium.webdriver.chrome.options import Options# selenium 无图模式&#xff0c;速度快很多。 option Options() o…...

git分支管理的一些常用规范

一、分支命名规范 1.通常项目经理或者需求方会给需求开发做计划&#xff0c;约定一些编码&#xff0c;例如FN-01。此时这个需求指派给你&#xff0c;这个时候你可以在现有代码仓库的maser分支或者其他约定的开发分支checkout到本地&#xff0c;命名这个需求的开发分支为feat/F…...

GPT-4论文阅读

GPT-4 Technical Report论文阅读 文章目录 GPT-4 Technical Report论文阅读 Abstract训练的稳定性Training processPredictable scaling训练的稳定性多么难能可贵 Capabilities考试成绩传统的benchmark语言方面的能力Visual inputsSteerability LimitationsRisks & mitigat…...

this 指向

this 指向谁? 多数情况下,this 指向调用它所在方法的那个对象。 说得更通俗点,谁调的函数,this 就归谁。当调用方法没有明确对象时,this 就指向全局对象。在浏览器中,指向 window;在 Node 中,指向 Global。(严格模式下,指向 undefined) this 的指向是在调用时决定的…...

【贪心算法】贪心算法一

贪心算法一 1.柠檬水找零2.将数组和减半的最少操作次数3.最大数4.摆动序列 点赞&#x1f44d;&#x1f44d;收藏&#x1f31f;&#x1f31f;关注&#x1f496;&#x1f496; 你的支持是对我最大的鼓励&#xff0c;我们一起努力吧!&#x1f603;&#x1f603; 1.柠檬水找零 题目…...

windnd.hook_dropfiles中的create_buffer值太小无法拖放长文件名

今天在使用我之前的Python识别拖放的PDF文件再转成文本文件-CSDN博客发现&#xff0c;文件藏在路径太深入的地方&#xff0c;不能打开&#xff0c;因为拖放文件只能读取260个字节的文件名&#xff08;b’路径&#xff09;&#xff0c;再查看windnd.hook_dropfiles函数&#xff…...

Gitlab runner的使用示例(二):Maven + Docker 自动化构建与部署

Gitlab runner的使用示例&#xff08;二&#xff09;&#xff1a;Maven Docker 自动化构建与部署 在本篇文章中&#xff0c;我们将详细解析一个典型的 GitLab CI/CD 配置文件&#xff08;gitlab-ci.yml&#xff09;&#xff0c;该文件主要用于通过 Maven 构建 Java 应用&…...

QNX Hypervisor(十)Linux Guest IPC 二

上文还遗留了一个问题,就是在测试ipc的时候挂死了。相关原理我写在了另外一篇文章。 内存管理 所以导致挂死的问题就是因为没有进行地址映射,mmu无法转换。从kernel代码看,只有ram区域才会进行映射。我们的qvmconf文件也确实没有配置0xb8000000,只配置了pass。 pass loc …...

怎样把PPT上顽固的图标删了

例如&#xff1a; 解决&#xff1a; 首先打开下载好的PPT模板&#xff0c;然后在视图选项卡里面找到幻灯片母版。 进入幻灯片母版后&#xff0c;找到第一页母版页就会看到LOGO了&#xff0c;这时使用鼠标就可以选中删除啦。...

【论文阅读】Slim Fly: A Cost Effective Low-Diameter Network Topology 一种经济高效的小直径网络拓扑

文章目录 Slim Fly: A Cost Effective Low-Diameter Network Topology文章总结1. 摘要2. indroduction3. 主要工作 主要思想references Slim Fly: A Cost Effective Low-Diameter Network Topology Slim Fly&#xff1a;一种经济高效的小直径网络拓扑 SC’14 Maciej Besta 苏…...

Prometheus使用Pushgateway推送数据

Pushgateway简介 Prometheus 的 Pushgateway 是一个简单的 HTTP 服务器&#xff0c;它允许数据被推送到该服务器&#xff0c;而不是通过拉取的方式获取。它的存在是为了让临时和批处理作业能够将其指标暴露给 Prometheus。由于这类作业可能存在的时长不足以被主动抓取&#xf…...

【Oracle】调优与oracle最大连接数配置

博主介绍&#xff1a; 大家好&#xff0c;我是想成为Super的Yuperman&#xff0c;互联网宇宙厂经验&#xff0c;17年医疗健康行业的码拉松奔跑者&#xff0c;曾担任技术专家、架构师、研发总监负责和主导多个应用架构。 技术范围&#xff1a; 目前专注java体系&#xff0c;DDD&…...

多模态大语言模型arxiv论文略读(108)

CROME: Cross-Modal Adapters for Efficient Multimodal LLM ➡️ 论文标题&#xff1a;CROME: Cross-Modal Adapters for Efficient Multimodal LLM ➡️ 论文作者&#xff1a;Sayna Ebrahimi, Sercan O. Arik, Tejas Nama, Tomas Pfister ➡️ 研究机构: Google Cloud AI Re…...

Java求职者面试指南:Spring、Spring Boot、MyBatis框架与计算机基础问题解析

Java求职者面试指南&#xff1a;Spring、Spring Boot、MyBatis框架与计算机基础问题解析 一、第一轮提问&#xff08;基础概念问题&#xff09; 1. 请解释Spring框架的核心容器是什么&#xff1f;它在Spring中起到什么作用&#xff1f; Spring框架的核心容器是IoC容器&#…...

在鸿蒙HarmonyOS 5中使用DevEco Studio实现企业微信功能

1. 开发环境准备 ​​安装DevEco Studio 3.1​​&#xff1a; 从华为开发者官网下载最新版DevEco Studio安装HarmonyOS 5.0 SDK ​​项目配置​​&#xff1a; // module.json5 {"module": {"requestPermissions": [{"name": "ohos.permis…...

水泥厂自动化升级利器:Devicenet转Modbus rtu协议转换网关

在水泥厂的生产流程中&#xff0c;工业自动化网关起着至关重要的作用&#xff0c;尤其是JH-DVN-RTU疆鸿智能Devicenet转Modbus rtu协议转换网关&#xff0c;为水泥厂实现高效生产与精准控制提供了有力支持。 水泥厂设备众多&#xff0c;其中不少设备采用Devicenet协议。Devicen…...

C++实现分布式网络通信框架RPC(2)——rpc发布端

有了上篇文章的项目的基本知识的了解&#xff0c;现在我们就开始构建项目。 目录 一、构建工程目录 二、本地服务发布成RPC服务 2.1理解RPC发布 2.2实现 三、Mprpc框架的基础类设计 3.1框架的初始化类 MprpcApplication 代码实现 3.2读取配置文件类 MprpcConfig 代码实现…...

VisualXML全新升级 | 新增数据库编辑功能

VisualXML是一个功能强大的网络总线设计工具&#xff0c;专注于简化汽车电子系统中复杂的网络数据设计操作。它支持多种主流总线网络格式的数据编辑&#xff08;如DBC、LDF、ARXML、HEX等&#xff09;&#xff0c;并能够基于Excel表格的方式生成和转换多种数据库文件。由此&…...

uni-app学习笔记三十五--扩展组件的安装和使用

由于内置组件不能满足日常开发需要&#xff0c;uniapp官方也提供了众多的扩展组件供我们使用。由于不是内置组件&#xff0c;需要安装才能使用。 一、安装扩展插件 安装方法&#xff1a; 1.访问uniapp官方文档组件部分&#xff1a;组件使用的入门教程 | uni-app官网 点击左侧…...

6.计算机网络核心知识点精要手册

计算机网络核心知识点精要手册 1.协议基础篇 网络协议三要素 语法&#xff1a;数据与控制信息的结构或格式&#xff0c;如同语言中的语法规则语义&#xff1a;控制信息的具体含义和响应方式&#xff0c;规定通信双方"说什么"同步&#xff1a;事件执行的顺序与时序…...

简单聊下阿里云DNS劫持事件

阿里云域名被DNS劫持事件 事件总结 根据ICANN规则&#xff0c;域名注册商&#xff08;Verisign&#xff09;认定aliyuncs.com域名下的部分网站被用于非法活动&#xff08;如传播恶意软件&#xff09;&#xff1b;顶级域名DNS服务器将aliyuncs.com域名的DNS记录统一解析到shado…...

Vue.js教学第二十一章:vue实战项目二,个人博客搭建

基于 Vue 的个人博客网站搭建 摘要: 随着前端技术的不断发展,Vue 作为一种轻量级、高效的前端框架,为个人博客网站的搭建提供了极大的便利。本文详细介绍了基于 Vue 搭建个人博客网站的全过程,包括项目背景、技术选型、项目架构设计、功能模块实现、性能优化与测试等方面。…...