Redis 提供了多种数据类型,以满足不同的应用场景。以下是 Redis 的主要数据类型及其应用场景:
-
字符串(String):
-
描述:最基本的数据类型,存储单个键值对,值可以是字符串、整数或浮点数。
-
应用场景:缓存简单对象、计数器、分布式锁等。
-
-
哈希(Hash):
-
描述:类似于 Java 中的
Map
,用于存储键值对集合。 -
应用场景:存储用户信息、配置项等。
-
-
列表(List):
-
描述:双向链表,按照插入顺序排序。
-
应用场景:消息队列、任务列表、文章评论列表等。
-
-
集合(Set):
-
描述:无序且唯一的字符串集合。
-
应用场景:标签、好友列表、去重操作等。
-
-
有序集合(Sorted Set 或 Zset):
-
描述:类似于
Set
,但每个元素关联一个分数,根据分数排序。 -
应用场景:排行榜、带权重的消息队列等。
-
-
位图(Bitmap):
-
描述:基于字符串的二进制位操作。
-
应用场景:用户签到、活跃用户统计等。
-
-
HyperLogLog:
-
描述:用于基数统计,估算集合中唯一元素的数量,具有固定的内存占用。
-
应用场景:网站独立访客数统计、实时去重等。
-
-
地理空间(Geospatial):
-
描述:存储地理位置信息,支持位置查询。
-
应用场景:附近的人、LBS(基于位置的服务)等。
-
-
流(Stream):
-
描述:用于消息队列和日志存储,支持消息的持久化和时间排序。
-
应用场景:聊天记录、日志收集等。
-
不同的数据类型在底层由不同的数据结构实现,例如:
-
字符串:简单动态字符串(SDS)。
-
列表:双向链表、压缩列表或快速列表。
-
哈希:哈希表或压缩列表。
-
集合:哈希表或整数集合。
-
有序集合:跳表或压缩列表。