随笔 - 31  文章 - 0  评论 - 0  阅读 - 14642 

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   鬼谷玄一  阅读(41)  评论(0编辑  收藏  举报
相关博文:
阅读排行:
· 震惊!C++程序真的从main开始吗?99%的程序员都答错了
· 别再用vector<bool>了!Google高级工程师:这可能是STL最大的设计失误
· 【硬核科普】Trae如何「偷看」你的代码?零基础破解AI编程运行原理
· 单元测试从入门到精通
· 上周热点回顾(3.3-3.9)
点击右上角即可分享
微信分享提示