> 文档中心 > 2022年5月7日记:Linux服务器开发,Mark老师,Redis相关命令详解及其原理

2022年5月7日记:Linux服务器开发,Mark老师,Redis相关命令详解及其原理

────────────────────────────────────
推荐一个 零声学院 免费公开课程,个人觉得老师讲得不错,分享给大家:[Linux,Nginx,ZeroMQ,MySQL,Redis,fastdfs,MongoDB,ZK,流媒体,CDN,P2P,K8S,Docker,TCP/IP,协程,DPDK等技术内容,立即学习]
后台服务器:https://course.0voice.com/v1/course/intro?courseId=5&agentId=0
────────────────────────────────────

这里写目录标题

  • 一、rocksdb是什么?
  • 二、rocksdb解决了什么问题?
  • 三、如何解决的?
  • 总结

一、rocksdb是什么?

一个嵌入式的kv数据库,间接的操作。
既可以支持kv数据库,也可以支持文档型数据库。
分布式三驾马车:GFS分布式文件存储,BigTable kv存储,MapReduce大数据处理。

2022年5月7日记:Linux服务器开发,Mark老师,Redis相关命令详解及其原理
主要数据就在sst文件中。
2022年5月7日记:Linux服务器开发,Mark老师,Redis相关命令详解及其原理
通过看接口,应该对rocksdb是什么有了一个大概的认识。

二、rocksdb解决了什么问题?

Mysql innodb B+树解决了读多写少的问题,rocksdb采用LSM-Tree主要解决了写多读少的问题,牺牲读的性能加速写的性能。
为了提升性能,要把冗余数据进行合并。

  • 分段存储
  • 数据缓存 热点数据缓存
    2022年5月7日记:Linux服务器开发,Mark老师,Redis相关命令详解及其原理
    2022年5月7日记:Linux服务器开发,Mark老师,Redis相关命令详解及其原理
  • 定时器场景数据量大时候跳表会比红黑色优秀,数据量小红黑树优秀。
  • nginx slab共享内存技术使用红黑树,不能使用跳表。因为第一步分配内存大小,跳表是一个空间换时间的结构,数据冗余比较多。

三、如何解决的?

学习技术要多比较。
2022年5月7日记:Linux服务器开发,Mark老师,Redis相关命令详解及其原理
redolog wal写前日志,换句话说先写日志再放内存最后异步刷盘。
通过只读环节我们就可以先落盘只读,进一步提升并发性能。
这让人联想到了曾经讲过的时间轮,将事件分为轻重缓急,根据数据的冷热程度进行分层。
2022年5月7日记:Linux服务器开发,Mark老师,Redis相关命令详解及其原理
## lsm-tree 三个问题

  • 读放大
  • 空间放大
  • 写放大

总结

通过今天的学习,我只能说初步的认识了rocksdb,一款强大的数据库。真的只能说听懂个皮毛,甚至连皮毛都不算。不过今天收货最大的一句话就是mark老师说的学技术要去比较。
感觉时间真的是一个很神奇的东西,自己早已不再是那个追风少年,跟不上时代的步伐已成定局。是继续在技术的道路上拼命追赶,还是抱着老婆哄孩子真的是我现在应该面临的选择啊!