redis数据类型及结构特性有哪些
原创
Redis数据类型及结构特性
Redis是一种开源的高性能键值数据库,它提供了多种数据类型来满足不同的业务场景。以下是Redis拥护的常见数据类型及其结构特性:
1. 字符串(String)
字符串是Redis最基本的数据类型,一个键对应一个值。字符串类型的值最大可以存储512MB。常用于缓存、计数器、分布式锁等场景。
2. 列表(List)
列表是按照插入顺序排序的字符串元素集合。一个列表可以包含最多2^32-1个元素。列表拥护两端插入和弹出操作,可以模拟栈和队列等数据结构。
LPUSH key value1 [value2 ...]
RPUSH key value1 [value2 ...]
LPOP key
RPOP key
3. 集合(Set)
集合是无序的、不重复的字符串元素集合。集合中的元素最多可以包含2^32-1个元素。常用于抽奖、标签、社交网络等场景。
SADD key member1 [member2 ...]
SREM key member1 [member2 ...]
SMEMBERS key
4. 哈希(Hash)
哈希是一个键值对集合,适合存储对象。每个哈希可以存储2^32-1个键值对。常用于存储用户信息、配置信息等场景。
HSET key field1 value1 [field2 value2 ...]
HGET key field1 [field2 ...]
HGETALL key
5. 有序集合(ZSet)
有序集合是集合的一种,每个元素都会相关性一个分数(double类型的浮点数),元素按照分数进行排序。有序集合中的元素最多可以包含2^32-1个元素。常用于排行榜、社交网络等场景。
ZADD key score1 member1 [score2 member2 ...]
ZRANK key member
ZREVRANK key member
ZRANGE key start stop [WITHSCORES]
6. 位图(Bitmap)
位图不是一种数据类型,而是基于字符串类型的一种特殊用途。位图可以用来即一个二维矩阵,常用于统计用户签到、用户在线状态等场景。
SETBIT key offset value
GETBIT key offset
BITCOUNT key [start end]
7. 超日志(HyperLogLog)
超日志是一种概率数据结构,用于估算集合中元素的数量。它具有很小的内存占用,常用于统计UV(自由访客)等场景。
PFADD key element1 [element2 ...]
PFCOUNT key [key ...]
8. 流(Stream)
流是Redis 5.0引入的一种数据类型,用于模拟消息队列。流可以看作是一个有序的消息序列,拥护消费者组等功能。
XADD key * field1 value1 [field2 value2 ...]
XREAD [COUNT count] [BLOCK milliseconds] STREAMS key [key ...] ID [ID ...]