| Crates.io | derive-redis-swapplex |
| lib.rs | derive-redis-swapplex |
| version | 0.13.0 |
| created_at | 2022-09-12 01:56:33.31277+00 |
| updated_at | 2024-11-16 07:40:29.534155+00 |
| description | Derives for redis-swapplex |
| homepage | |
| repository | https://github.com/Bajix/redis-swapplex/ |
| max_upload_size | |
| id | 663317 |
| size | 5,404 |
Redis multiplexing with reconnection notifications and MGET auto-batching
Why use this instead of redis::aio::ConnectionManager?
Composible connection urls are provided by environment variables using env-url with the REDIS prefix:
REDIS_URL=redis://127.0.0.1:6379
# Override env mapping for easy kubernetes config
REDIS_HOST_ENV=MONOLITH_STAGE_REDIS_MASTER_PORT_6379_TCP_ADDR
REDIS_PORT_ENV=MONOLITH_STAGE_REDIS_MASTER_SERVICE_PORT_REDIS
use redis::{AsyncCommands, RedisResult};
use redis_swapplex::get_connection;
async fn get_value(key: &str) -> RedisResult<String> {
let mut conn = get_connection();
conn.get(key).await
}
For best performance, use the Tokio runtime as configured via the tokio::main or tokio::test macro with the crate attribute set to async_local while the barrier-protected-runtime feature is enabled on async-local. Doing so configures the Tokio runtime with a barrier that rendezvous runtime worker threads during shutdown in a way that ensures tasks never outlive thread local data owned by runtime worker threads and obviates the need for Box::leak as a means of lifetime extension.