Redis 五种数据类型的操作命令

一、五种数据类型的介绍

五种数据类型如图所示:

Redis 是一个开源的键值存储系统,它支持多种数据结构,每种数据结构都有其特定的用例和底层实现。以下是 Redis 的五种主要数据类型,以及它们适合存储的数据类型和底层实现:

1.1 String(字符串)

  • 适合存储的数据:简单的值,如配置选项、计数器、简单的缓存数据等。
  • 底层实现:在 Redis 中,字符串被实现为动态字符串(SDS),它是一个二进制安全的字符串,可以高效地进行内存分配和回收。


1.2 List(列表)

  • 适合存储的数据:有序集合,如消息队列、文章列表、粉丝列表等。
  • 底层实现:列表在 Redis 中是通过一个双向链表实现的,每个链表节点包含一个字符串值。这种结构使得列表可以在两端以 O(1) 的时间复杂度进行推入(push)和弹出(pop)操作。


1.3 Set(集合)

  • 适合存储的数据:无序集合,如标签集合、唯一性约束(如邮箱订阅列表)等。
  • 底层实现:集合在 Redis 中是通过哈希表实现的,其中每个元素都是唯一的。哈希表的实现确保了快速的查找、插入和删除操作。


1.4 Sorted Set(有序集合)

  • 适合存储的数据:需要根据分数排序的数据,如排行榜、带权重的队列等。
  • 底层实现:有序集合在 Redis 中是通过一个哈希表和一个跳跃表(SkipList)实现的。哈希表用于快速查找元素,而跳跃表用于维护元素的有序性,使得范围查询变得高效。


1.5 Hash(哈希)

  • 适合存储的数据:对象或映射表,如用户信息、配置信息等。
  • 底层实现:哈希在 Redis 中是通过哈希表实现的,其中每个字段都是一个键值对。这种结构使得可以快速访问和修改对象的属性。

<@_@>
        每种数据类型都有其特定的命令集,用于操作和查询数据。Redis 的这些数据类型提供了灵活的数据操作方式,使得它在多种应用场景中都非常有用。

二、操作命令

注意一:redis不区分大小写

注意二:使用redis前记得在cmd窗口开启redis 服务哦

2.1 字符串操作命令

Redis 中字符串类型常用命令:

  • SET key value                      ----->   设置指定key的值
  • GET key                               ----->   获取指定key的值
  • SETEX key seconds value   ----->   设置指定key的值,并将 key 的过期时间设为 seconds 秒
  • SETNX key value                 ----->   只有在 key 不存在时设置 key 的值

 

2.2 哈希操作命令

Redis hash 是一个string类型的 field 和 value 的映射表,hash特别适合用于存储对象,常用命令:

  • HSET key field value   ----->   将哈希表 key 中的字段 field 的值设为 value
  • HGET key field            ----->   获取存储在哈希表中指定字段的值
  • HDEL key field            ----->   删除存储在哈希表中的指定字段
  • HKEYS key                 ----->   获取哈希表中所有字段
  • HVALS key                  ----->   获取哈希表中所有值

2.3 列表操作命令

Redis 列表是简单的字符串列表,按照插入顺序排序,常用命令:

  • LPUSH key value1 [value2]      ----->   将一个或多个值插入到列表头部
  • LRANGE key start stop            ----->   获取列表指定范围内的元素
  • RPOP key                                 ----->   移除并获取列表最后一个元素
  • LLEN key                                  ----->   获取列表长度
  • BRPOP key1 [key2 ] timeout    ----->   移出并获取列表的最后一个元素, 如果列表没有元素会阻塞列表直到等待超 时或发现可弹出元素为止

2.4 集合操作命令

Redis set 是string类型的无序集合。集合成员是唯一的,这就意味着集合中不能出现重复的数据,常用命令:

  • SADD key member1 [member2]   ----->   向集合添加一个或多个成员
  • SMEMBERS key                           ----->   返回集合中的所有成员
  • SCARD key                                   ----->   获取集合的成员数
  • SINTER key1 [key2]                      ----->   返回给定所有集合的交集
  • SUNION key1 [key2]                     ----->   返回所有给定集合的并集
  • SREM key member1 [member2]   ----->   移除集合中一个或多个成员

 

2.5 有序集合操作命令

Redis有序集合是string类型元素的集合,且不允许有重复成员。每个元素都会关联一个double类型的分数。常用命令:

