Skip to main content

Litedis 是一个类似 Redis 的轻量级的、本地的、开箱即用的 NoSQL 数据库。Litedis is a lightweight, local, out-of-the-box NoSQL database similar to Redis.

Project description

其他语言版本:

Litedis

Litedis 是一个类似 Redis 的轻量级的本地的 NoSQL 数据库,使用 Python 实现,支持基本的数据结构和操作。 和 Redis 最大的不同是,Litedis 开箱即用,无需另开服务器进程。

特性

  • 实现了基础数据结构及相关操作:
    • STING
    • LIST
    • HASH
    • SET
    • ZSET
  • 支持设置过期时间
  • 支持 AOF 持久化

安装和支持版本

  • 使用 pip 安装
pip install litedis
  • 支持的 Python 版本

    支持 Python3.8+

使用示例

持久化和数据库设置

  • Litedis 是默认开启持久化的,可以通过参数进行相关设置。
  • Litedis 可以将数据存储到不同的数据库下,可以通过 dbname 参数设置
from litedis import Litedis

# 关闭持久化
litedis = Litedis(persistence_on=False)

# 设置持久化路径
litedis = Litedis(data_path="path")

# 设置数据库名称
litedis = Litedis(dbname="litedis")

STRING 的使用

import time

from litedis import Litedis

litedis = Litedis()

# set and get
litedis.set("db", "litedis")
assert litedis.get("db") == "litedis"

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

# expiration
litedis.set("db", "litedis", px=100)  # 100毫秒后过期
assert litedis.get("db") == "litedis"
time.sleep(0.11)
assert litedis.get("db") is None

LIST 的使用

from litedis import Litedis

litedis = Litedis()

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

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

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

Hash 的使用

from litedis import Litedis

litedis = Litedis()
litedis.delete("hash")

# hset
litedis.hset("hash", {"key1":"value1", "key2":"value2"})
assert litedis.hget("hash", "key1") == "value1"

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

SET 的使用

from litedis import Litedis

litedis = Litedis()
litedis.delete("set", "set1", "set2")

# sadd
litedis.sadd("set", "a")
litedis.sadd("set", "b", "c")
members = litedis.smembers("set")
assert set(members) == {"a", "b", "c"}

litedis.sadd("set1", "a", "b", "c")
litedis.sadd("set2", "b", "c", "d")

# inter
result = litedis.sinter("set1", "set2")
assert set(result) == {"b", "c"}

# union
result = litedis.sunion("set1", "set2")
assert set(result) == {"a", "b", "c", "d"}

# diff
result = litedis.sdiff("set1", "set2")
assert set(result) == {"a"}

ZSET 的使用

from litedis import Litedis

litedis = Litedis()
litedis.delete("zset")

# 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

Project details


Download files

Download the file for your platform. If you're not sure which to choose, learn more about installing packages.

Source Distribution

litedis-3.0.8.tar.gz (26.4 kB view details)

Uploaded Source

Built Distribution

If you're not sure about the file name format, learn more about wheel file names.

litedis-3.0.8-py3-none-any.whl (32.2 kB view details)

Uploaded Python 3

File details

Details for the file litedis-3.0.8.tar.gz.

File metadata

  • Download URL: litedis-3.0.8.tar.gz
  • Upload date:
  • Size: 26.4 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/6.0.1 CPython/3.8.20

File hashes

Hashes for litedis-3.0.8.tar.gz
Algorithm Hash digest
SHA256 148a1a2178a132a20a0d8e2eb51a799a616067be95273ca848ab9dbe71a4e66f
MD5 02ba21f62284d4f1969b6b09bbfe058f
BLAKE2b-256 19ea88ee88d0bf2a7dc178eb7752a02c2b9848dffc275122999336d47419fd3b

See more details on using hashes here.

File details

Details for the file litedis-3.0.8-py3-none-any.whl.

File metadata

  • Download URL: litedis-3.0.8-py3-none-any.whl
  • Upload date:
  • Size: 32.2 kB
  • Tags: Python 3
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/6.0.1 CPython/3.8.20

File hashes

Hashes for litedis-3.0.8-py3-none-any.whl
Algorithm Hash digest
SHA256 652a644705ce00f711d09a9a70d510b300fa52c65a474765fe80ec9ad7fdc0e0
MD5 2ec4f02461b4891d2da7a337099a69a0
BLAKE2b-256 938e5ae33228b58fa2b7d51d317437cc8ac24064cee9d2dad80c6f3694788a74

See more details on using hashes here.

Supported by

AWS Cloud computing and Security Sponsor Datadog Monitoring Depot Continuous Integration Fastly CDN Google Download Analytics Pingdom Monitoring Sentry Error logging StatusPage Status page