redis基本类型和订阅

news2024/11/14 11:35:43

redis-cli -h <host> -p <port> -a <password>

其中,< host>是Redis服务器的主机名或IP地址,< port>是Redis服务器的端口号,< password>是Redis服务器的密码(如果有的话)。

set <key> <value> # 设置字符串

get <key> # 获取字符串

del <key>#删除字符串
Redis支持多种数据类型,包括字符串、哈希、列表、集合和有序集合。

1.字符串

set <key> <value>  # 设置字符串
get <key>          # 获取字符串
append <key> <value>  # 追加字符串
incr <key>         # 将键值加1
decr <key>         # 将键值减1

601e8f1eefdd42d7891c222e22246f63.png

2.哈希
哈希是一种键值对集合,其中每个键都对应一个值。

hset <key> <field> <value>  # 设置哈希字段   这里的 <key> 是哈希表的键名,<field> 是要设置的字段名,<value> 是字段对应的值,当你设置多值得时候key,field,value要不一样,不然的话可能被替换咯
hget <key> <field>          # 获取哈希字段
hgetall <key>               # 获取哈希所有字段和值
hkeys <key>                 # 获取哈希所有字段
hvals <key>                 # 获取哈希所有值
hdel <key> <field>          # 删除哈希字段

41e5ee256d2b4487bd2caedf20287a10.png


3.列表
列表是一种有序的字符串集合,可以在列表的两端进行插入和删除操作。以下是列表的命令行命令:

lpush <key> <value>  # 在列表左端插入元素 ,这里的 <key> 是列表的键名,<value> 是要插入的值。
rpush <key> <value>  # 在列表右端插入元素
lpop <key>           # 删除列表左端元素
rpop <key>           # 删除列表右端元素
lrange <key> <start> <stop>  # 获取列表指定范围的元素
38c4cb26fe4c4f06996aaf36feee8e14.png

使用 LRANGE <key> <start> <stop> 命令来获取列表中指定范围的元素。
LRANGE mylist 0 -1
这里的 <key> 是列表的键名,<start> 是起始索引,<stop> 是结束索引。索引从 0 开始,如果 <start> 和 <stop> 都为 -1,表示获取列表的所有元素

 

4.集合
集合是一种无序的字符串集合,可以进行交集、并集和差集等操作。

sadd <key> <value>   # 添加集合元素
srem <key> <value>   # 删除集合元素
smembers <key>       # 获取集合所有元素
sinter <key1> <key2>  # 获取集合交集
sunion <key1> <key2>  # 获取集合并集
sdiff <key1> <key2>   # 获取集合差集

SADD set1 "member1"
SADD set1 "member2"
SADD set2 "member2"
SADD set2 "member3"
SMEMBERS set1
SINTER set1 set2
SUNION set1 set2
SDIFF set1 set2

1447fe794fa447a8a255d1133c7d1772.png

 

首先使用 SADD 命令向集合 set1 中添加了两个成员 "member1""member2",向集合 set2 中添加了成员 "member2""member3"。然后分别使用 SMEMBERS set1SINTER set1 set2SUNION set1 set2SDIFF set1 set2 命令来获取集合的所有成员、集合 set1set2 的交集、并集以及差集。

 

 

5.有序集合
有序集合是一种有序的字符串集合,每个元素都有一个分数,可以进行按分数排序、范围查询等操作。以下是有序集合的命令行命令:

ADD <key> <score> <value>
向有序集合中添加一个成员,并指定其分数。
ZADD mysortedset 10 "member1"
ZADD mysortedset 20 "member2"

ZREM <key> <value>
从有序集合中移除指定成员。
ZREM mysortedset "member1"

ZRANGE <key> <start> <stop>
按索引范围获取有序集合中的成员。
ZRANGE mysortedset 0 -1
ZRANGE mysortedset 0 1  # 获取前两个成员

ZREVRANGE <key> <start> <stop>
按分数倒序获取有序集合中的成员。
ZREVRANGE mysortedset 0 -1
ZREVRANGE mysortedset 0 1  # 按分数倒序获取前两个成员

ZRANGEBYSCORE <key> <min> <max>
按分数范围获取有序集合中的成员。
ZRANGEBYSCORE mysortedset 0 20
 

111422cce0fd4233982f1d4203a7b1e1.png

三、事务处理
Redis支持事务处理,可以将多个命令打包成一个事务,然后一次性执行。以下是事务处理的命令行命令:

multi         # 开始事务
exec          # 执行事务
discard       # 取消事务
watch <key>   # 监视键
unwatch       # 取消监视
2c0700f46d714a458efe12ce9b8fd14e.png使用 MULTI 命令开始一个事务,在 MULTI 和 EXEC 之间插入要执行的命令;使用 EXEC 命令提交事务,Redis 将按照顺序执行事务中的所有命令。如果事务中有命令执行失败,那么事务的所有命令都将不会被执行;使用 DISCARD 命令取消事务,这会清除事务队列中的所有命令,并退出事务状态。
使用 WATCH 命令监视一个或多个键,在事务执行之前,如果这些键被其他客户端修改,则事务会被取消;取消监视(Unwatch)
取消对所有键的监视,不再关心键的变化。

