Redis的五种数据类型(string、hash 、list、set、zset)

        

        Redis 提供了丰富的数据类型,常见的有五种:String(字符串),Hash(哈希),List(列表),Set(集合)、Zset(有序集合)

 String

        String 是最基本的 key-value 结构,key 是唯一标识,value 是具体的值,value其实不仅是字符串, 也可以是数字(整数或浮点数),value 最多可以容纳的数据长度是 512M。

常用指令

普通字符串的基本操作:

# 设置 key-value 类型的值
> SET name hanbing
OK 

 

# 根据 key 获得对应的 value
> GET name
"hanbing" 

 # 判断某个 key 是否存在
> EXISTS name
(integer) 1

 

# 返回 key 所储存的字符串值的长度
> STRLEN name
(integer) 3

 

# 删除某个 key 对应的值
> DEL name
(integer) 1

 

批量设置 :

 # 批量设置 key-value 类型的值
> MSET key1 value1 key2 value2 
OK

# 批量获取多个 key 对应的 value
> MGET key1 key2 
1) "value1"
2) "value2"

Hash

        Hash 是一个键值对(key - value)集合,其中 value 的形式如: value=[{field1,value1},...{fieldN,valueN}]。Hash 特别适合用于存储对象。

常用指令

# 存储一个哈希表key的键值
HSET key field value   

# 获取哈希表key对应的field键值
HGET key field

# 在一个哈希表key中存储多个键值对
HMSET key field value [field value...] 

# 批量获取哈希表key中多个field键值
HMGET key field [field ...]       

# 删除哈希表key中的field键值
HDEL key field [field ...]  

List

        List 列表是简单的字符串列表,按照插入顺序排序,可以从头部或尾部向 List 列表添加元素。

        列表的最大长度为 2^32 - 1,也即每个列表支持超过 40 亿个元素。

        List 类型的底层数据结构是由双向链表或压缩列表实现的:

常用命令

# 将一个或多个值value插入到key列表的表头(最左边),最后的值在最前面
LPUSH key value [value ...] 

# 返回列表key中指定区间内的元素,区间以偏移量start和stop指定,从0开始,如果到-1结束,则为返回全部元素
LRANGE key start stop

# 将一个或多个值value插入到key列表的表尾(最右边)
RPUSH key value [value ...]

# 移除并返回key列表的头元素
LPOP key     

Set 

        Set 类型是一个无序并唯一的键值集合,它的存储顺序不会按照插入的先后顺序进行存储。

        一个集合最多可以存储 2^32-1 个元素。概念和数学中个的集合基本类似,可以交集,并集,差集等等,所以 Set 类型除了支持集合内的增删改查,同时还支持多个集合取交集、并集、差集。

常用命令

# 往集合key中存入元素,元素存在则忽略,若key不存在则新建
SADD key member [member ...]

# 获取集合key中所有元素
SMEMBERS key

# 从集合key中删除元素
SREM key member [member ...] 

Set 类型和 List 类型的区别如下:

  • List 可以存储重复元素,Set 只能存储非重复元素;
  • List 是按照元素的先后顺序存储元素的,而 Set 则是无序方式存储元素的。

Zset

Zset 类型(有序集合类型)相比于 Set 类型多了一个排序属性 score(分值),对于有序集合 ZSet 来说,每个存储元素相当于有两个值组成的,一个是有序结合的元素值,一个是排序值。

有序集合保留了集合不能有重复成员的特性(分值可以重复),但不同的是,有序集合中的元素可以排序。

常用命令

# 往有序集合key中加入带分值元素
ZADD key score member [[score member]...]   

# 正序获取有序集合key从start下标到stop下标的元素
ZRANGE key start stop [WITHSCORES]

# 往有序集合key中删除元素
ZREM key member [member...]  


 

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

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

相关文章

云手机与实体手机的对比