常用命令:

  • ZADD key score1 member1 [score2 member2]   ----->   向有序集合添加一个或多个成员
  • ZRANGE key start stop [WITHSCORES]             ----->   通过索引区间返回有序集合中指定区间内的成员
  • ZINCRBY key increment member                        ----->   有序集合中对指定成员的分数加上增量 increment
  • ZREM key member [member ...]                           ----->   移除有序集合中的一个或多个成员

2.6 通用命令

Redis的通用命令是不分数据类型的,都可以使用的命令:

  • KEYS pattern   ----->   查找所有符合给定模式( pattern)的 key
  • EXISTS key     ----->   检查给定 key 是否存在
  • TYPE key         ----->   返回 key 所储存的值的类型
  • DEL key           ----->   该命令用于在 key 存在是删除 key

总结

以上就是关于Redis 的五种数据类型的介绍,以及其操作命令的使用,希望对各位看官有所帮助,感谢各位看官的观看,下期见,谢谢~

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

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

相关文章

健康生活的重要性

在当今快节奏的生活中&#xff0c;养生保健已成为人们日益关注的话题&#xff0c;而健身作为其中的重要一环&#xff0c;更是被赋予了前所未有的重视。谈及养生保健与健身&#xff0c;我们不得不深入思考&#xff1a;如何在繁忙的日常中&#xff0c;找到那条通往健康与活力的道…

MAC地址漂移实验

MAC地址漂移实验的概述&#xff1a; MAC地址漂移实验的概述主要围绕网络设备中的MAC地址动态变化及其检测与防护措施。以下是对MAC地址漂移实验的具体介绍&#xff1a; MAC地址漂移的定义&#xff1a;MAC地址漂移是指在同一个VLAN内&#xff0c;一个MAC地址被交换机的两个不同…

【哈希】1. leetcode 1. 两数之和

1 题目描述 题目链接&#xff1a;两数之和 2 题目解析 一般的思维&#xff1a;找到两个数A和B&#xff0c;判断A和B相加是否为target。 我们可以采用逆向思维&#xff1a;找到一个数A&#xff0c;在nums数组中找是否有值等于target - A&#xff0c;因为题目要求只返回一个…

QT实现改变窗口大小其子控件也自动调节大小

创建一个顶层布局即可&#xff0c;一定要在MainWindows或者Widget的下面&#xff01; 观察图标变化 带有禁止的意思是分拆布局&#xff08;当前无布局&#xff09; 现在是添加布局后了 注意&#xff1a;一定是在MainWindows或Widget才可以添加顶层布局&#xff0c;才可以实现…

Flutter技术学习

以下内容更适用于 不拘泥于教程学习&#xff0c;而是从简单项目入手的初学者。 在开始第一个项目之前&#xff0c;我们先要了解 两个概念。 Widget 和 属性 Widget 是用户界面的基本构建块&#xff0c;可以是任何 UI 元素。属性 是 widget 类中定义的变量&#xff0c;用于配…

linux 效率化 - zsh + tmux

文章目录 简介涉及的资料/代码仓库让我们开始吧1. Oh my Zsh!2. 终端主题 - powerlevel10k &#xff08;赋能优雅终端界面&#xff09;3. Oh my Tmux!安装完成&#xff0c;再加点料1. tmux2. zsh 结语进阶配置&#xff08;发烧友关注&#xff09;zsh-vim-mode&#xff08;终端支…

拉拢商家、直播PK,这届双11开始卷平台

文丨郭梦仪 在一声声“上链接”中&#xff0c;不少网友在昨晚已经成为了第一批“尾款人”。第一份战报也在今日傍晚发出。 据天猫双11战报显示&#xff0c;活动首小时&#xff0c;大家电整体成交同比去年双11预售同期暴涨765%。仅开售4小时&#xff0c;老板、TCL、西门子、方太…

【Docker】安装部署项目流程(Pycharm版)

安装部署步骤 1.准备项目 第一步要准备好你所需要部署的项目&#xff0c;确保在工作目录下所以程序.py文件正常调用并能正确运行 如上&#xff0c;main要在工作目录中能跑通&#xff0c;这里有一点需要注意 在IDE src不要标记为源代码根目录&#xff0c;观察一下是否能跑通代…

【Vue】Vue扫盲(三)计算属性和监听器

【Vue】Vue扫盲&#xff08;一&#xff09;事件标签、事件修饰符&#xff1a;click.prevent click.stop click.stop.prevent、按键修饰符、及常用指令 【Vue】Vue扫盲&#xff08;二&#xff09;指令&#xff1a;v-for 、v-if、v-else-if、v-else、v-show 文章目录 1、 计算属…

|动漫爬取|001_djangodjango基于Spark的国漫推荐系统的设计与实现2024_tpd6q1o4

