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【提供抽象日志数据类型的类似地图条目的仅附加集合】
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· 震惊!C++程序真的从main开始吗?99%的程序员都答错了
· 别再用vector<bool>了!Google高级工程师:这可能是STL最大的设计失误
· 【硬核科普】Trae如何「偷看」你的代码?零基础破解AI编程运行原理
· 单元测试从入门到精通
· 上周热点回顾(3.3-3.9)