【Rust日报】2024-03-06 Rust 版本的 PickleDB

Rust 版本的 PickleDB

PickleDB 是一个用 Rust 编写的轻量级且简单的键值存储,很大程度上受到 Python PickleDB 的启发。PickleDB 有趣且易于使用

PickleDB 使用

use pickledb::{PickleDb, PickleDbDumpPolicy, SerializationMethod};

fn main() {

    // create a new DB with AutoDump (meaning every change is written to the file)
    // and with Json serialization (meaning DB will be dumped to file as a Json object)
    let mut db = PickleDb::new("example.db", PickleDbDumpPolicy::AutoDump, SerializationMethod::Json);

    // set the value 100 to the key 'key1'
    db.set("key1", &100).unwrap();

    // print the value of key1
    println!("The value of key1 is: {}", db.get::<i32>("key1").unwrap());

    // load the DB from the same file
    let db2 = PickleDb::load("example.db", PickleDbDumpPolicy::DumpUponRequest, SerializationMethod::Json).unwrap();

    // print the value of key1
    println!("The value of key1 as loaded from file is: {}", db2.get::<i32>("key1").unwrap());
}

安装

[dependencies]
pickledb = "0.5.1"

例子

目前 PickleDB 附带了两个示例:

  • Hello World,展示了 PickleDB 的基本用法:创建新的数据库、从文件加载数据库、获取/设置不同类型的键值对等等;

  • List展示了如何在 PickleDB 中使用列表:创建新列表、从列表中添加/删除项目、从列表中检索项目、删除列表等。


  • https://github.com/seladb/pickledb-rs

使用 Tokio 实现不完整的 Redis 客户端和服务器(仅用于学习目的)

mini-redis是使用Tokio构建的Redis客户端和服务器 的不完整、惯用的实现。该项目的目的是提供编写 Tokio 应用程序的更大示例。

  • 免责声明请不要在生产中使用 mini-redis。该项目旨在成为一个学习资源,并省略了 Redis 协议的各个部分,因为实现它们不会引入任何新概念。我们不会添加新功能,因为您的项目需要它们 - 请使用功能齐全的替代方案之一。

为什么选择 Redis

该项目的主要目标是教授 Tokio。要做到这一点,需要一个具有广泛功能的项目,并注重实现的简单性。Redis 是一种内存数据库,提供广泛的功能并使用简单的有线协议。广泛的功能允许在“现实世界”环境中演示许多 Tokio 模式。

  • Redis 有线协议文档可以在此处找到;

  • Redis 提供的命令集可以 在此处找到。


运行

该存储库提供服务器、客户端库和一些用于与服务器交互的客户端可执行文件。

启动服务器:

RUST_LOG=debug cargo run --bin mini-redis-server

该 tracing crate 用于提供结构化日志。您可以替换debug为所需的日志级别。然后,在不同的终端窗口中,可以执行各种客户端示例。例如:

cargo run --example hello_world

此外,还提供 CLI 客户端来从终端运行任意命令。服务器运行时,将进行以下工作:

cargo run --bin mini-redis-cli set foo bar
cargo run --bin mini-redis-cli get foo

mini-redis 目前支持的命令

  • PING

  • GET

  • SET

  • PUBLISH

  • SUBSCRIBE


  • https://github.com/tokio-rs/mini-redis


From 日报小组 侯盛鑫

社区学习交流平台订阅:

  • Rustcc论坛: 支持rss

  • 微信公众号:Rust语言中文社区

  • 8
    点赞
  • 8
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值