Skip to content

Rust (Core)

Redlite is written in Rust. You can use it directly as a Rust crate.

Add to your Cargo.toml:

[dependencies]
redlite = "0.1"
use redlite::Db;
fn main() -> Result<(), Box<dyn std::error::Error>> {
// Open in-memory database
let db = Db::open_memory()?;
// Or file-based
let db = Db::open("/path/to/db.db")?;
// String operations
db.set("key", b"value")?;
let val = db.get("key")?;
println!("{}", String::from_utf8_lossy(&val.unwrap()));
// Hash operations
db.hset("user:1", "name", b"Alice")?;
db.hset("user:1", "age", b"30")?;
let user = db.hgetall("user:1")?;
// List operations
db.lpush("queue", &[b"job1", b"job2"])?;
let job = db.rpop("queue")?;
// Set operations
db.sadd("tags", &[b"redis", b"sqlite"])?;
let members = db.smembers("tags")?;
// Sorted sets
db.zadd("scores", &[(100.0, b"player1"), (85.0, b"player2")])?;
let top = db.zrevrange("scores", 0, 9)?;
Ok(())
}

Enable optional features in Cargo.toml:

[dependencies]
redlite = { version = "0.1", features = ["server", "fts", "vector"] }
  • server - TCP server mode (Redis protocol)
  • fts - Full-text search
  • vector - Vector similarity search
  • geo - Geospatial operations

Strings: set, get, incr, decr, append, mget, mset

Keys: del, exists, key_type, ttl, expire, keys

Hashes: hset, hget, hdel, hgetall, hmget

Lists: lpush, rpush, lpop, rpop, llen, lrange

Sets: sadd, srem, smembers, sismember, scard

Sorted Sets: zadd, zrem, zscore, zrange, zrevrange

Terminal window
cd crates/redlite
cargo test