Bootstrap

redis数据类型介绍

58560b3832ad4e9c842828e2c548dd33.jpg

 

 

字符串(String):

 

定义:最基本的数据类型,可以存储任何形式的字符串,包括文本数据和数字。

操作:支持 GET、SET、INCR、DECR 等操作,可以实现对字符串的读取、写入和自增/自减。

 

列表(List):

 

定义:按照插入顺序排序的字符串列表,可以存储重复元素。

操作:支持 LPUSH、RPUSH、LPOP、RPOP、LRANGE 等操作,可以实现在列表的两端进行元素的插入和弹出,以及获取列表中的元素范围。

底层实现:通常使用双向链表或压缩列表(ziplist)。

 

集合(Set):

 

定义:无序的字符串集合,不允许重复元素。

操作:支持 SADD、SREM、SMEMBERS、SISMEMBER 等操作,可以实现对集合的添加、删除、获取成员和判断成员是否存在。

底层实现:通常使用哈希表或整数集合(intset)。

 

有序集合(Sorted Set):

 

定义:与集合类似,但每个元素都关联一个分数(score),按照分数进行排序。

操作:支持 ZADD、ZREM、ZRANGE、ZREVRANGE、ZSCORE 等操作,可以实现对有序集合的添加、删除、按分数范围获取元素和获取元素的分数。

底层实现:通常使用跳表(skiplist)和哈希表。

 

哈希(Hash):

 

定义:键值对的集合,其中的键和值都是字符串类型。

操作:支持 HSET、HGET、HDEL、HGETALL 等操作,可以实现对哈希中字段的添加、获取、删除和获取所有字段及值。

底层实现:通常使用压缩列表(当字段和值都比较小时)或哈希表(当字段和值较大时)。

 

位图(Bitmap):

 

定义:位数组或位向量,可以看作是以位为单位的数组,用于存储布尔值(0 或 1)。

操作:支持 SETBIT、GETBIT、BITCOUNT 等操作,可以实现对位图中特定位的设置、获取和统计。

 

HyperLogLog:

 

定义:用于基数估计的算法,可以在不存储具体数据的情况下,估计一个数据集的基数(即不同元素的数量)。

操作:支持 PFADD、PFCOUNT、PFMERGE 等操作,可以实现对 HyperLogLog 的添加元素、获取基数和合并多个 HyperLogLog。

 

地理空间索引(Geospatial Index):

 

定义:用于存储地理位置信息,支持地理空间查询。

操作:支持 GEOADD、GEOPOS、GEODIST、GEORADIUS 等操作,可以实现对地理位置的添加、获取位置、计算距离和按半径查询地理位置。

 

流(Stream):

 

定义:用于记录日志或事件的数据结构,支持持久化和消费者组等高级特性。

操作:支持 XADD、XREAD、XACK、XGROUP 等操作,可以实现对流的添加条目、读取条目、确认消费和创建消费者组。

 

这些数据类型为 Redis 提供了丰富的功能,使其能够应用于缓存、会话存储、消息队列、发布/订阅、计数器、排行榜、地理位置服务等众多场景。

;