鉴于上次帖子,有很多同学提出想要对比一下 tokio 的mini-redis的性能(毕竟 tokio 在 rust 界就如高山一样让我们仰望)。我马不停蹄的开始拉镜像做对比,发现 mini-redis 在多线程下 QPS 居然是原生 redis 的两倍。我拜读了一下 mini-redis 的源码,发现流程非常之简洁。因此把 rcache 重构了一把,终于达到了 mini-redis 的水准。
https://github.com/lsk569937453/rcache/tree/mutex
性能对比(4 核心 8Gb 内存)
总共做了三组对比实验:
rcache 基于 mini-redis 的实现,性能等于 mini-redis 。相比原生的 redis ,单线程吞吐量是 redis 的 90%,多线程的吞吐量是原生的 redis 的两倍。
参考 mini-redis,直接用 Mutex 对全局的数据加锁,全局的 struct 内部其实就是用多个 HashMap 来存储 string,list,hash 以及过期 map 等数据结构。没想到效果出奇的好。
这是一个专为移动设备优化的页面(即为了让你能够在 Google 搜索结果里秒开这个页面),如果你希望参与 V2EX 社区的讨论,你可以继续到 V2EX 上打开本讨论主题的完整版本。
V2EX 是创意工作者们的社区,是一个分享自己正在做的有趣事物、交流想法,可以遇见新朋友甚至新机会的地方。
V2EX is a community of developers, designers and creative people.