
课程咨询: 400-996-5531 / 投诉建议: 400-111-8989
认真做教育 专心促就业
我们在前几期的文章中给大家简单介绍了程序员需要学习的一些编程语言和职业素养等内容,而本文我们就再来了解一下,软件开发数据类型都有哪些。
String
String是基本的Redis数据类型,其是二进制安全的,这表示String可以存储任何类型的数据,如字符串、数字、图片、序列化对象等等。
官方文档提供了部分对String数据类型的说明,具体String数据类型支持的命令也可以通过访问这里查看。
有一点需要注意,String数据类型高支持存储512MB长度的数据。
通常情况,String数据类型会使用在以下场景:
数据缓存:直接存储字符串、序列化数据、图片、视频等数据
计数器:使用INCRBY这样的增量命令实现原子计数器
分布式锁:使用多参数的SET命令实现分布式锁
List
Redis的List数据类型是一个双端链表,因此List随机存取的效率比较低,不过可以像使用链表一样实现链式栈、链式队列等功能。
官方文档提供了部分对List数据类型的说明,具体List数据类型支持的命令也可以通过访问这里查看。
有一点需要注意,List数据类型大支持存储
232−1(约42亿)个元素。
通常情况,List数据类型会使用在以下场景:
栈:联合使用LPUSH命令和LPOP命令即可实现栈
队列:联合使用LPUSH命令和RPOP命令即可实现队列
有限集合:联合使用LPUSH命令和LTRIM命令即可实现有限集合
消息队列:联合使用LPUSH命令和BRPOP命令即可实现延时消息队列
Set
Set是一个无序不重复集合,并且现有命令实现集合的交集、并集、差集等功能,但频繁使用这些功能会影响Redis服务器的性能,建议谨慎使用。
官方文档提供了部分对Set数据类型的说明,具体Set数据类型支持的命令也可以通过访问这里查看。
同List数据类型一样,Set数据类型大支持存储
232−1(约42亿)个元素。
通常情况,Set数据类型会使用在以下场景:
标签:不同的标签存储在不同集合中,既可以查询是否存在相同标签,也可以聚合不同标签
共同好友:不同用户的好友存储在不同集合中,使用交集可以得到共同好友
独立IP:利用Set的元素性,可以快速实时统计网站的独立IP
Hash
Redis的Hash数据类型存储着字符串field和字符串value的映射关系,特别适合存储key-value结构。
官方文档提供了部分对Hash数据类型的说明,具体Hash数据类型支持的命令也可以通过访问这里查看。
每个Hash数据类型多可以存储
232−1(约42亿)个键值对,实际上,Hash数据类型仅受Redis所部署的内存限制。
通常情况,Hash数据类型会使用在以下场景:
数据缓存:对比于存储JSON字符串的String类型,Hash更直观、更节省空间、更灵活
SortedSet
SortedSet数据类型有点类似于Set数据类型,不同之处在于SortedSet数据类型支持按照给定的分数对数据进行排序。
SortedSet中的集合通过哈希表实现,在实际使用中,添加、删除、查找的效率都非常高。
官方文档提供了部分对Hash数据类型的说明,具体Hash数据类型支持的命令也可以通过访问这里查看。
大多数SortedSet操作的复杂度是O(log(N)),其中N是成员数。部分批量查询命令的时间复杂度可以达到O(log(N)+M),这里的M是返回的结果数。
通常情况,SortedSet数据类型会使用在以下场景:
排行榜:排行榜需要按照某个规则排序,将这个规则值存储成分数,即可实现排行榜的功能
权重队列:通过将任务的权重存储成分数,工作线程可以按照分数的倒序来获取工作任务
【免责声明】本文系本网编辑部分转载,转载目的在于传递更多信息,并不代表本网赞同其观点和对其真实性负责。如涉及作品内容、版权和其它问题,请在30日内与管理员联系,我们会予以更改或删除相关文章,以保证您的权益!请读者仅作参考。更多内容请加抖音太原达内IT培训学习了解。