Redis数据结构
- Redis的数据类型有哪些?
- 说说 Redis 哈希槽的概念?
- Hash如何实现O(1)的查询和设置速度, 以及扩容原理
- 布隆过滤器
Redis的数据类型有哪些?
出现概率: ★★★★★
这个在面试的过程出现的概率特别高了。
Redis 支持五种常用的数据类型:string( 字符串),hash( 哈希), list( 列表), set( 集合) 及 zsetsorted set:有序集合)。
redis 的基本数据结构对应的底层实现如下图所示:
1)、Redis 的字符串是动态字符串,是可以修改的字符串,内部结构实现上类似于 Java 的 ArrayList,采用预分配冗余空间的方式来减少内存的频繁分配,如图所示:
len 是当前字符串实际长度,capacity 是为字符串分配的可用空间,当字符串长度小于 1M 时,扩容都是加倍现有的空间,如果超过 1M,扩容时一次只会多扩 1M 的空间。字符串最大长度为 512M。