⛑️【Redis学习笔记】数据类型篇

type
status
date
slug
summary
tags
category
icon
password
Blocked by
Blocking
AI summary

Redis 常用数据类型总览

1. String(字符串)

数据结构

  • int:存储整数值
  • SDS(Simple Dynamic String):存储字符串或二进制数据
  • embstr:存储小于 44 字节(Redis 5.0)的字符串
  • raw:存储大于 44 字节的字符串

常用命令

应用场景

  • 缓存对象
  • 计数器(如点赞数、阅读数)
  • 分布式锁
  • 共享 session

2. Hash(哈希)

数据结构

  • ziplist(压缩列表):当元素个数小于 512 且值小于 64 字节时使用
  • hashtable(哈希表):当元素个数超过配置值时使用
  • 在 Redis 7.0 中,ziplist 已被 listpack 替代

常用命令

应用场景

  • 存储对象数据
  • 购物车系统

3. List(列表)

数据结构

  • Redis 3.2 之后统一使用 quicklist 实现
  • quicklist 是 ziplist 和 linkedlist 的组合

常用命令

应用场景

  • 消息队列
  • 最新消息列表
  • 文章列表

4. Set(集合)

数据结构

  • intset(整数集合):当元素都是整数且元素个数小于 512 个时使用
  • hashtable(哈希表):当元素不满足 intset 条件时使用

常用命令

应用场景

  • 好友关系
  • 点赞功能
  • 标签系统
  • 抽奖系统

5. Zset(有序集合)

数据结构

  • ziplist(压缩列表):元素数量小于 128 且值小于 64 字节时使用
  • skiplist(跳跃表)+ hashtable:当元素不满足 ziplist 条件时使用

常用命令

应用场景

  • 排行榜
  • 带权重的消息队列
  • 排序系统

6. 特殊数据类型

Bitmap

  • 基于 String 类型的位操作
  • 适用于二值状态统计(如签到、在线状态)

HyperLogLog

  • 用于基数统计
  • 占用空间小,有一定误差率
  • 适用于统计网站 UV 等

GEO

  • 地理位置信息存储
  • 基于 Zset 实现
  • 适用于位置服务(如附近的人)

Stream

  • Redis 5.0 新增的消息队列
  • 支持消费组模式
  • 提供持久化和确认机制
 
Prev
【Redis学习笔记】持久化篇
Next
【Mysql学习笔记】锁篇
Loading...
Article List