💝💝💝欢迎来到我的博客,很高兴能够在这里和您见面!希望您在这里可以感受到一份轻松愉快的氛围,不仅可以获得有趣的内容和知识,也可以畅所欲言、分享您的想法和见解。
- 持续学习,不断总结,共同进步,活到老学到老
- 人生的本质是追寻自我的提升,包括思想、能力、意志等等。
- 直面变化,找到背后更基础的东西,更基础的东西是用户的需求。
- 我们的成功是我们的现在和将来决定的。今天和明天已经由昨天决定,你还可以决定后天。
非常期待和您一起在这个小小的网络世界里共同探索、学习和成长。💝💝💝 ✨✨ 欢迎订阅本专栏 ✨✨
博客目录
3.Type 种类说明
Redis 是一款内存存储的数据结构服务器,支持多种数据类型,每种数据类型都有不同的操作和特性。以下是 Redis 支持的主要数据类型:
-
字符串(String): 最基本的数据类型,可以存储文本、整数或二进制数据。字符串类型的值最大可以达到 512MB。
-
哈希(Hash): 类似于关联数组或字典,存储了字段和值之间的映射关系。用于存储对象的属性和值。
-
列表(List): 有序的字符串元素集合,允许在列表的头部或尾部进行插入、删除和索引操作。可用于实现队列、栈等数据结构。
-
集合(Set): 无序的唯一元素集合,支持元素的添加、删除和判断元素是否存在等操作。可用于处理无序不重复的数据。
-
有序集合(Sorted Set): 类似于集合,每个元素关联一个分数(score),用于排序集合中的元素。支持根据分数范围或成员的排名来获取数据。
-
位图(Bitmap): 一种特殊的字符串类型,每个比特位都可以被设置为 0 或 1,支持位操作和位图计数等。
-
HyperLogLog: 一种用于估计集合基数(不重复元素数量)的算法,占用固定的空间,适用于大规模数据的基数统计。
-
地理空间(Geospatial): 存储地理位置信息的数据类型,可以用于存储经度和纬度,以及进行距离计算等操作。
-
流(Stream): 类似于日志的数据结构,支持按时间顺序存储消息,并且可以消费已发布的消息。
每种数据类型都有一组相应的命令来进行操作,Redis 通过这些数据类型提供了丰富的功能,使其成为一个多用途的内存数据存储系统。不同的数据类型适用于不同的应用场景,用户可以根据需要选择合适的数据类型来存储和操作数据。
常见的数据结构以及与之对应的键值类型如下
- 字符串 (sds.h/c):
String
- 双向列表(adlist.h/c):
List
- 压缩列表(ziplist.h/c):
List、Hash、Sorted Set
- 压缩 Map(zipmap.h/c):
Hash
- quickList(quicklist.h/c):
List、Hash、Sorted Set
,quickList 的实现原理有点像stl
中的deque
- 跳表(t_zset.c):
Sorted Set
- 哈希表(dict.h/c):
Hash
- 位图(bitops.c): BitMap
- GeoHash(geohash.h/c、geo.h/c、geohelper.h/c):
Geo
- HyperLogLog(hyperloglog.c):
HyperLogLog
- 流数据(rax.h/c):
Stream
BitMap 和布隆过滤器比较
- 布隆过滤器不能确定一个值是否真的存在,而 bitmap 可以
- 布隆过滤器空间利用率比 bitmap 高,一个位可以代表多个值
- 布隆过滤器可以输入字符串,而 bitmap 必须转换为数值才可以
HyperLogLog
-
统计注册 IP 数
-
统计每日访问 IP 数
-
统计页面实时 UV 数
-
统计在线用户数
-
统计用户每天搜索不同词条的个数
觉得有用的话点个赞
👍🏻
呗。
❤️❤️❤️本人水平有限,如有纰漏,欢迎各位大佬评论批评指正!😄😄😄💘💘💘如果觉得这篇文对你有帮助的话,也请给个点赞、收藏下吧,非常感谢!👍 👍 👍
🔥🔥🔥Stay Hungry Stay Foolish 道阻且长,行则将至,让我们一起加油吧!🌙🌙🌙