3个稳定版本

1.0.4 2023年2月6日
1.0.3 2023年1月27日

数据库接口 中排名 #2747

MIT 许可证

16KB
337

keyz

使用rust和tokio实现的简单异步键值存储

命令行界面和客户端

运行

  • 端口号始终为 - 7667

使用cargo在本地运行

  1. cargoinstall keyz
  2. keyz
  3. 如果您收到命令未找到的错误,则需要将cargo bin添加到PATH

使用Docker镜像运行

  1. docker pull zvado1/keyz
  2. sudodocker run --networkhost -dkeyz

支持的命令

  • SET [key] [value]
    • 设置键和值
  • SET [key] [value] EX [seconds]
    • 设置键和值,但带有秒数作为过期时间
  • GET [key]
    • 获取给定键设置的值
  • EXIN [key]
    • 返回键将过期的秒数
  • DEL [key]
    • 删除键和值
  • CLOSE
    • 关闭连接

使用命令的示例

  • SETtext some text blah

    • 将设置text键,值为some text blah
  • SETuser:1 { "username": "testUsername", "password": "hashedandsecrurepass" }

    • 再次,我们将设置键user:1,值{ "username": "testUsername", "password": "hashedandsecrurepass" }
    • 这次我们使用了键user:1,因为您的应用程序中可能有多个用户
  • SETuser:1 { "username": "testUsername", "password": "hashedandsecrurepass" } EX 60

    • 与之前完全相同,但这次我们在末尾添加了EX 60,因此user:1键将在60秒后过期
  • GETuser:1

    • 将给出user:1键的值
    • 然而,如果键已过期,它将返回null
  • EXINuser:1

    • 将返回键在过期前剩余的秒数
    • 如果已过期,将返回 null
    • 如果键没有设置过期时间,将返回 null
  • DELuser:1

    • 将尝试删除键 user:1
    • 如果已删除,将返回被删除的键名,在这种情况下将返回 user:1
    • 如果键不存在,将返回 null

    功能

    除了基本的 SET GET DEL 以外的功能

    • 键过期
    • 显示键过期前剩余时间的命令(以秒为单位)
    • 从配置文件中读取设置
    • 密码保护
    • 持久性
    • 监控
    • 数据压缩
    • 数据分区
    • 统计信息,如连接客户端数量、键数量、存储使用量

依赖项

~5–12MB
~116K SLoC