注意:①Redis数据存储模式基于键值(key-Value)的存储原理。
②Redis中的数据结构类型有8种。
1、字符串(String)
(1)字符串结构示意图
键(Key) | 值(Value) |
Studentid | 1 |
Studentname | lh |
(2)字符串值内容是二进制安全的,该值可以赋值为数字、文本、图片、视频等,值(Value)最大为512MB。
(3)键名命名要简单明了,可以通过IT:Studentid给键增加键的提示信息。
2、列表(List)
(1)列表结构示意图
列表键(List-Key)名 | 值(Value) |
LStudentid
| 1 |
2 | |
3 | |
3 |
(2)若干按插入顺序排序的字符串元素组成的集合,按照链表(Link List)的插入顺序排序,读写操作时只能从其两头开始。
(3)允许值内容重复,采用链表技术实现,从链表头插入新字符串。
(4)列表可用于无需调整字符串顺序的聊天记录、博客评价、点评等中。
(5)List是按照插入顺序排序。
3、集合(Set)
(1)集合结构示意图
集合键(Set-Key)名 | 值(Value) |
SStudentid
| 1 |
4 | |
3 | |
0 |
(2)一个集合中的字符串值不能重复、不有序(无序的)。
(3)集合对字符串地址进行了统一的管理,使用Hashtable或insert统一管理字符串值。
(4)所有字符串值的读写可以从任意的地方进行读写。
4、散列表(Hash)------适用于小规模数据结构对象的存储和操作
(1)散列表结构示意图
散列键(Hash-Key)名 | 值(Value) |
Student:name | lh |
Student:id | 1 |
Student:year: | 22 |
(2)散列表可以存储多个键值对的映射,无序的数据集合。
(3)键名必须唯一,键名可以使用":"来分隔,键名不能太长。
(4)键名必须是字符串类型,但是键值可以是字符串类型也可以是数字型。
(5)适用于存储一个对象,对象存储在里面,占用的内存小,每个Hash可以存储键值2(32-1)对。
5、有序集合(Sorted set)
(1)有序集合结构示意图
有序集合键(zset-Key)名 | 值(Value) |
Student:id1 | 1 |
Student:id2 | 2 |
Student:id3: | 3 |
Student:id4 | 3 |
(2)有序集合根据值(Value)进行自动排序,可以对值直接进行操作,散列表通过键查找来获取值,散列表值不排序(无序的)。
(3)有序集合的键名必须是唯一的,值可以重复,值必须可以解析为浮点数。
(5)有序集合的键名又称为成员(Member),值又称为分值(Score)。
(6)有序集合采用自动值排序,数据量比较大时,检索的速度会比散列快。
6、位图(Bitmap)
(1)位图是在String类型上定义的一组面向比特(Bit)的操作。
(2)字符串是二进制安全的BLOB(Binary Large Object---二进制大对象),它们最大长度是512MB,适合于设置232个不同的位。
7、Hyperloglog
(1)一种概率数据结构,对数据集合中的数据进行唯一性统计,统计结果就是集合的基数,只记录统计结果值(有去重的特性),不记录统计集合的元素。
(2)举例:Hyperloglog的统计对象是数据集合{1,3,6,7,5,6},该数据集合的基数集是{1,3,6,7,5},统计结果基数是5。
(3)Hyperloglog统计集合基数,需要内存在12KB以内,计算基数所需的存储空间是固定的,不受集合大小、存储量大小的改变而改变。
8、地理空间(Geospatial)
(1)存储纬度、经度、名称、地理空间位置等信息。
(2)使用Geohash的技术进行填充。
(3)经纬度的位交错,形成一个独特的52位整数来记录地理空间的坐标位置。