Redis 数据类型讲解
Redis 提供了多种数据类型,以满足不同场景下的数据存储需求。以下是 Redis 中支持的主要数据类型及其用途:
1. 字符串 (String)
- 描述: Redis 中最基本的数据类型,可以存储文本或二进制数据(如图片、JSON 数据等)。
- 特点: 单个键最多存储 512MB 的数据。
- 常用命令:
SET key value
: 设置一个键的值。GET key
: 获取一个键的值。
2. 哈希 (Hash)
- 描述: 键值对集合,适用于存储对象(如用户信息),每个对象可以有多个字段及其对应的值。
- 特点: 类似于数据结构中的哈希表(键 -> 值对)。
- 常用命令:
HSET key field value
: 设置哈希表中的字段值。HGET key field
: 获取哈希表中特定字段的值。
3. 列表 (List)
- 描述: 有序的字符串列表,支持从两端插入和弹出元素。
- 特点: 适用于消息队列、任务列表等场景。
- 常用命令:
LPUSH key value
: 将值插入列表左侧。RPUSH key value
: 将值插入列表右侧。LPOP key
: 从左侧弹出一个元素。RPOP key
: 从右侧弹出一个元素。
4. 集合 (Set)
- 描述: 无序的字符串集合,集合中的每个元素都是唯一的。
- 特点: 适用于去重、集合运算(交集、并集、差集)等场景。
- 常用命令:
SADD key value
: 将元素加入集合。SREM key value
: 从集合中移除元素。SINTER key1 key2
: 返回两个集合的交集。
5. 有序集合 (Sorted Set)
- 描述: 与集合类似,但每个元素都关联一个分数,集合中的元素按分数排序。
- 特点: 适用于排名、排行榜等场景。
- 常用命令:
ZADD key score member
: 向有序集合中添加带有分数的元素。ZRANGE key start stop
: 按分数范围获取元素。
6. 位图 (Bitmap)
- 描述: 位图是一种操作字符串的二进制视图,允许对字符串的二进制位进行操作。
- 特点: 适用于高效地存储和操作大量布尔数据(如在线用户、活跃用户等)。
- 常用命令:
SETBIT key offset value
: 设置某个偏移量上的位。GETBIT key offset
: 获取某个偏移量上的位。
7. HyperLogLog
- 描述: 一种概率性数据结构,用于估算唯一元素的基数,内存占用极小。
- 特点: 适用于快速估算大量数据的基数(例如独立访问的 IP 数)。
- 常用命令:
PFADD key element
: 将元素添加到 HyperLogLog。PFCOUNT key
: 返回 HyperLogLog 的基数估算值。
8. 地理空间 (Geo)
- 描述: 基于有序集合实现的地理空间数据结构,支持地理位置存储和查询。
- 特点: 适用于存储和查询地理坐标(如经纬度数据)。
- 常用命令:
GEOADD key longitude latitude member
: 添加地理位置数据。GEORADIUS key longitude latitude radius m|km
: 查询指定半径范围内的地理位置。
9. 流 (Stream)
- 描述: Redis 5.0 引入的数据结构,支持日志和消息流的存储及消费。
- 特点: 适用于消息队列或日志管理。
- 常用命令:
XADD key id field value
: 向流中添加消息。XREAD COUNT count STREAMS key id
: 读取流中的消息。
Redis 提供了灵活的多种数据类型,可以高效地处理各种场景下的数据存储和操作需求。