Redis 知识点问答

Q1:
Redis为什么快

Q2:
Redis zset的实现原理(从跳跃表角度)

Q3:
描述Redis hash数据类型的rehash过程

Q4:
Redis的应用场景

Q5:
Redis分布式锁实现

Q6:
Redis6.0 网络IO多线程

Q7:
Redis 集群架构Codis与RedisCluster的区别

Q8:
描述RedisCluster节点扩容过程

Q9:
Redis list实现
A9:
1、Redis的list基于链表实现而非数组,这意味着list的插入和删除操作非常快,时间复杂度为O(1),但是索引定位很慢,时间复杂度为O(n);
2、如果再深入一点,你会发现Redis底层存储还不是一个简单的linkedlist,而是称为quicklist的一个数据结构,在列表元素较少的情况下会使用一块连续的内存空间存储,这个结构是ziplist,也即是压缩列表,当数据量比较多的情况时,才会改为quicklist,因为普通的链表需要附加指针空间太大,会比较浪费空间,而且会加重内存的碎片化,所以Redis将链表和ziplist结合起来组成了quicklist,也就是将多个ziplist使用双向指针串起来使用,这样既能满足快速的插入删除性能,又不会出现太大的空间冗余。

你可能感兴趣的:(redis)