美文网首页
《Redis设计与实现》读书笔记

《Redis设计与实现》读书笔记

作者: 就这些吗 | 来源:发表于2020-01-30 05:12 被阅读0次

第一部分

SDS较于C字符串更安全、效率更高、功能性更强,也能使用<string.h>中的一部分函>数,减少了自己重写的开支。
效率方面:SDS保存了自己的len属性(字符串长度)和free属性(SDS中空闲的空间,可用来判断扩容)
安全和功能性方面:
1.空间预分配,SDS小于1MB,free与len相同,大于1MB,free为1MB。
2.惰性释放空间,防止重分配带来的性能影响。删除部分字符后,free仍会留下,但是也提供了API来真正释放。
3.修改SDS时,SDS会先检查自己的空间是否满足,不满足就会扩容。防止了缓冲区溢出
4.SDS实际上保存的是一系列二进制数据而不是字符,所以可以用来存储各种,音频、图片等。

redis中的rehash?
redis的底层数据结构:SDS,双向链表,字典,跳表(sorted set),整数集合(int set),压缩列表(zip list)
redis的数据结构及使用场景

跳表的查询操作:


redis的内存回收是由引用计数法做的。

redis在启动时会创建0-9999共一万个字符串对象,如果有用到其中的值,会共享这些对象而不是创建。

对象会记录最后一次被访问的时间,可以由此进行基于lru算法(最近最少使用)的内存回收

第二部分

redis的持久化策略和抉择

redis的单线程体现在网络请求模块将不同的 I/O 多路复用函数封装成相同的 API 提供给上层使用。
整个模块使 Redis 能以单进程运行的同时服务成千上万个文件描述符,避免了由于多进程应用的引入导致代码实现复杂度的提升,减少了出错的可能性。
select polll和epoll

相关文章

  • 《redis设计与实现》 读书笔记

    《redis设计与实现》 读书笔记 《redis设计与实现》 作者:黄健宏 一、前言 什么是redis:Redis...

  • redis数据结构

    引言 从本次开始,对Redis设计与实现进行阅读及相关读书笔记的记录。Redis版本为3.0 数据结构 简单动态字...

  • Redis 五大类型的对象

    《Redis 设计与实现》[http://redisbook.com/index.html]《Redis 设计与实...

  • Redis数据库实现

    《Redis 设计与实现》[http://redisbook.com/index.html]《Redis 设计与实...

  • RDB持久化

    《Redis 设计与实现》[http://redisbook.com/index.html]《Redis 设计与实...

  • AOF持久化

    《Redis 设计与实现》[http://redisbook.com/index.html]《Redis 设计与实...

  • Redis底层数据结构

    《Redis 设计与实现》[http://redisbook.com/index.html]《Redis 设计与实...

  • Redis事件

    《Redis 设计与实现》[http://redisbook.com/index.html]《Redis 设计与实...

  • Redis客户端

    《Redis 设计与实现》[http://redisbook.com/index.html]《Redis 设计与实...

  • Redis 服务器

    《Redis 设计与实现》[http://redisbook.com/index.html]《Redis 设计与实...

网友评论

      本文标题:《Redis设计与实现》读书笔记

      本文链接:https://www.haomeiwen.com/subject/myvsthtx.html