四、发布订阅

Redis 发布订阅(pub/sub)是一种消息通信模式:发送者(pub)发送消息,订阅者(sub)接收消息。
Redis支持发布订阅模式,可以将多个客户端连接到同一个频道,然后将消息发布到频道中,所有订阅该频道的客户端都能收到消息。Redis的发布和订阅最大的缺点是消息不能持久化!也就是我们通过Redis发送的消息,压根在Redis当中根本没有存。

以下是发布订阅的命令行命令:

subscribe <channel>  # 订阅频道
unsubscribe <channel>  # 取消订阅频道

 

订阅端:

127.0.0.1:6379> ping
PONG
127.0.0.1:6379> SUBSCRIBE dingdada  #订阅名字为 dingdada 的频道
Reading messages... (press Ctrl-C to quit)
1) "subscribe"
2) "dingdada"
3) (integer) 1
#等待推送的信息
1) "message"  #消息
2) "dingdada"  #来自哪个频道的消息
3) "hello world\xef\xbc\x81"  # 消息的具体内容
1) "message"
2) "dingdada"
3) "my name is dyj\x81"
 

发送端:

127.0.0.1:6379> ping
PONG
127.0.0.1:6379> PUBLISH dingdada "hello world!"  #发送消息到dingdada 频道
(integer) 1
127.0.0.1:6379> PUBLISH dingdada "my name is dyj"  #发送消息到dingdada 频道
(integer) 1

431ede881e4047eda94ce47c79e6b3cd.png

41c83e95d1e241d0a4ce8a3529dc55db.png

 

 

 

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

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

相关文章

FPGA CFGBVS 管脚接法

说明 新设计了1个KU040 FPGA板子&#xff0c;回来之后接上JTAG FPGA不识别。做如下检查&#xff1a; 1、电源测试点均正常&#xff1b; 2、查看贴片是否有漏焊&#xff0c;检查无异常&#xff0c;设计上NC的才NC&#xff1b; 3、反复检查JTAG接线是否异常&#xff0c;贴片是…

Large Language Model系列之一:语言模型与表征学习(Language Models and Representation Learning)

语言模型与表征学习&#xff08;Language Models and Representation Learning&#xff09; 1 语言模型 N-Gram模型 from collections import defaultdictsentences [The swift fox jumps over the lazy dog.,The swift river flows under the ancient bridge.,The swift br…

C语言 ——— 编写代码,判断 整型数组 是否 有序

目录 题目要求 代码实现 题目要求 判断 整型数组 是否有序 如果 整型数组 有序输出 sorted&#xff1b;否则输出 unsorted 代码实现 #include<stdio.h> int main() {int arr[10] { 0 };int sz sizeof(arr) / sizeof(arr[0]);//输入for (int i 0; i < sz; i){s…

大数据基础:Doris重点架构原理

文章目录 Doris重点架构原理 一、Apache Doris介绍 二、Apache Doris使用场景 三、Apache Doris架构原理 四、Apache Doris 特点 Doris重点架构原理 一、Apache Doris介绍 基于 MPP 架构的高性能、实时的分析型数据库&#xff0c;以极速易用的特点被人们所熟知&#xff…

YOLOV5的输出[1,25200,85]如何理解和解析

1、25200代表着检测框的数量&#xff0c;比如我们取出第一个检测框a&#xff0c;也就是[1,1&#xff0c;85]&#xff0c;取出来之后我们解析85&#xff0c;前五个为box的中点坐标、长宽值以及置信&#xff0c;后面80我们取Max&#xff08;80个类别&#xff09;中最大值&#xf…

【解决】多个网卡导致nacos注册的服务ip有误问题

解决办法 在本地idea中启动的时候添加启动配置&#xff1a; 方法一 -Dspring.cloud.inetutils.preferred-networks你自己网卡的ip 方法二 -Dspring.cloud.nacos.discovery.ip你自己网卡的ip

朴素模式匹配算法与KMP算法(非重点)

目录 一. 朴素模式匹配算法1.1 什么是字符串的匹配模式1.2 朴素模式匹配算法1.3 通过数组下标实现朴素模式匹配算法 二. KMP算法2.1 算法分析2.2 用代码实现&#xff08;只会出现在选择题&#xff0c;考察代码的概率不大&#xff09; 三. 手算next数组四. KMP算法的进一步优化4…

【CH32V303RCT6】NB模块在CTwing下的OTA升级[实操过程篇]

一、 本篇内容简介 本篇主要通过日志打印和一些云端的显示&#xff0c;来讲解整个SOTA升级的过程。 二、实验现象 2.1、目标代码 2.2、最终效果 当我们升级成功后&#xff0c;会跳转到APP_B执行程序。 三、设计思路 根据电信云平台的OTA设计特性&#xff0c;本次设计是通过…

