Redis数据库的数据类型有哪些?

Redis 数据库中的所有数据都是键值对,不管放入数据库中的是什么类型的数据,放在底层的都以二进制字节数组的格式存放,客户端使用时需要自己来转换。Redis 键值是二进制安全的,用任何二进制序列作为键,空字符串也是有效键。键取值太长将导致查找键的计算成本高取值,而太短时,可读性较差。每个数据库的大小不能超过内存,它完全在内存中操作数据,数据类型丰富。

Redis支持的值类型有5种,即字符串类型(string)、哈希表类型(hash)、链表类型(list)、集合类型(set)、有序集合类型(ordered set)。

(1)字符串

字符串是最基本的类型,它是二进制安全的,可以包含任何数据,如JPG图片或者序列化的对象,其字符串值最多是512MB。字符串是最常用的一种数据类型,可应用于普通的键值对存储,具有定时持久化、操作日志及复制等功能。

(2)哈希表

哈希是一个键值对集合,一个字符串类型的域(field)和值(value)的映射表,适用于存储对象。例如,存储用户信息对象数据用户 ID 为键,存储的值是户对象,包含姓名、年龄、生日、专业等信息,用哈希表内部存储的值为一个哈希映射(HashMap),图7-6给出了用户信息的定义,第一行的键值对是具体的键,person值是一个哈希。

图7-6 用户信息的定义

哈希表不支持二进制位操作命令,一个哈希表中最多包含2 32 -1个键值对。

(3)链表

链表是简单的字符串列表,是重要的数据结构之一。它的实现为一个双向链表,支持反向查找和遍历,可用于发送缓冲队列等功能。

(4)集合

Redis中的集合是一个无序的、去重的元素集合,元素是字符串类型,最多包含2 32 -1个元素。集合是通过哈希表实现的,所以添加、删除、查找的复杂度都是 O(1)。Redis 的集合对外提供与链表类似的功能,集合的概念就是一堆不重复值的组合。集合的内部实现是一个值永远为null的哈希映射,是通过计算哈希的方式来快速去重的。

(5)有序集合

有序集合的操作类似集合,有序的、去重的、元素是字符串类型、不允许有重复的成员,每一个元素都关联着一个浮点数分值(Score),按照分值从小到大的顺序排列集合中的元素。分值可以相同,最多包含2 32 -1个元素,成员是唯一的但分数(Score)可以重复。有序集合的使用场景与集合类似,区别是集合不是自动有序的,有序集合通过用户额外提供一个优先级(Score)的参数来为成员排序,是插入有序的即自动排序。有序集合的内部使用哈希映射和跳跃表(SkipList)来保证数据的存储和有序。

版权声明:本篇文章(包括图片)来自网络,由程序自动采集,著作权(版权)归原作者所有,如有侵权联系我们删除,联系方式(QQ:452038415)。http://www.yytjw.com/454.html
联系我们

联系我们

0898-88881688

在线咨询: QQ交谈

邮箱: email@wangzhan.com

工作时间:周一至周五,9:00-17:30,节假日休息

返回顶部