2 个版本
使用旧的 Rust 2015
0.1.1 | 2017 年 8 月 1 日 |
---|---|
0.1.0 | 2017 年 8 月 1 日 |
在 #memcached 中排名 #26
41KB
962 行
请参阅 docs.rs 上的文档: https://docs.rs/rcache/0.1.0/rcache/
lib.rs
:
rcache
rcache
是一个基本的、无功能的内存缓存,具有类似于 memcached 的 TCP 前端。它不是生产就绪的,并且它可能永远不会是。尽管如此,它的性能相对较好,且稳定,是 Rust 开发者可以实现的一个很好的例子。
待办事项包括更好的基准测试、更强大的客户端(针对 Rust 和命令行)、对更完整命令集的支持,以及改进二进制协议以至少包括 CRC 校验。
功能
- 基于
tokio
- 该 TCP 前端使用多路复用二进制协议,详细(质量不佳)地记录在 src/codec.rs 中。
- 目前支持 GET、SET 和 DEL 命令。CAS 明显缺失,但最终会加入。
- 存储由基于链接散列表的 LRU 缓存提供支持(由 lru-cache crate 提供),所有操作都通过单个工作线程执行,该工作线程对存储有非同步访问。
使用方法
启动服务器: cargo run -- 127.0.0.1:12345 server
设置键: cargo run -- 127.0.0.1:12345 client SET foo bar
获取键: cargo run -- 127.0.0.1:12345 client GET foo
获取统计信息: cargo run -- 127.0.0.1:12345 client STATS
性能
我目前正在提供现实世界的基准测试。简单的基准测试显示,rcache可以在缓存中处理约50k/req/s的请求,同时缓存中有2,000,000个键。这次基准测试使用了100个并发客户端,每个客户端发出500个请求。然而,我对我的基准测试方法中的许多问题没有疑问。即便如此,一个周末的实施方案能够达到与memcached相同的水平,这还是很令人欣慰的。
依赖关系
~8.5MB
~134K SLoC