5个版本
0.1.4 | 2023年4月21日 |
---|---|
0.1.3 | 2022年2月21日 |
0.1.2 | 2022年2月21日 |
0.1.1 | 2022年2月18日 |
0.1.0 | 2022年2月5日 |
1147 在 数据库接口
292 每月下载量
在 4 crates 中使用
13KB
203 代码行
redis_kiss
注意:现在这也暴露了对Redis连接池的访问。
这是一个非常简单的库,仅用于消费和产生Redis PubSub的消息,它几乎不遵循“良好的编程实践”,但它确实可以工作并简化所需的工作。
该库管理一个全局的Redis连接池,并动态创建监听连接(由于一些技术限制)。
示例
向Redis发布内容
// Handle the Result<_, _>
redis_kiss::publish("channel", "data").await?;
// Log the error instead
redis_kiss::p("channel", "data").await;
订阅Redis(如通常情况,请参阅Redis文档以获取更多信息)
// Create a new PubSub connection
let mut conn = redis_kiss::open_pubsub_connection().await?;
// Subscribe to something
conn.subscribe("test").await?;
// Handle incoming messages
let mut stream = conn.on_message();
while let Some(item) = stream.next().await {
// Use Redis crate API as usual
let channel = item.get_channel_name().to_string();
// Decode the message using previously specified options
// into a certain DeserializeOwned data type T, in this case String
let payload: String = redis_kiss::decode_payload(&item).await?;
// You can also choose a specific type on the fly
use redis_kiss::PayloadType;
let payload: String = redis_kiss::decode_payload(&item, &PayloadType::Msgpack).await?;
// Do something with channel and payload
}
环境变量
该库通过环境提供选项。
名称 | 描述 | 默认 |
---|---|---|
REDIS_URI |
Redis服务器的URI | redis://localhost |
REDIS_POOL_MAX_OPEN |
Redis池中连接的最大数量(用于发布数据) | 1000 |
REDIS_PAYLOAD_TYPE |
发布数据到Redis时使用的数据类型,可以是json 、msgpack 或bincode |
json |
REDIS_KISS_LENIENT |
是否尝试在无法使用所选类型反序列化时自动解码其他负载类型 | 1 |
依赖项
~9–21MB
~321K SLoC