惬意上手Redis

news2024/7/6 18:44:07

Redis介绍

Redis(全称为REmote Dictionary Server)是一个开源的、内存中的数据存储结构,主要用作应用程序缓存或快速相应数据库。

REmote Dictionary Server:

有道翻译Redis是“远程字典服务”,远程不过是远程访问,而字典二字就是Redis的特点,他的数据存储的特点是根据键和值存储的, 一个键就类似于MySQL中的一个表,每个键对应的值有不同的类型。键不能重复。

 先展示一下Redis的可视化工具RDM(Redis Desktop Manager)的界面所作的显示,你或许会清楚一些:

图中显示是db0数据库下的h1键中存储的数据,数据类型是hash,hash类型就是一个键(key)对应一个值(value)。# 代表自动生成的序号。

再看另外一个类型 list:

list类型就是一个列表,只有值。很简单吧。下面还会介绍其他数据类型。

细心的人可能会发现我的数据库有13个,那是Redis自动创建的,是不是比MongoDB还要方便,你根本不需要去创建!

Redis安装

redis安装很简单, 但是你如果直接去官网去找安装包是找不到的,因为它本是不支持Windows的,但是你如果去网上找的话,是可以找到可以装在windos的安装包的,我这里直接给你提供链接吧,里面还有RDM:提取码:mop9icon-default.png?t=N7T8https://pan.baidu.com/s/11VY9tXR0q9OTscpoybeo3A?pwd=mop9

安装很简单,但我还是会给你提供一个链接:Redis 安装 | 菜鸟教程 

里面也有相应的安装包。

安装完成后,你的redis的服务会自动打开,打开终端,键入redis-cli 你就你能直接进行操作了:

但是你想看一下Redis的标志性图案的话,要去关闭你的redis服务,并在终端中开启,开启操作如下:

 指令:redis-server "D:\Program Files\Redis\redis.windows.conf"(可能只在我的电脑上适用)

 这条指令的意思就是运行redis-server.exe文件,外加一个redis.windows.conf配置文件,去你的Redis的安装路径就可以找到。

上图的界面开启服务后就不能操作其它了,想要操作再去开一个框框进行连接。

Redis常用终端操作 

  1. 启动 Redis

    • redis-server [--port 6379]:启动 Redis 服务器,默认端口号是 6379。
    • redis-server [xx/xx/redis.conf]:通过配置文件启动 Redis。
  2. 连接 Redis

    • ./redis-cli [-h 127.0.0.1 -p 6379]:连接到 Redis 服务器。
  3. 停止 Redis

    • redis-cli shutdown 或 kill redis-pid:停止 Redis 服务器。
  4. 测试连通性

    • ping:检查 Redis 是否可用。
  5. 键操作命令

    • keys *:获取所有键。
    • dbsize:获取键总数。
    • exists key [key ...]:查询键是否存在。
    • del key [key ...]:删除键。
    • type key:查询键类型。
    • move key db:移动键到指定数据库。
    • ttl key:查询键的生命周期。
    • expire key seconds:设置过期时间。
  6. 字符串操作命令

    • set key value:存放键值。
    • get key:获取键值。
    • incr key:递增键值。
    • append key value:追加内容。
    • getrange key start end:获取部分字符。
  7. 集合操作命令

    • sadd key member [member ...]:存储集合值。
    • smembers key:获取所有集合元素。
    • sismember key member:判断集合是否存在元素。
    • scard key:获取集合元素个数。
    • srem key member [member ...]:删除集合元素。

这些指令涵盖了 Redis 的基本操作,你可以根据具体需求使用它们。

Redis的数据类型

 string

string就是字符串类型,存储字符串。 

看到图了吗,里面什么都可以存储,就算你放一本三体进去,我想也是,没有问题的。

用一个TTL的值为-1,他代表永久存储。 

list

 list就是列表,一列是序号,一列(value)是你插入的值。

set

set就是集合, 它和列表的差别就是无序、不重复。

zset 

