2 个版本
0.1.102 | 2019年9月25日 |
---|---|
0.1.101 | 2019年9月24日 |
#2485 在 数据库接口
8MB
460 行
ZEDIS
基于 zeromq 和 seld 的轻量级 Redis 替代品。<90 LOC,专注于可移植的跨语言简单存储系统。无需运行完整服务。
安装
推荐安装
这将始终为您电脑获取并构建最新的 zedis 版本。如果您没有 cargo,请访问 https://www.rust-lang.net.cn/tools/install
cargo install zedis
不再支持 apt
和 homebrew
,更新位置太多。
运行 👍
zedis
# _______ ___ ___ ___
# |_ / __| \_ _/ __|
# / /| _|| |) | |\__ \
# /___|___|___/___|___/
#
ZEDIS 有其特定的观点和限制。使用 ZEDIS,您只能读取和写入键值对。所有写入都会覆盖过去的值。
真正的快速读取 < 250µs
,对于 ~2 MB
json 有效负载。
相当快速的写入 < 18ms
,对于 ~2 MB
json 有效负载。
设置端口
现在您可以为 zedis 可用的端口/套接字设置。如果没有指定端口,zedis 将回退到 5555
zedis 6677
与 CLI 应用交互
命令
获取值
GET key
返回键的字符串值。如果键不存在,则返回 b'Error occurred: InvalidKey'
设置值
SET key value
插入键值。如果键已存在,则值将被覆盖。
删除值
DEL key
从 zedis 中删除键及其值。这将返回键的最后一个已知值。
显示键
KEYS
此函数返回所有键的JSON格式列表。这效率低下,它会遍历整个数据库并将键名拼接在一起。如果想要立即得到结果,且键的数量超过1000个,请不要使用此功能。
查询
PRE keyprefix
返回具有该前缀的所有键。例如,“A”将返回“Alpha”、“Awesome”... 这是区分大小写的。
Python3客户端示例
import zmq
import json
port = "5555"
context = zmq.Context()
socket = context.socket(zmq.REQ)
socket.connect("tcp://localhost:%s" % port)
socket.send_string("SET david richard blyn holtz");socket.recv()
# 'done.'
socket._string("GET david");socket.recv()
# 'richard blyn holtz'
jsonblob = json.dumps({"example": "you can store seralized JSON"})
socket.send_string("SET js "+jsonblob);socket.recv()
# 'done.'
socket.send_string("GET js")
json.loads(socket.recv())
# {u'exmple': u'lorem ipsum...'}
socket.send_string("DEL js");socket.recv();socket.recv()
# b'2 yo yo'
## ADDING A BUNCH OF KEYS
for x in range(0, 100):
socket.send_string("SET "+str(x)+" "+str(x)+" yo yo")
socket.recv()
socket.send_string("PRE 1");socket.recv()
# b'["1", "10", "11", "12", "13", "14", "15", "16", "17", "18", "19"]'
socket.send_string("KEYS");socket.recv()
# b'["0", "1", "10", "11", "12", "13", "14", "15", "16", "17", "18", "19", "20", "21", "22"]'
检查是否存活
nc -v -z -w 5 localhost 5555
# found 0 associations
# found 1 connections:
# 1: flags=82<CONNECTED,PREFERRED>
# outif lo0
# src 127.0.0.1 port 52227
# dst 127.0.0.1 port 5555
# rank info not available
# TCP aux info available
# Connection to localhost port 5555 [tcp/personal-agent] succeeded!
🦀 01010
开发者相关内容
构建
克隆、构建并添加符号链接,以便在命令行中访问 zedis
git clone https://github.com/drbh/zedis.git && cd zedis
cargo build --release && sh install.sh
打包
fpm -f -s dir -t deb -n zedis target/release/zedis=/usr/local/
依赖项
~53MB
~724K SLoC