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 版本

    从 litedis3.0 开始,只支持 Python3.10+

使用示例

持久化和数据库设置

  • 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.0.tar.gz (24.0 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.0-py3-none-any.whl (29.8 kB view details)

Uploaded Python 3

File details

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

File metadata

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

File hashes

Hashes for litedis-3.0.0.tar.gz
Algorithm Hash digest
SHA256 04068fe10f881d752b7aa78cfdf5cc1ec98db051ec682d1117df9adf2acc80e7
MD5 1e8edbcaac76ed58ba6572b66c534632
BLAKE2b-256 54d02803f47b1411bf1e3b5da18dde8d0212767e4b6d1521f38c4be6f7349053

See more details on using hashes here.

File details

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

File metadata

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

File hashes

Hashes for litedis-3.0.0-py3-none-any.whl
Algorithm Hash digest
SHA256 ffa4a8337d55e21b3356323ceabd3636f9c14a7b90e916424a08f1dc18d4a8ee
MD5 62576459a9dba1444ba68085f69aebac
BLAKE2b-256 a8cd8238cf23a7957bcdcd9fc603d9346b2d848bf7716052b3729c5cd69d9df1

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