Skip to main content

Litedis 是一个类似 Redis 的轻量级的、本地的、开箱即用的 NoSQL 数据库

Project description

Litedis

Litedis 是一个类似 Redis 的轻量级的本地的 NoSQL 数据库,支持基本的数据结构和操作。和 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.3.tar.gz (24.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.3-py3-none-any.whl (30.5 kB view details)

Uploaded Python 3

File details

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

File metadata

  • Download URL: litedis-3.0.3.tar.gz
  • Upload date:
  • Size: 24.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.3.tar.gz
Algorithm Hash digest
SHA256 4488aa835ec12bc387245fb409d6bcee4376b47b76290638a8a3a1996758beee
MD5 5d1d5cf840a19e530c1dab41cac08156
BLAKE2b-256 73a352f9840a8d80920bedafa70c8e48cbff7fe54c08327f59126978980dd234

See more details on using hashes here.

File details

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

File metadata

  • Download URL: litedis-3.0.3-py3-none-any.whl
  • Upload date:
  • Size: 30.5 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.3-py3-none-any.whl
Algorithm Hash digest
SHA256 89765ae327deaedef624d864752844a9f23cfb0db2d67e03c576a539168b4e71
MD5 c35fd91e0051e17d5a61c326f0eb9645
BLAKE2b-256 5411acb67a9184447a9d8ac0d66c2372e4f4221e7fae932fc33234786fc6b357

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