Redis基本数据结构
Redis 作为一个高性能的键值对存储数据库,支持多种基本数据类型,每种类型都有其独特的特点:
String(字符串):
- 特点: 最基本的 Redis 数据类型,支持普通的字符串操作,如设置、获取、增减、拼接等。它是二进制安全的,因此可以存储任何类型的数据(如文本、图片、序列化对象等)。
- 用途: 常用于缓存单一值、计数器、分布式锁等。
List(列表):
- 特点: 有序的字符串集合,可以在列表的两端进行元素的推入或弹出操作(如 LPUSH、RPUSH、LPOP、RPOP),还可以通过索引访问元素。列表按插入顺序排序。
- 用途: 适用于消息队列、任务列表、日志存储等场景。
Set(集合):
- 特点: 无序的字符串集合,集合内的元素是唯一的。支持集合间的交集、并集、差集操作。
- 用途: 适用于需要去重的场景,如共同好友、标签系统等。
Hash(哈希表):
- 特点: 键值对集合,每个键对应一个值,可以将一个对象的多个属性及其值存储在一起。提供对单个字段的操作(如 HSET、HGET)。
- 用途: 常用于存储对象,如用户信息、配置项等。
Sorted Set(有序集合):
- 特点: 类似 Set,但每个元素会关联一个分数(score),元素按照分数从小到大排序。支持范围查询。
- 用途: 适用于排行榜、带优先级的任务列表等场景。
Bitmap(位图):
- 特点: 底层是字符串,可以对字符串中的每个比特位进行操作。常用于高效的状态记录(如签到)。
- 用途: 用户活跃状态、在线人数统计等。
HyperLogLog:
- 特点: 一种用于基数统计的概率性数据结构,虽然不能精确地获取集合的基数,但可以在小内存占用的情况下获取一个非常接近的结果。
- 用途: 用于大规模去重计数,如统计独立访问用户数(UV)。
Geo(地理位置):
- 特点: 基于有序集合实现,可以存储地理位置(经纬度)数据,并提供附近位置查询等地理操作。
- 用途: 地理位置服务,如查找附近的人或店铺。
Stream(流):
- 特点: 一种日志型数据结构,支持多消费者,数据可以按时间顺序读取,并且支持阻塞读取。
- 用途: 消息队列、日志存储和处理等。
编辑 (opens new window)
上次更新: 2024/09/13, 11:59:12