2个稳定版本
4.2.0 | 2023年1月31日 |
---|---|
4.1.0 | 2022年3月28日 |
#1772 在 数据库接口
39 每月下载量
在嵌入式Redis中使用
325KB
9K SLoC
分支
注意: 此分支仅为以下上游PR专门创建:https://github.com/aembke/redis-protocol.rs/pull/21
一旦上游PR合并并发布,此crate将被删除!
lib.rs
:
Redis协议
示例
use redis_protocol::resp2::prelude::*;
use bytes::{Bytes, BytesMut};
fn main() {
let frame = Frame::BulkString("foobar".into());
let mut buf = BytesMut::new();
let len = match encode_bytes(&mut buf, &frame) {
Ok(l) => l,
Err(e) => panic!("Error encoding frame: {:?}", e)
};
println!("Encoded {} bytes into buffer with contents {:?}", len, buf);
let buf: Bytes = "*3\r\n$3\r\nFoo\r\n$-1\r\n$3\r\nBar\r\n".into();
let (frame, consumed) = match decode(&buf) {
Ok(Some((f, c))) => (f, c),
Ok(None) => panic!("Incomplete frame."),
Err(e) => panic!("Error parsing bytes: {:?}", e)
};
println!("Parsed frame {:?} and consumed {} bytes", frame, consumed);
let key = "foobarbaz";
println!("Hash slot for {}: {}", key, redis_keyslot(key.as_bytes()));
}
注意:如果调用者未使用index-map
特性,则在这些文档中将任何IndexMap
类型替换为std::collections::HashMap
。由于rustdoc
没有很好的方式来根据特性标志显示类型替换。
依赖项
~1.3–2.2MB
~39K SLoC