当前位置: 首页 > news >正文

Redis主要数据类型

Redis 是一个数据结构服务器。 Redis 的核心是提供一系列本机数据类型,可帮助您解决从缓存队列再到事件处理的各种问题

Redis主要数据类型:String(字符串),Lists(列表),Sets(集合),Hashes(哈希),Sorted sets(有序集合),Streams(流),Bitmaps,Geospatial indexes,Bitfields,HyperLogLog,Extensions。

一、String(字符串)

Redis 字符串存储字节序列,包括文本、序列化对象和二进制数组。 因此,字符串是最基本的 Redis 数据类型。 它们通常用于缓存,但它们支持其他功能,这些功能也允许您实现计数器并执行按位运算。

限制

默认情况下,单个 Redis 字符串的最大大小为 512 MB。

基本命令

  • SET 存储字符串值。

  • 仅当字符串值尚不存在时,SETNX 才会存储该值。对于实现锁很有用。

  • GET 检索字符串值。

  • MGET 在单个操作中检索多个字符串值。

二、Lists(列表)

Redis 列表是字符串值的链接列表。 Redis 列表经常用于:

  • 实现堆栈和队列。

  • 为后台工作程序系统构建队列管理。

限制

Redis 列表的最大长度为 2^32 - 1 (4,294,967,295) 个元素。

基本命令

  • LPUSH 在列表的头部添加一个新元素;RPUSH添加到尾部。

  • LPOP 从列表的头部删除并返回一个元素;RPOP 执行相同的操作,但从列表的尾部。

  • LLEN 返回列表的长度。

  • LMOVE 以原子方式将元素从一个列表移动到另一个列表。

  • LTRIM 将列表缩减到指定的元素范围。

阻止命令

列表支持多个阻止命令。 例如:

  • BLPOP 从列表的头部删除并返回一个元素。 如果列表为空,则该命令将一直阻止,直到元素可用或达到指定的超时。

  • BLMOVE 以原子方式将元素从源列表移动到目标列表。 如果源列表为空,则该命令将阻塞,直到新元素可用。

三、Sets(集合)

Redis 集是唯一字符串(成员)的无序集合。 您可以使用 Redis 集有效地:

  • 跟踪唯一项目(例如,跟踪访问给定博客文章的所有唯一 IP 地址)。

  • 表示关系(例如,具有给定角色的所有用户的集合)。

  • 执行常见的集合操作,例如交集、并集和差分。

限制

Redis 集的最大大小为 2^32 - 1 (4,294,967,295) 个成员。

基本命令

• SADD 将新成员添加到集合中。

• SREM从集合中删除指定的成员。

• SISMEMBER测试字符串的集合成员资格。

• SINTER 返回两个或多个集合共有的成员集(即交集)。

• SCARD 返回集合的大小(也称为基数)

例子

  • 存储用户 123 和 456 的收藏书籍 ID 集:

> SADD user:123:favorites 347
(integer) 1
> SADD user:123:favorites 561
(integer) 1
> SADD user:123:favorites 742
(integer) 1
> SADD user:456:favorites 561
(integer) 1

四、Redis hashes

Redis 哈希是结构化为字段值对集合的记录类型。 您可以使用哈希来表示基本对象和存储计数器分组等。

基本命令

  • HSET 在哈希上设置一个或多个字段的值。

  • HGET 返回给定字段的值。

  • HMGET 返回一个或多个给定字段的值。

  • HINCRBY 将给定字段的值按提供的整数递增。

限制

每个哈希最多可以存储 4,294,967,295 (2^32 - 1) 字段值对。 实际上,哈希仅受托管 Redis 部署的 VM 上的总体内存限制

五、Redis sorted sets

Redis 排序集是按关联分数排序的唯一字符串(成员)的集合。 当多个字符串具有相同的分数时,字符串将按字典顺序排序。 排序集的一些用例包括:

  • 排行榜。例如,您可以使用排序集轻松维护大型在线游戏中最高分的有序列表。

  • 速率限制器。特别是,您可以使用排序集来构建滑动窗口速率限制器,以防止过多的 API 请求。

基本命令

  • ZADD 将新成员和关联的分数添加到排序集。如果成员已存在,则会更新分数。

  • ZRANGE 返回在给定范围内排序的排序集的成员。

  • ZRANK 返回所提供成员的排名,假设排序是按升序排列的。

  • ZREVRANK 返回所提供成员的秩,假设排序集按降序排列。

http://www.lryc.cn/news/20740.html

相关文章:

  • 【Linux | ELK 8.2】搭建ELKB集群Ⅰ—— 实验环境说明和搭建Elasticsearch集群
  • 不同情况下*p和*p的区别(指针)
  • Vuex基础语法
  • 刚上岸字节测试开发岗,全网最真实的大厂面试真题
  • Mac监控键盘输入并执行动作
  • Transformer输出张量的值全部相同?!
  • 港科夜闻|全国政协副主席梁振英先生率香港媒体高管团到访香港科大(广州)...
  • XML调用 CAPL Test Function
  • Linux网络配置(NAT)
  • 数据结构——第二章 线性表(8)——线性表总结
  • 3.7寸按键翻页工牌
  • 西北工业大学大学物理(II)选填解析2019-2020期末
  • [计算机网络(第八版)]第一章 概述(章节测试/章节作业)
  • 华为OD机试真题大全,用 Python 解华为机试题 | 机试宝典
  • 电子科技大学数据库与软件工程三
  • 华为开源自研AI框架昇思MindSpore数据变换:Transforms
  • 软件测试之边界值测试法
  • 【华为OD机试模拟题】用 C++ 实现 - 最近的点(2023.Q1)
  • Qt windeployqt.exe 打包qml
  • 【人脸识别】CurricularFace:自适应课程学习人脸识别损失函数
  • springmvc之rest风格(RESTFUL)
  • django项目实战十四(django+bootstrap实现增删改查)进阶混合数据使用modelform上传
  • 2023年CDGA考试模拟题库(1-100)
  • HTML常用基础内容总结
  • Gorm-学习笔记
  • 【Neo4j】图数据库CypherQueryLanguage随笔
  • STM32Cube串口USART发送接收数据
  • OpenFeign详解
  • python多线程网络编程
  • BFS-走迷宫