【Redis 核心技术与实战】01 | 基本架构:一个键值数据库包含什么?

建立“系统观”,对总体架构和关键模块有一个全局的认知。然后再深入具体技术点。

笔记:

  1. Redis 能够在实际业务中得到广泛的应用,得益于支持多样化类型的 value;
  2. 常见操作 PUT、GET、DELETE;SCAN 获取一段 key 的范围值
  3. 存在内存,一般 百 ns 访问级别,风险:掉电数据丢失;
  4. 存在外存,避免数据丢失,受限慢速读写 ms 级别;

设计 SimpleKV

一个简直数据库包括:访问框架、索引模块、操作模块、存储模块;
在这里插入图片描述

采用什么访问方式?

  1. 动态库访问 libsimplekv.so
  2. Socket Server + 请求解析(Redis / Memcached 都是这种)
  3. 衍生问题 I/O 模型设计,不同的设计对性能和可扩展性有影响
  4. 单线程问题:阻塞
  5. 多线程问题:共享资源竞争
  6. Reis 单线程,高性能

如何定位键值对的位置?

索引的作用是让键值数据库根据 key 找到对应 value 的存储位置,进而执行操作。

Redis 和 Memcached 都是使用哈希表[O(1)]作为索引的。

不同操作的具体逻辑是怎样的?

  • 对于 GET/SCAN 直接返回 value;
  • 对于 PUT 为其分配新的内存空间;
  • 对于 DELETE 删除并释放内存空间(内存分配器完成)

重启后快速提供服务?

方案一:对每一个键值都罗盘,可靠但性能受损
方案二:周期性内存刷盘,性能保障但数据安全有风险

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值