Kvrocks 在 RocksDB 上的优化实践
不久前 Kvrocks 发布 2.0.5 版本,该版本不仅增加了许多新功能,还使用了RocksDB 的新特性大大提升了性能。本文将重点介绍 Kvrocks 是如何使用这些特性来提升磁盘类型 Redis 服务的性能,希望能给大家带来一些参考。 背景 在介绍性能优化之前,首先简单介绍一下 Kvrocks 是如何与 RocksDB 交互的。从实现上来看,Kvrocks 会将 Redis 数据类型编码成 Key-Value 数据写入 RocksDB 的不同 Column Family (以下简称 CF)中。 目前主要有以下几种 CF: Metadata CF:主要存储 String 类型的数据,以及 Hash/Set/List 这些复杂类型的元数据 (长度,过期时间等),不存储具体元素内容 Subkey CF:存储复杂类型元素内容 ZSetScore CF:存储 ZSet Score 信息 Pub/Sub CF:Pub/Sub 相关信息 Propagated CF: 作为主从同步和存放数据之外的内容,比如 Lua 脚本 此外,Kvrocks还利用 RocksDB 的原生 WAL日志实现主从同步...





