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.7.tar.gz (24.6 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.7-py3-none-any.whl (30.4 kB view details)

Uploaded Python 3

File details

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

File metadata

  • Download URL: litedis-3.0.7.tar.gz
  • Upload date:
  • Size: 24.6 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.7.tar.gz
Algorithm Hash digest
SHA256 c4832b0fc746eb53ff9bd54cca17a425971aa1778577c34370ea48f4d49d3f73
MD5 ed1fc5aedad2fdd4aeec51bc6bed8d85
BLAKE2b-256 4172c563787543ca6754c7b6718df07af5b3d1d2de349169c8bb8f4525a093ff

See more details on using hashes here.

File details

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

File metadata

  • Download URL: litedis-3.0.7-py3-none-any.whl
  • Upload date:
  • Size: 30.4 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.7-py3-none-any.whl
Algorithm Hash digest
SHA256 760b4371b7df5e92764aa55576a20e0bf3e17cfe48187c7b2c504b899f7b8e6f
MD5 ff91daf43cfe94f78ccf5bd4674de5f5
BLAKE2b-256 dc944993b6ed087183047ad62253e973795f3158ac77914d99ccba577ea28223

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