【自撰写】【国际象棋入门】第11课 对局实例分析(一)

第11课 对局实例分析&#xff08;一&#xff09; 本次课中&#xff0c;我们来分析一例真实的对局。对局弈于“国象联盟”APP&#xff0c;日期为2024年6月13日星期四&#xff0c;我执黑。开局伊始&#xff0c;白方的布局略占优势&#xff0c;中局阶段黑方一直保持着微弱的领先&…

[AWS]CodeCommit的创建与使用

背景&#xff1a;CodeCommit是AWS自带的代码管理仓库&#xff0c;使用起来很不顺手&#xff0c;不如自建的gitlab仓库。不足之处很多&#xff0c;比如&#xff1a;缺乏可视化工具、用户管理麻烦&#xff0c;仓库管理手段贫瘠。 老板为了简单就使用了CodeCommit进行管理&#xf…

一个用于管理多个 Node.js 版本的安装和切换开源工具

大家好&#xff0c;今天给大家分享一个用于管理多个Node.js版本的工具 NVM&#xff08;Node Version Manager&#xff09;&#xff0c;它允许开发者在同一台机器上安装和使用不同版本的Node.js&#xff0c;解决了版本兼容性问题&#xff0c;为开发者提供了极大的便利。 在开发环…

Mongodb多键索引中索引边界的混合

学习mongodb&#xff0c;体会mongodb的每一个使用细节&#xff0c;欢迎阅读威赞的文章。这是威赞发布的第93篇mongodb技术文章&#xff0c;欢迎浏览本专栏威赞发布的其他文章。如果您认为我的文章对您有帮助或者解决您的问题&#xff0c;欢迎在文章下面点个赞&#xff0c;或者关…

ubuntu搭建harbor私仓

1、环境准备 链接: https://pan.baidu.com/s/1q4XBWPd8WdyEn4l253mpUw 提取码: 7ekx --来自百度网盘超级会员v2的分享 准备一台Ubuntu 机器:192.168.124.165 将上面两个文件考入Ubuntu上面 2、安装harbor 安装Docker Harbor仓库以容器方式运行,需要先安装好docker,参考:…

移动终端的安全卫士

随着移动互联网的快速发展&#xff0c;移动端安全风险频发。设备指纹技术凭借高精度的设备识别能力&#xff0c;能够帮助企业提升移动端安全防护能力&#xff0c;精准区分合法与风险行为&#xff0c;跨行业赋能风控&#xff0c;为金融、电商、游戏等多领域提供强大的业务安全保…

不想填邀请码?Xinstall来帮你,一键安装无忧愁

在这个快节奏的时代&#xff0c;每一个点击都承载着用户的期待与耐心。然而&#xff0c;在下载App的过程中&#xff0c;繁琐的邀请码填写往往成为了用户体验的一大障碍。你是否也曾经因为不愿填写邀请码而放弃了一款心仪的App&#xff1f;今天&#xff0c;就让我们一起走进Xins…

STM32智能交通监测系统教程

目录 引言环境准备智能交通监测系统基础代码实现&#xff1a;实现智能交通监测系统 4.1 数据采集模块 4.2 数据处理与控制模块 4.3 通信与网络系统实现 4.4 用户界面与数据可视化应用场景&#xff1a;交通监测与管理问题解决方案与优化收尾与总结 1. 引言 智能交通监测系统通…

1千多看图猜成语游戏ACCESS\EXCEL数据库

今天闲来无事想写个代码自己搞定&#xff0c;我不写代码已经很久了&#xff0c;主要是年纪不小了对新技术的学习比较吃力&#xff0c;兴趣也被生活打磨的体无完肤。今天又捡起VB&#xff08;暴露了年纪&#xff09;搞了一下。 当然&#xff0c;很多事情都是这样&#xff0c;自己…

【入门级】docker

开头处生动的描述一下”码头工人”吧&#xff1a;小鲸鱼&#xff08;登记处Registry&#xff1a;比如docker hub官方&#xff09;背着好多集装箱&#xff08;仓库repository&#xff1a;存放各种各样的镜像&#xff0c;一般存放的是一类镜像&#xff0c;这一类镜像中通过tag 版…

数据安全的护航者:数据脱敏与敏感词过滤详解

数据安全重要性 发散问题&#xff0c;大家最近有没有因隐私或者敏感数据泄露而产生的问题以及烦恼&#xff1f; 生活中&#xff0c;手机、身份证、社保账号等泄露引发的困扰 工作中.... 之前测试环境发送邮件给客户的用户等 1、什么是数据脱敏 定义&#xff1a;数据脱敏是…

【算法笔记自学】第 9 章 提高篇(3)——数据结构专题(2)

9.1树与二叉树 #include <cstdio>int main() {int n, m;scanf("%d%d", &n, &m);printf(n m 1 ? "Yes" : "No");return 0; } 9.2二叉树的遍历 #include <cstdio> #include <vector> using namespace std;const int…