──────────────────────────────────── 推荐一个 零声学院 免费公开课,个人觉得老师讲得好,和大家分享:[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 ────────────────────────────────────
Redis相关命令的详细说明及其原理
- 一、rocksdb是什么?
- 二、rocksdb解决了哪些问题?
- 三、如何解决?
- 总结
一、rocksdb是什么?
嵌入式kv间接操作数据库。 既可以支持kv还可以支持文档数据库。 分布式三驾马车:GFS分布式文件存储,BigTable kv存储,MapReduce大数据处理。
主要数据在sst文件中。 看接口,应该对rocksdb什么有一个大概的认识。
二、rocksdb解决了哪些问题?
Mysql innodb B 树解决了读多写少的问题,rocksdb采用LSM-Tree它主要解决了写多读少的问题,牺牲了加速写作的性能。 合并冗余数据以提高性能。
- 分段存储
- 数据缓存 缓存热点数据
- 定时器场景数据量大的时候,跳表会比红黑好,数据量小的红黑树好。
- nginx slab红黑树用于共享内存技术,跳表不能使用。由于内存大小的第一步分配,跳表是一种改变时间的空间结构,数据冗余较多。
三、如何解决?
多比较学习技术。 redolog wal写前日志,换句话说先写日志再放内存最后异步刷盘。 我们可以环节,我们可以先落盘只读,进一步提高并发性能。 这让人想起了时间轮,根据数据的冷热程度,将事件分为优先级和优先级。 ## lsm-tree 三个问题
- 读放大
- 空间放大
- 写放大 并发合并多线程。
总结
通过今天的学习,我只能说我有了初步的了解rocksdb,一个强大的数据库。真的只能说懂皮毛,连皮毛都不算。但是今天收货最大的一句话就是mark老师说学技术要比较。 我觉得时间真的是一件非常神奇的事情。我不再是那个追风的男孩了。我跟不上时代的步伐已经成定局。我现在应该面对的选择是继续在技术的道路上拼命追赶,还是抱着妻子哄孩子!