14 个版本

0.4.2 2020 年 1 月 28 日
0.4.1 2018 年 12 月 19 日
0.4.0 2018 年 11 月 15 日
0.3.0 2018 年 7 月 13 日
0.0.4 2015 年 3 月 26 日

#143 in 缓存

Download history 457/week @ 2023-12-11 447/week @ 2023-12-18 270/week @ 2023-12-25 496/week @ 2024-01-01 222/week @ 2024-01-08 186/week @ 2024-01-15 148/week @ 2024-01-22 139/week @ 2024-01-29 159/week @ 2024-02-05 226/week @ 2024-02-12 161/week @ 2024-02-19 186/week @ 2024-02-26 127/week @ 2024-03-04 189/week @ 2024-03-11 210/week @ 2024-03-18 166/week @ 2024-03-25

每月下载量 700
用于 aries

MIT/Apache 协议

135KB
3.5K SLoC

memcached-rs

Build Status crates.io dependency status

Rust 的 Memcached 库

用法

use std::collections::TreeMap;

use memcached::Client;
use memcached::proto::{Operation, MultiOperation, NoReplyOperation, CasOperation, ProtoType};

fn main() {
    let servers = [
        ("tcp://127.0.0.1:11211", 1),
    ];
    let mut client = Client::connect(&servers, ProtoType::Binary).unwrap();

    client.set(b"Foo", b"Bar", 0xdeadbeef, 2).unwrap();
    let (value, flags) = client.get(b"Foo").unwrap();
    assert_eq!(value.as_slice(), b"Bar");
    assert_eq!(flags, 0xdeadbeef);

    client.set_noreply(b"key:dontreply", b"1", 0x00000001, 20).unwrap();

    let (_, cas_val) = client.increment_cas(b"key:numerical", 10, 1, 20, 0).unwrap();
    client.increment_cas(b"key:numerical", 1, 1, 20, cas_val).unwrap();
}

运行 cargo doc --open 获取更多详情。

SASL 认证

TCP 连接支持 PLAIN SASL 认证

use memcached::proto::{Operation, ProtoType};
use memcached::Client;

fn main() {
    let servers = [
        ("tcp://my-sasl-memcached-server.com:11211", 1)
    ];
    let mut client = Client::connect_sasl(&servers, ProtoType::Binary, "my-username", "my-password").unwrap();

    client.set(b"Foo", b"Bar", 0xdeadbeef, 2).unwrap();
    let (value, flags) = client.get(b"Foo").unwrap();
    assert_eq!(&value[..], b"Bar");
    assert_eq!(flags, 0xdeadbeef);
}

待办事项

  • 自动禁用失败的服务器

许可证

许可协议为以下之一

任选其一。

贡献

除非您明确声明,否则根据 Apache-2.0 许可证定义,您提交的任何有意包含在作品中的贡献将按上述方式双许可,不附加任何额外条款或条件。

依赖关系

~1MB
~20K SLoC