zset是有序集合,相较set就是根据分数(score)的大小变得有序了 。

hash

哈希,一个键对应一个值,值不能重复。

stream

这个stream老师还没讲,如果讲了我再来更新。但我估计这个不常用。下面是ai的回答:

Redis Stream 是 Redis 5.0 引入的一种新的数据类型,用于处理消息流(Message Stream)。它提供了一种轻量级、可扩展的消息发布与订阅模型,适用于实时消息传递和事件处理。下面介绍一些 Redis Stream 的关键概念和常用操作:

  1. 添加消息到 Stream

    • 使用 XADD 命令向指定的 Stream 中添加消息。
    • 语法格式为:XADD key ID field value [field value ...]
    • key 用来指定 Stream 的名字。
    • ID 用来指定消息的 ID 值,最常用的是 *,表示由 Redis 自动生成 ID。
    • 添加的消息为 key-value 类型,可以一次添加多个消息。
  2. 读取消息

    • 使用 XREAD 命令从一个或多个 Stream 中读取消息。
    • 语法格式为:XREAD [COUNT count] [BLOCK milliseconds] STREAMS key [key ...] id [id ...]
    • COUNT 用来获取消息的数量。
    • BLOCK 用来设置阻塞模式和阻塞超时时间,默认为非阻塞。
    • id [id ...] 用来设置读取的起始 ID。
    • 阻塞模式中可以使用 $ 来获取最新的消息 ID。
  3. 获取 Stream 长度

    • 使用 XLEN 命令返回 Stream 中消息的数量。
  4. 获取消息范围

    • 使用 XRANGE 命令返回两个指定 ID 之间的消息范围。

 操作

操作就直接写在python中的操作了,终端的操作想了解自己你可以去了解一下。

python中的操作也比较简单,但是Redis中的每种数据类型的操作都很多,就像python中一样。

 下面仅介绍对list的操作,因为很多,而且大都相似,所以列举完没有必要

  1. lpush:将一个或多个值插入到列表的头部。如果列表不存在,会创建一个空列表并执行 LPUSH 操作。示例代码如下:

    import redis
    
    r = redis.Redis(host="123.156.74.190", port=6379, password="66666666666")
    
    # 添加元素到列表头部
    r.lpush("my_list", 1)  # 结果是1
    r.lpush("my_list", 2, 3, 4)  # 结果是4
    
  2. rpush:将一个或多个值插入到列表的尾部(最右边)。如果列表不存在,会创建一个空列表并执行 RPUSH 操作。示例代码如下:

    # 添加元素到列表尾部
    r.rpush("my_list", 1)  # 结果是1
    r.rpush("my_list", 2, 3)  # 结果是3
    
  3. blpop:移出并获取列表的第一个元素。如果列表为空,会阻塞直到等待超时或发现可弹出元素为止。示例代码如下:

    # 弹出列表的第一个元素
    result = r.blpop("my_list")
    print(result)  # 结果是('my_list', '1')
    
  4. brpop:移出并获取列表的最后一个元素。如果列表为空,会阻塞直到等待超时或发现可弹出元素为止。示例代码如下:

    # 弹出列表的最后一个元素
    result = r.brpop("my_list")
    print(result)  # 结果是('my_list', '3')
    
  5. lindex:通过索引获取列表中的元素。可以使用负数下标,例如 -1 表示列表的最后一个元素。示例代码如下:

    # 获取列表指定索引位置的元素
    value = r.lindex("my_list", 1)
    print(value)  # 结果是2
    
  6. llen:返回列表的长度。示例代码如下:

    # 获取列表的长度
    length = r.llen("my_list")
    print(length)  # 结果是3
    

总之,这些命令可以帮助我们在 Python 中有效地操作 Redis 中的列表数据。如果您想了解更多关于 Redis 列表的操作,可以查看官方文档或其他相关教程。

ok,本篇文章到此为止,感谢阅览🌹🌹🌹

 

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

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

相关文章

大模型学习笔记六:Semantic Kernel

