Mneme โ distributed in-memory cache built in Rust. Sub-millisecond reads, QUORUM writes, TLS 1.3 everywhere.
๐ mnemelabs.ioโ ยท ๐ฆ GitHubโ ยท ๐ Docsโ
The Core node (Mnemosyne) โ pure RAM hot pool + CLI:
mneme-core โ Core server (client port 6379, replication port 7379, metrics 9090)mneme-cli โ Management CLI (included for exec access)/etc/mneme/ca.crt for zero-config CLI accessdocker run -d \
--name mneme \
-p 6379:6379 \
-e MNEME_ADMIN_PASSWORD=secret \
-v mneme-data:/var/lib/mneme \
mnemelabs/core:0.1.0
Connect:
docker exec mneme mneme-cli -u admin -p secret ping
# PONG
docker exec mneme mneme-cli -u admin -p secret set hello world
docker exec mneme mneme-cli -u admin -p secret get hello
# world
services:
mneme:
image: mnemelabs/core:0.1.0
container_name: mneme-solo
entrypoint: ["/bin/bash", "/docker/entrypoint-solo.sh"]
user: root
environment:
MNEME_ADMIN_PASSWORD: secret
MNEME_POOL_BYTES: 512mb
ports:
- "6379:6379"
- "9090:9090"
volumes:
- mneme-data:/var/lib/mneme
restart: unless-stopped
volumes:
mneme-data:
services:
mneme-core:
image: mnemelabs/core:0.1.0
container_name: mneme-core
entrypoint: ["/bin/bash", "/docker/entrypoint-core.sh"]
user: root
environment:
MNEME_ADMIN_PASSWORD: secret
MNEME_CLUSTER_SECRET: change-me-in-production
MNEME_POOL_BYTES: 2gb
ports:
- "6379:6379"
- "7379:7379"
- "9090:9090"
volumes:
- core-certs:/var/lib/mneme
restart: unless-stopped
mneme-keeper-1:
image: mnemelabs/keeper:0.1.0
container_name: mneme-keeper-1
entrypoint: ["/bin/bash", "/docker/entrypoint-keeper.sh"]
user: root
environment:
MNEME_CLUSTER_SECRET: change-me-in-production
MNEME_CORE_ADDR: mneme-core:7379
MNEME_KEEPER_ID: keeper-1
volumes:
- keeper1-data:/var/lib/mneme
depends_on:
- mneme-core
restart: unless-stopped
mneme-keeper-2:
image: mnemelabs/keeper:0.1.0
container_name: mneme-keeper-2
entrypoint: ["/bin/bash", "/docker/entrypoint-keeper.sh"]
user: root
environment:
MNEME_CLUSTER_SECRET: change-me-in-production
MNEME_CORE_ADDR: mneme-core:7379
MNEME_KEEPER_ID: keeper-2
volumes:
- keeper2-data:/var/lib/mneme
depends_on:
- mneme-core
restart: unless-stopped
volumes:
core-certs:
keeper1-data:
keeper2-data:
| Variable | Default | Description |
|---|---|---|
MNEME_ADMIN_PASSWORD | secret | Admin user password โ change in production |
MNEME_CLUSTER_SECRET | โ | Shared secret for Keeper join auth (cluster mode) |
MNEME_POOL_BYTES | 512mb | Hot RAM pool size (512mb, 2gb, 8gb, โฆ) |
MNEME_LOG_LEVEL | info | Log verbosity: trace / debug / info / warn / error |
MNEME_NODE_ID | hostname | Raft / cluster node identifier |
| Port | Protocol | Purpose |
|---|---|---|
6379 | TLS 1.3 | Client connections |
7379 | mTLS | Keeper + Raft replication |
9090 | HTTP | Prometheus metrics (/metrics) |
| Mode | Images needed | Use case |
|---|---|---|
| Solo | core only | Dev, CI, latency benchmarks |
| Cluster | core + keeper ร N | Single-server production, full durability |
| HA | core ร 3 + keeper ร N | Multi-node, automatic failover (Raft) |
| Read replicas | any + core (replica mode) | Read scale-out, analytics |
See the full docker-compose.ymlโ for ready-to-use profiles.
| Level | Behaviour | Latency |
|---|---|---|
EVENTUAL | Fire-and-forget write, any replica for reads | ~150 ยตs |
ONE | First Keeper ACK | fastest durable |
QUORUM | โN/2โ+1 Keeper ACKs (default) | ~800 ยตs |
ALL | Every Keeper ACK | maximum durability |
MIT โ ยฉ 2024 Mneme Labs
Content type
Image
Digest
sha256:3f1b4e6d9โฆ
Size
40.4 MB
Last updated
6 months ago
docker pull mnemelabs/core