目录 系统展示 开发背景 代码实现 项目案例 获取源码 博主介绍&#xff1a;CodeMentor毕业设计领航者、全网关注者30W群落&#xff0c;InfoQ特邀专栏作家、技术博客领航者、InfoQ新星培育计划导师、Web开发领域杰出贡献者&#xff0c;博客领航之星、开发者头条/腾讯云/AW…

【3dgs】3DGS与NeRF对比

以下是 3DGS&#xff08;3D Geometry Sensing&#xff09;与 NeRF&#xff08;Neural Radiance Fields&#xff09;对比表格&#xff1a; 更加详细的资料&#xff0c;轻参考&#xff1a; NERF/3DGS 对比维度3DGS (3D Geometry Sensing)NeRF (Neural Radiance Fields)基本原理…

透过 Diffusion Transformer 探索生成式模型的技术演进

SiT: Exploring Flow and Diffusion-based Generative Models with Scalable Interpolant Transformers 一、前言 扩散模型为代表的生成式模型&#xff0c;以其深刻的还原论的哲学原理作为内在基础&#xff0c;辅以机器学习领域各类优秀的模型设计&#xff0c;在各个学术和应…

性能与体验登顶,海马云电脑重新定义行业,领跑未来工作与娱乐方式

&#xff08;图片来源&#xff1a;Pixels&#xff09; 一个行业的增长拐点正在到来。 数科星球原创 作者丨苑晶 编辑丨大兔 2024年&#xff0c;《黑神话悟空》来到。受此刺激&#xff0c;云电脑行业迎来发展的春天。 作为一款3A级游戏大作&#xff0c;其对图形处理单元&…

### 更新数据库时出错。原因:java.sql.SQLException: No database selected

更新数据库时出错。原因&#xff1a;java.sql.SQLException: No database selected 问题&#xff1a;原因&#xff1a;解决办法&#xff1a; 问题&#xff1a; 在基于idea环境中学习搭建mybatis框架时&#xff0c;MySQL数据库执行插入语句遇到以下异常&#xff1a; com.intel…

【含文档】基于Hadoop平台的大学多媒体教学管理系统(含源码+数据库+lw)

1.开发环境 开发系统:Windows10/11 架构模式:MVC/前后端分离 JDK版本: Java JDK1.8 开发工具:IDEA 数据库版本: mysql5.7或8.0 数据库可视化工具: navicat 服务器: SpringBoot自带 apache tomcat 主要技术: Java,Springboot,mybatis,mysql,vue 2.视频演示地址 3.功能 系统定…

【嵌入式】手把手教你入门STM32的GPIO:初识GPIO输出

1.GPIO简介 STM32是一系列基于ARM Cortex-M内核的32位微控制器。该系列微控制器广泛应用于计算机、通讯、工业自动化、消费电子、汽车电子、医疗仪器及家庭电器等领域。该系列控制器具有高性能、低功耗、智能化等特点。其中&#xff0c;GPIO就是STM32控制器中的一种重要的通用输…

《向量数据库指南》——Naive RAG的复杂问题困境

哈哈,各位向量数据库领域的探索者们,大家好!我是大禹智库的向量数据库高级研究员王帅旭,也是《向量数据库指南》的作者。今天,咱们就来聊聊Naive RAG(Retrieval-Augmented Generation,检索增强生成)方法的那些事儿,特别是它在处理复杂问题时的局限性。相信我,这篇文章…

ros1编译wpr_simulation库

目录 安装项目依赖包编译将环境参数加载到终端程序中运行编译好的ros程序 首先你下载好这个库以后。 安装项目依赖包 scripts库中&#xff0c;存放的是一些依赖项安装脚本以及python脚本。 进入到这个路径的终端。 输入 ./install_for_noetic.sh编译 输入下面命令&#xf…

轮转数组【补充】

本章概述 前情回顾方法一方法二总结彩蛋时刻&#xff01;&#xff01;&#xff01; 前情回顾 点击&#xff1a;轮转数组。 在上面一章的《初阶数据结构【1】》里面&#xff0c;咱们通过轮转数组引出了算法复杂度的概念。咱们当时写的那个算法有点小问题&#xff0c;38个测试用…

SpringBoot技术在人事管理中的应用:系统开发全解析

2相关技术 2.1 MYSQL数据库 MySQL是一个真正的多用户、多线程SQL数据库服务器。 是基于SQL的客户/服务器模式的关系数据库管理系统&#xff0c;它的有点有有功能强大、使用简单、管理方便、安全可靠性高、运行速度快、多线程、跨平台性、完全网络化、稳定性等&#xff0c;非常适…