文章目录 一、Semantic Kernel介绍和发展1)SK 的语言开发进展2)SK的生态位3)SK基础架构 二、环境搭建1)初始化2)Semantic Functions(不用编写代码,用配置实现回调函数)3)…

vb oe20.03 ssh nat

环境 virtual boxopeneuler 20.03 LTS网络设置 nat 主机端口可以自行设置,其余三项固定不变。然后即可通过ssh进行连接。

Dynamic Wallpaper v17.4 mac版 动态视频壁纸 兼容 M1/M2

Dynamic Wallpaper Engine 是一款适用于 Mac 电脑的视频动态壁纸, 告别单调的静态壁纸,拥抱活泼的动态壁纸。内置在线视频素材库,一键下载应用,也可导入本地视频,同时可以将视频设置为您的电脑屏保。 应用介绍 Dynam…

pycharm @NotNull parameter ‘module‘ of ...

下载了最新pycharm ,无法启动运行 pycharm或者idea中Run/Debug Python项目报错 Argument for NotNull parameter ‘module‘ of … 解决方案 删除项目根目录的 idea 文件夹 随后重启,重新配置即可

探索Linux世界:基本指令(文件查看、时间相关、grep、打包压缩及相关知识)

今天继续介绍一些指令 文章目录 1.cat - 查看文件1.1输出重定向和追加重定向1.2指令echo 2.more 指令3.less - 逐页查看文本文件内容4.head- 显示文件开头部分内容5.tail - 显示文件末尾部分内容5.1输入重定向&#xff08;<&#xff09;5.2管道&#xff08;|&#xff09; 6.…

第2篇【Docker项目实战】使用Docker部署Raneto知识库平台(转载)

【Docker项目实战】使用Docker部署Raneto知识库平台 一、Raneto介绍 1.1 Raneto简介 Raneto是一个免费、开放、简单的 Markdown 支持的 Node.js 知识库。 1.2 知识库介绍 知识库 知识库是指存储和组织知识的系统或库&#xff0c;它包括了各种类型的信息和知识&#xff0c;如…

Nodejs 第五十一章(限流阀)

限流功能 目前我们学习了redis,lua,nodejs&#xff0c;于是可以结合起来做一个限流功能&#xff0c;好比一个抽奖功能&#xff0c;你点击次数过多&#xff0c;就会提示请稍后重试&#xff0c;进行限制&#xff0c;我们来实现一下该功能。 安装依赖 npm i ioredis express代码…

git提交代码描述时如何换行(更新时间24/3/12)

问题复现&#xff08;信心满满使用转义字符换行&#xff09; 解决方法&#xff1a; 写多个-m字符串的结构可以实现自动换行 注意空格 git commit -m"第一行描述" -m"第二行描述" 效果演示&#xff1a;&#xff08;强迫症福利&#xff09;

【20240309】WORD宏设置批量修改全部表格格式

WORD宏设置批量修改全部表格格式 引言1. 设置表格文字样式2. 设置表格边框样式3. 设置所有表格边框样式为075pt4. 删除行参考 引言 这两周已经彻底变为office工程师了&#xff0c;更准确一点应该是Word工程师&#xff0c;一篇文档动不动就成百上千页&#xff0c;表格图片也是上…

导入空管基础数据

1、首先将data.tar.gz解压到自定义目录中 注意&#xff1a;由于数据文件的压缩包比较大&#xff0c;解压过程可能会持续3~5分钟&#xff0c;请耐心等待。 [rootnode3 ~]# cd /opt/software/ [rootnode3 software]# tar -xzf data.tar.gz -C /opt/ 2、利用SQLyog或者其他数据库…

鸿蒙不再适合JS语言开发

ArkTS是鸿蒙生态的应用开发语言。它在保持TypeScript&#xff08;简称TS&#xff09;基本语法风格的基础上&#xff0c;对TS的动态类型特性施加更严格的约束&#xff0c;引入静态类型。同时&#xff0c;提供了声明式UI、状态管理等相应的能力&#xff0c;让开发者可以以更简洁、…

