1.并发写,
答:由于redis是单线程的,可以在内存中合并写操作来优化,而且省去了io和序列化操作
2.redis的持久化方式
- RDB
- AOF
3.redis 提供了主从复制功能,即一份数据有多份副本
4.redis 中的字符串并非C中的字符串实现,而是用SDS(simple dynamic string)的抽象类型,键值对的key和value都是一个SDS类型。SDS还用来缓冲 - SDS初始大小小于1M,则分配N+1+N的空间,如果大于1M,则分配30MB,目的是防止字符串修改溢出和重新分配空间
- 惰性回收,如果SDS字符串缩短了,那么free属性会标识剩余的空间,而不是直接收回。
- 二进制安全,C语言中,字符串必须符合某种编码,如ASCII。比如遇到\0会认为是字符串结尾,但是SDS没有这个假设和限制,村进去的二进制是什么样,读取的时候就是什么样。
5.当redis列表的值字符串比较大时,redis会采用链表作为数据结构
6.redis map的实现 - rehash ---扩张---大于等于使用×2的数字。数字为2的n次方
- reshash --缩减----小于等于使用的数字,数字为2的n次方
- 渐进式rehash,每次增删改查都会出发rehash
7.实际上外面包了一层对象,来决定最终的类型。当我们创建一个键值对的时候,我们会创建两个
、