【速成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:获取所有键值对的数量

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

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

相关文章

HTML入门笔记

概述 HTML(超文本标记语言—HyperText Markup Language)是构成 Web 世界的基础,是一种用来告知浏览器如何组织页面的标记语言。 超文本 Hypertext:指连接单个或多个网站间的网页链接,通过这些链接可以访问互联网中的…

论文速递!时序预测!DCSDNet:双卷积季节性分解网络,应用于天然气消费预测过程

本期推文将介绍一种新的时序预测方法:双卷积季节性分解网络(Dual Convolution withSeasonal Decomposition Network, DCSDNet)在天然气消费预测的应用,这项研究发表于《Applied Energy》期刊。 针对天然气消费的多重季节性和非规律性&#x…

【速成Redis】01 Redis简介及windows上如何安装redis

前言: 适用于:需要快速掌握redis技能的人(比如我),在b站,找了个课看。 01.课程简介_哔哩哔哩_bilibili01.课程简介是【GeekHour】一小时Redis教程的第1集视频,该合集共计19集,视频…

【面试八股总结】GMP模型

GMP概念 G(Goroutine):代表Go协程,是参与调度与执行的最小单位。 存储Goroutine执行栈信息、状态、以及任务函数等。G的数量无限制,理论上只受内存的影响。Goroutines 是并发执行的基本单位,相比于传统的线…

Redis集群知识及实战

1. 为什么使用集群 在哨兵模式中,仍然只有一个Master节点。当并发写请求较大时,哨兵模式并不能缓解写压力。我们知道只有主节点才具有写能力,那如果在一个集群中,能够配置多个主节点,是不是就可以缓解写压力了呢&…

sourcetree配置ssh连接gitee

使用PuttyGen.exe生成的公钥私钥格式和git文档方法生成的不一样, SSH 公钥设置 | Gitee 帮助中心 gitee方法生成的公钥类似: ssh-ed25519 AAAA***5B Gitee SSH Key PuttyGen.exe生成的: 公钥 ---- BEGIN SSH2 PUBLIC KEY ---- Comment:…

【新手/小白教程】打开一个vue项目的前置准备,nvm安装指定版本node

目录 一、前言二、nvmnvm介绍nvm下载与安装1. 官网下载 nvm 包2. 安装 nvm-setup.exe3. 配置路径和下载镜像4. 检查nvm是否安装完成5. 错误情况 三、nodenode版本查看node命令 一、前言 在换新电脑的时候总是需要把所有东西重新安装配置,这篇用来记录一下打开一个v…

【云原生监控】Prometheus之PushGateway

Prometheus之PushGateway 文章目录 Prometheus之PushGateway介绍作用资源列表基础环境一、部署PushGateway1.1、下载软件包1.2、解压软件包1.3、编辑配置systemctl启动文件1.4、创建日志目录1.5、加载并启动1.6、监控端口1.7、访问PushGateway 二、 配置Prometheus抓取PushGate…

IP协议及相关特性

IP协议负责地址管理和路由选择。它的组成为: 接下来我们将对其中较重要的部分进行介绍。 4位版本:这里的四位版本只有两个取值 分别为IPv4和IPv6,这两个额分别为不同的IP协议,但是现在主流的还是IPv4但是近年来IPv6在中国的普及率…

OpenHarmony(鸿蒙南向开发)——标准系统方案之瑞芯微RK3566移植案例(上)

往期知识点记录: 鸿蒙(HarmonyOS)应用层开发(北向)知识点汇总 鸿蒙(OpenHarmony)南向开发保姆级知识点汇总~ OpenHarmony(鸿蒙南向开发)——轻量系统STM32F407芯片移植案…

Java语言程序设计基础篇_编程练习题*18.28 (非递归目录大小)

目录 题目:*18.28 (非递归目录大小) 习题思路 代码示例 输出结果 题目:*18.28 (非递归目录大小) 不使用递归改写程序清单18-7 习题思路 ( getSize方法) 创建一个变量表示总共的大小。传入路径,创建File文件。创建A…

【Elasticsearch】-图片向量化存储

需要结合深度学习模型 1、pom依赖 注意结尾的webp-imageio 包&#xff0c;用于解决ImageIO.read读取部分图片返回为null的问题 <dependency><groupId>org.openpnp</groupId><artifactId>opencv</artifactId><version>4.7.0-0</versio…

docker存储

docker分层结构 如图所示&#xff0c;容器是由最上面可读可写的容器层&#xff0c;以及若干个只读镜像层组成&#xff0c;创建容器时&#xff0c;容器中的 数据都来自镜像层。这样的分层机构最大的特点是写时复制&#xff1a; 1、容器中新生成的数据会直接存放在容器层&#xf…

移动技术开发:登录注册界面

1 实验名称 登录注册界面 2 实验目的 掌握基本布局管理器的使用方法和基本控件的使用方法 3 实验源代码 布局文件代码&#xff1a; <?xml version"1.0" encoding"utf-8"?><LinearLayoutxmlns:android"http://schemas.android.com/apk/…

在Windows 7上安装Redis

1、下载Redis安装包‌&#xff1a; 首先&#xff0c;从Redis的官方网站或可信的第三方资源下载Redis的Windows版本安装包。确保下载与你的Windows 7系统兼容的版本。 2、解压安装包‌&#xff1a; 将下载的Redis安装包解压到你选择的目录&#xff0c;例如F:\Redis\redis-win…

关于文件操作

1. 为什么使⽤⽂件&#xff1f; 如果没有⽂件&#xff0c;我们写的程序的数据是存储在电脑的内存中&#xff0c;如果程序退出&#xff0c;内存回收&#xff0c;数据就丢失 了&#xff0c;等再次运⾏程序&#xff0c;是看不到上次程序的数据的&#xff0c;如果要将数据进⾏持久…

栈和队列的算法题目(C语言)

1. 括号匹配问题 20. 有效的括号 - 力扣&#xff08;LeetCode&#xff09; 利用栈后入先出的特性解题 1.判断字符串是否为空 为空返回 2.创建栈&#xff0c;遍历字符串 第一个字符是左括号的情况&#xff1a;入栈->继续遍历下一个字符 第一个字符是右括号的情况&#xf…

CAD图1

文章目录 选择直线工具选择圆形选中圆形 选择直线工具 画一条十字中心线 选择圆形 以十字中心为起点画一个半径为 53 的圆形 选中圆形 选中圆形&#xff0c;捕捉右侧圆形焦点

【算法专题】穷举vs暴搜vs深搜vs回溯vs剪枝

二叉树剪枝 LCR 047. 二叉树剪枝 - 力扣&#xff08;LeetCode&#xff09; 本题要求我们将全部为0的二叉树去掉&#xff0c;也就是剪枝&#xff0c;当我们举一个具体的例子进行模拟时&#xff0c;会发现&#xff0c;只关注于对其中一个子树的根节点进行剪枝&#xff0c;由于我…

4款AI生成PPT工具推荐,提升工作效率

在如今的工作环境中&#xff0c;PPT制作是许多技术人员不可避免的任务&#xff0c;尤其是在汇报、展示技术方案、以及项目进展时。随着AI技术的快速发展&#xff0c;使用AI生成PPT成为了提高效率的一种新趋势。本文将介绍几款适合程序员、技术人员的AI生成PPT工具&#xff0c;帮…