力扣爆刷第93天之hot100五连刷51-55

力扣爆刷第93天之hot100五连刷51-55 文章目录 力扣爆刷第93天之hot100五连刷51-55一、200. 岛屿数量二、994. 腐烂的橘子三、207. 课程表四、208. 实现 Trie (前缀树)五、46. 全排列 一、200. 岛屿数量 题目链接&#xff1a;https://leetcode.cn/problems/number-of-islands/d…

基于YOLOv5的手机顶盖焊缺陷检测系统

&#x1f4a1;&#x1f4a1;&#x1f4a1;本文主要内容:详细介绍了工业手机顶盖焊缺陷测整个过程&#xff0c;从数据集到训练模型到结果可视化分析。 博主简介 AI小怪兽&#xff0c;YOLO骨灰级玩家&#xff0c;1&#xff09;YOLOv5、v7、v8优化创新&#xff0c;轻松涨点和模型…

Android 生成SO - 基础工程创建

最近需要给小伙伴扫盲一下如何使用Android Studio 生成一个SO文件&#xff0c;网上找了很多都没有合适的样例&#xff0c;那只能自己来写一个了。 原先生成SO是一个很麻烦的事情&#xff0c;现在Android Studio帮忙做了很多的事情&#xff0c;基本只要管好自己的C代码即可。 …

coreldraw是什么软件 矢量图设计软件推荐 CDR学习入门 CDR2024发布 cdr2024免费激活下载

CDR是一款平面设计软件&#xff0c;全称为CorelDRAW&#xff0c;是由Corel公司开发的矢量图形编辑工具套件。这款软件结合了矢量图形设计和页面布局的全功能&#xff0c;被广泛应用于商标设计、标志制作、模型绘制、插图描画、排版及分色输出等诸多领域。 2024年3月&#xff0…

STM32进阶笔记——FATFS文件系统(下)

本专栏争取每周三更新直到更新完成&#xff0c;期待大家的订阅关注&#xff0c;欢迎互相学习交流。 本文需要一些SD卡和内存管理等前置知识&#xff0c;后续文章会介绍&#xff0c;这里先介绍一下FATFS文件系统。关于FATFS的文章分为上下两篇&#xff0c;上篇主要介绍什么是FAT…

【C语言】tcp_transmit_skb

一、__tcp_transmit_skb讲解 这个函数 __tcp_transmit_skb() 是 Linux 内核中 TCP/IP 协议栈的一部分&#xff0c;负责处理传输控制协议&#xff08;TCP&#xff09;数据包的发送。具体来说&#xff0c;这个函数将 TCP 头部添加到一个没有任何头部信息的 socket buffer (sk_bu…

【大模型API调用初尝试二】星火认知大模型 百度千帆大模型

大模型API调用初尝试二 科大讯飞—星火认知大模型单论会话调用多轮会话调用 百度—千帆大模型获取access_token单轮会话多轮会话 科大讯飞—星火认知大模型 星火认知大模型是科大讯飞开发的&#xff0c;直接使用可以点击星火认知大模型&#xff0c;要调用API的话在讯飞开发平台…

python文本转语音的开源库介绍

本文介绍Python中用于文本转语音&#xff08;Text-to-Speech, TTS&#xff09;的三个开源库&#xff1a;pyttsx3、gtts和espeak。这些库可以在Windows平台上运行&#xff0c;并允许用户将文本转换为语音输出。 pyttsx3 pyttsx3是一个Python库&#xff0c;用于跨平台的文本到语音…

PLC远程故障诊断

随着工业自动化水平的不断提升&#xff0c;可编程逻辑控制器&#xff08;PLC&#xff09;在生产线控制、设备自动化等领域发挥着越来越重要的作用。然而&#xff0c;PLC在运行过程中难免会出现故障&#xff0c;影响生产线的稳定运行。因此&#xff0c;如何迅速、准确地诊断并解…