Redis之数据类型
Redis不是一个简单的键值存储,它实际上是一个数据结构服务器,支持不同类型的值。这意味着,虽然在传统的键值存储中,您将字符串键与字符串值相关联,但在Redis中,该值不仅限于简单的字符串,还可以保存更复杂的数据结构
1.Keys
在介绍Redis数据类型之前,我们需要先了解一下Redis的键。
我们可以使用类似于"foo"这样的字符串作为key,甚至空字符串("")也是有效的key。但是,请注意,Redis的key也是需要遵循一定的规则的,下面我们来看看这些具体的规则。
- 不建议
key值的长度太大,一方面会占用较多的内存,另一方面会降低查询效率 - 保持良好的
key的可读性,例如mobile15512341234,可以替换为:mobile:15520825732。 key的最大值为512MB。
2.Strings
Redis的
Strings数据类型是可以与Redis键相关联的最简单的值类型。值可以是任意字符串,和我们前面提到的key的最大值一样,字符串值的最大值也为512MB
由于Redis键也是字符串,当我们也使用字符串作为值,就意味着将一个字符串映射到另一个字符串。
基本语法:
set k1 v1;
get k1;

3.Lists
Redis的
Lists数据类型是通过链表来实现的。这意味着,即使一个列表中存在着数百万个元素,在列表的开头或结尾插入新的元素,所使用的时间也是相同的。同样的,列表中元素的个数并不会影响新元素的插入开头或结尾的速度。但是使用列表,我们的查询速度就不那么快了。
基本语法:
# 将元素插入到列表的头部
lpush list1 v1;
lpush list1 v2 v3;

可以看到列表中的数据是有序的,并且使用lpush最后插入的元素在列表的头部
4.Hashes
Hashes数据类型就和我们Java的HashMap类似,存在键值对。
基本用法:
hset hash1 k1 v1;
hset hash1 k2 v2;

5.Sets
Sets数据类型是字符串的无序不重复的集合。sadd命令可以向集合中添加新元素。
基本用法:
sadd set1 a c b d g e j f

我们可以看到,元素并没有按照我们的插入顺序排序。
6.Sorted sets
Sorted sets数据类型是字符串的有序不重复的集合。在Sorted sets数据中,有一个浮点类型的score值与元素进行关联。
排序规则:
- 如果元素A的score大于元素B的score,则按照score值进行排序
- 如果元素A和元素B的score值相等,则按照元素A和元素B的字典顺序排序
基本用法:
zadd sortset1 26 zhangsan;
zadd sortset1 18 lisi;
zadd sortset1 29 wangwu;

我们可以看到,元素的顺序是按照元素的score值来进行排序的。
以上就是Redis的数据类型的基本介绍,后续我们详细介绍各个数据类型的命令用法。
最后,欢迎关注微信公众号一起交流

6万+

被折叠的 条评论
为什么被折叠?



