1.Redis基于内存,大部分命令处理只是纯粹的内存操作


2.Redis是单进程的服务,避免了不必要的上下文切换,同时不存在加锁/释放锁 等同步操作


3.Redis 使用多路I/O 复用模型,select ,epoll, poll 可以高效处理大量并发连接


4.Redis中的数据结构,增删改查比较简单


Redis 5.0 中,flag占据一个字节,低3位表示type,高5位表示长度 ,能表示的长度区间为0 到 31


长度大于31的字符串,len和free单独存放


+++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++

知识点复习30 Redis 知识点02_主线程

知识点复习30 Redis 知识点02_子线程_02

知识点复习30 Redis 知识点02_redis_03

知识点复习30 Redis 知识点02_redis_04


知识点复习30 Redis 知识点02_内存操作_05

知识点复习30 Redis 知识点02_内存操作_06

知识点复习30 Redis 知识点02_主线程_07

save:由于redis是单线程的,save会造成阻塞,在rdb文件创建完成期间不处理任何请求。

bgsave:会创建子线程,完成rdb文件的创建工作,主线程正常执行。

在执行bgsave期间,主线程会拒绝save和bgsave命令;bgrewriteaof命令会延迟到bgsave命令结束之后执行

知识点复习30 Redis 知识点02_文件创建_08

断线期间,也需要完整的同步,很耗费资源

知识点复习30 Redis 知识点02_主线程_09