1. Redis的存储结构是什么样的?

官网的说明:

Redis is not a plain key-value store, it is actually a data structures server, supporting different kinds of values. What this means is that, while in traditional key-value stores you associate string keys to string values, in Redis the value is not limited to a simple string, but can also hold more complex data structures. 

翻译成中文就是:

Redis 不是一个普通的键值存储,它实际上是一个数据结构服务器,支持不同类型的值。这意味着,虽然在传统的键值存储中,您将字符串键与字符串值相关联,但在 Redis 中,值不仅限于简单的字符串,还可以保存更复杂的数据结构。

【嗯,简单的说,整个Redis是按Map<String, Object>的方式存储的,然后Object支持好几种类型的数据】

以下是 Redis 支持的所有数据结构的列表:【这也可以简单的理解,Object能够进行哪些类型转换】

1)Binary-safe strings【java.lang.String】

没啥好说的,类比Java的Map<String, String>

 

 2)Lists【java.util.List】

类比Java的Map<String, List>

 

3)Sets【java.util.Set】

类比Java的Map<String, Set>,跟List类似,但是Sets的值是不允许有重复元素的

 

 【注:这个key的值是不能有相同的元素,如上图所示,不能再往test_set添加“本草纲目”】

4)Sorted sets【java.util.SortedSet】

类比Java的Map<String, SortedSet>,跟set类型不一样的地方就是多了一个score作为比较权重,小的排前面

 

 5)Hashes【java.util.HashMap】

类比Java的Map<String, Set<Map<String, String>>>,里面的Set<Map<String, String>>去重条件为里面map的key,如果这时再添加一条{"jay_music":"一路向北"}会提示“Value with same key already exist”

 

 6)Bit arrays (or simply bitmaps)【可以使用特殊命令来处理像位数组一样的字符串值】

7)HyperLogLogs【概率数据结构,用于估计集合的基数】

8)Streams【提供抽象日志数据类型的类似地图条目的仅附加集合】 

 

posted on 2022-03-11 15:02  鬼谷玄一  阅读(38)  评论(0编辑  收藏  举报