在数字化时代,云手机作为一种虚拟手机在云端服务器上运行,与传统的实体手机相比存在诸多差异。让我们深入探讨云手机与实体手机之间的区别,以便更好地了解它们的特点和优势。 外观上的差异 实体手机具有实际的外观和重量,占据一定…

从0开始python算法工程师(一):安装conda

1.为什么要安装conda 主要是为了在命令行使用conda命令管理虚拟环境。 2.两种conda Windows用户,一般建议初学者都安装anaconda(省事);Windows用户,熟练的安装者则安装miniconda(省存储空间)…

影响可变利差有几个因素,Anzo Capital先说两个

了解利差的变化规律,盈利赚钱还不是轻轻松松的事情,但Anzo Capital想问各位投资者,你们知道影响可变利差的价值有几个因素吗?今天就先抛砖引玉,先说两个影响可变利差的因素。 首先就是交易工具的流动性——商品快速买…

Java玩转《啊哈算法》排序之桶排序

过去心不可得,现在心不可得,未来心不可得 目录在这里 楔子代码地址桶排序代码核心部分优缺点 完整代码演示 升级版核心代码完整代码演示 楔子 大家好!本人最近看了下《啊哈算法》,写的确实不错,生动形象又有趣&#x…

ssh登录失败:connection closed by foreign host

问题1: ssh登录不上,连接上就断掉 inetd.conf显示2277已打开,ip也没有冲突。 但是这两个文件是空的(size 0k): dropbear_dss_host_key dropbear_rsa_host_key 把/etc/dropbear里面的东西删掉,重新生成秘钥文件: …

如何有效的开展接口自动化测试,一篇足矣

一、简介 接口自动化测试是指使用自动化测试工具和脚本对软件系统中的接口进行测试的过程。其目的是在软件开发过程中,通过对接口的自动化测试来提高测试效率和测试质量,减少人工测试的工作量和测试成本,并且能够快速发现和修复接口错误&…

ChatGPT与生成式AI在教育领域的应用前景光明,但也伴随着挑战

随着ChatGPT和其他生成式AI技术,如GPT-3.5、GPT-4的出现,我们正见证教育领域一场前所未有的变革浪潮。这些技术不仅推动了教育方式的进步,也为学习者带来了全新的机遇和挑战。 NO.1 教育变革的新浪潮 生成式AI技术,特别是ChatGPT…

Database__进阶

文章目录 😊 作者:Lion J 💖 主页: https://blog.csdn.net/weixin_69252724?spm1000.2115.3001.5343 🎉 主题: 数据库mysql(高级部分) ⏱️ 创作时间:2024年01月24…

GPT5?OpenAI 创始人:GPT5 已在训练中,需要更多数据

OpenAI 最近发出征集大规模数据集的呼吁,特别是“今天在互联网上尚未公开轻松获取”的数据集,尤其是长篇写作或任何格式的对话。 GPT-5丨AI浪潮席卷全球,OpenAI 推出GPT-4 后,又于上月26日宣布今年9月、10月将推出GPT-4.5&#xf…

前后置、断言、提取变量、数据库操作功能

前置操作和后置操作都是 API 请求在发送和响应过程中执行的脚本,主要用于在发起 API 请求前和获得响应后完成验证或执行某些操作,目的是为了提高 API 调试和测试的效率,并确保接口的正确性。 前置操作​ 前置操作是在 API 请求之前执行的脚本…

华为产业链之车载激光雷达

一、智能汽车 NOA 加快普及,L3 上路利好智能感知硬件 1、感知层是 ADAS 最重要的一环 先进驾驶辅助系统 (ADAS, Advanced driver-assistance system)分“感知层、决策层、执行层”三个层级,其中感知层是最重要的一环…

Vue好看的组件库:Element

文章目录 1、什么是Element2、Element快速入门3、Element布局3.1、 Layout 局部3.2、容器布局 1、什么是Element Element:是饿了么公司前端开发团队提供的一套基于 Vue 的网站组件库,用于快速构建网页 Element 提供了很多组件(组成网页的部件…