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

Redis 5 种基础数据结构?

Redis是一个开源的内存数据结构存储系统,广泛应用于缓存、消息队列和实时数据分析等场景。它支持五种基础数据结构:字符串(String)、哈希(Hash)、列表(List)、集合(Set)和有序集合(Sorted Set)。以下是对这五种基础数据结构的详细介绍。

一、字符串(String)

字符串是Redis中最简单的数据结构,类似于传统的键值对,键和值都是字符串类型。字符串类型的数据结构不仅可以存储文本数据,还可以存储二进制数据,例如图片或序列化对象。

1.1 基本命令
  • 设置键值SET key value
  • 获取键值GET key
  • 追加值APPEND key value
  • 增加数值INCR key
  • 获取字符串长度STRLEN key
1.2 示例
SET mykey "Hello, Redis!"
GET mykey  # 返回 "Hello, Redis!"
INCR counter  # 如果counter不存在,初始化为0,然后加1,结果为1
​

二、哈希(Hash)

哈希是一个键值对集合,特别适合存储对象。哈希中的每个键(字段)和值都是字符串类型。

2.1 基本命令
  • 设置哈希字段值HSET key field value
  • 获取哈希字段值HGET key field
  • 删除哈希字段HDEL key field
  • 获取哈希所有字段值HGETALL key
  • 获取哈希所有字段HKEYS key
  • 获取哈希所有值HVALS key
2.2 示例
HSET user:1000 name "Alice"
HSET user:1000 age 30
HGET user:1000 name  # 返回 "Alice"
HGETALL user:1000  # 返回所有字段和值
​

三、列表(List)

列表是一个有序的字符串集合,可以从两端推入和弹出元素。它可以用作消息队列和任务队列。

3.1 基本命令
  • 在列表头部插入LPUSH key value
  • 在列表尾部插入RPUSH key value
  • 从列表头部弹出LPOP key
  • 从列表尾部弹出RPOP key
  • 获取列表长度LLEN key
  • 获取列表中的一个范围的元素LRANGE key start stop
3.2 示例
LPUSH mylist "World"
LPUSH mylist "Hello"
LRANGE mylist 0 -1  # 返回 ["Hello", "World"]
LPOP mylist  # 返回 "Hello"
​

四、集合(Set)

集合是一个无序的字符串集合,集合中的每个元素都是唯一的。集合支持集合操作,例如交集、并集和差集。

4.1 基本命令
  • 添加元素到集合SADD key value
  • 移除集合中的元素SREM key value
  • 检查元素是否在集合中SISMEMBER key value
  • 获取集合中的所有元素SMEMBERS key
  • 集合的交集SINTER key1 key2 ...
  • 集合的并集SUNION key1 key2 ...
  • 集合的差集SDIFF key1 key2 ...
4.2 示例
SADD myset "apple"
SADD myset "banana"
SADD myset "cherry"
SMEMBERS myset  # 返回 ["apple", "banana", "cherry"]
SISMEMBER myset "banana"  # 返回 1
​

五、有序集合(Sorted Set)

有序集合类似于集合,但每个元素都会关联一个分数,用于排序。元素是唯一的,但分数可以重复。

5.1 基本命令
  • 添加元素到有序集合ZADD key score value
  • 获取有序集合中的元素数量ZCARD key
  • 获取有序集合中指定范围的元素ZRANGE key start stop
  • 按分数范围获取元素ZRANGEBYSCORE key min max
  • 获取元素的分数ZSCORE key value
  • 移除元素ZREM key value
5.2 示例
ZADD myzset 1 "one"
ZADD myzset 2 "two"
ZADD myzset 3 "three"
ZRANGE myzset 0 -1  # 返回 ["one", "two", "three"]
ZRANGEBYSCORE myzset 1 2  # 返回 ["one", "two"]
ZSCORE myzset "two"  # 返回 2
​

六、总结

Redis的五种基础数据结构——字符串、哈希、列表、集合和有序集合——提供了丰富的功能来满足各种应用需求。

http://www.xdnf.cn/news/9592.html

相关文章:

  • 解决 Go 中 `loadinternal: cannot find runtime/cgo` 错误
  • 从零开始学习PX4源码23(飞行模式管理)
  • windows安装Ubuntu(通过WSL,非双系统,非虚拟机)
  • Three.js 直线拐角自动圆角化(圆弧转弯)
  • 【unity游戏开发——编辑器扩展】AssetDatabase公共类在编辑器环境中管理和操作项目中的资源
  • MySQL如何开启死锁检测?
  • C 语言学习笔记(结构体2)
  • 国内有哪些智能外呼机器人
  • 单例模式的隐秘危机
  • 2025.5.23 【ZR NOI模拟赛 T3】高速公路 题解(容斥,高维前缀和,性质)
  • 【Redis】基本命令
  • Caddy如何在测试环境中使用IP地址配置HTTPS服务
  • VR 汽车:引领生产与设计的革命性飞跃​
  • 高端制造行业 VMware 替代案例合集:10+ 头部新能源、汽车、半导体制造商以国产虚拟化支持 MES、PLM 等核心应用系统
  • 漫画Android:Handler机制是怎么实现的?
  • 破能所,入不二
  • 文件服务端加密—minio配置https
  • OpenCV CUDA模块直方图计算------在 GPU上执行直方图均衡化(Histogram Equalization)函数equalizeHist
  • OpenAI大模型不听人类指令事件的技术分析与安全影响
  • ansible中的inventory.ini 文件详解
  • Ansible模块——Ansible的安装!
  • k8s Headless Service
  • 懒人云电脑方案:飞牛NAS远程唤醒 + 节点小宝一键唤醒、远程控制Windows!
  • day10机器学习的全流程
  • 嵌入式通用集成电路卡市场潜力报告:物联网浪潮下的机遇与挑战剖析
  • 政务小程序TOP3交互设计分析:便民服务的隐藏心机
  • C语言 文件操作(2)
  • 实验三 企业网络搭建及应用
  • 基于线结构光模型的工件孔洞检查
  • 第五章 面向对象(进阶)