python写轻量版redis

Litedis

Litedis 是一个轻量的、本地的、开箱即用的 NoSQL,实现了简单的 Redis 功能。可以是用在简单的项目和本地开发替代.

持久化

1
2
3
4
from litedis import Litedis

# 设置数据库名称
redis = Litedis(dbname="litedis",persistence_on=True,data_path='/tmp/')

相关API

String

1
2
3
4
5
6
7
# set and get
redis.set("db", "litedis")
assert redis.get("db") == "litedis"

# delete
redis.delete("db")
assert redis.get("db") is None

List

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
# lpush  
redis.lpush("list", "a", "b", "c")
assert redis.lrange("list", 0, -1) == ["c", "b", "a"]
redis.delete("list")

# rpush
redis.rpush("list", "a", "b", "c")
assert redis.lrange("list", 0, -1) == ["a", "b", "c"]
redis.delete("list")

# lpop
redis.lpush("list", "a", "b")
assert redis.lpop("list") == "b"
assert redis.lpop("list") == "a"
assert redis.lrange("list", 0, -1) == []
assert not redis.exists("list") # 当所有元素被弹出后,相应的 List键 会自动删除

Hash

1
2
3
4
5
6
7
# hset
redis.hset("hash", {"key1": "value1", "key2": "value2"})
assert redis.hget("hash", "key1") == "value1"

# hkeys and hvals
assert redis.hkeys("hash") == ["key1", "key2"]
assert redis.hvals("hash") == ["value1", "value2"]

Set

1
2
3
4
5
6
7
8
# sadd
redis.sadd("set", "a")

assert redis.spop("set") == 'a'

redis.sadd("set", "b", "c", "d", "a")

assert redis.sismember("set", "a") == True

Zset

1
2
3
4
5
6
7
8
9
10
11
12
# zadd  
litedis.zadd("zset", {"a": 1, "b": 2, "c": 3})
assert litedis.zscore("zset", "a") == 1

# zrange
assert litedis.zrange("zset", 0, -1) == ["a", "b", "c"]

# zcard
assert litedis.zcard("zset") == 3

# zscore
assert litedis.zscore("zset", "a") == 1

python写轻量版redis
https://kingjem.github.io/2026/01/19/python写轻量版redis/
作者
Ruhai
发布于
2026年1月19日
许可协议