Skip to main content

cache for python, base on asyncio.

Project description

AioCacheBucket

这并非一个使用类似 result = await cache.get("xxxxxx") 的所谓" IO密集型" 应用.
AioCacheBucket 是使用了 asyncio 模块的多种技巧实现的一个Python缓存模块.

Example

# 单实例:
from AioCacheBucket import AioCacheBucket

bucket = AioCacheBucket()
bucket.set("message", "Hello World!")
print(bucket.get("message"))

# 多实例:
from AioCacheBucket import AioMultiCacheBucket

multibuckets = AioMultiCacheBucket({})
multibuckets.setup({
    "hello-world": {}
})
hello_world_bucket: AioCacheBucket = multibuckets.getBucket("hello-world")
hello_world_bucket.set("message".encode("utf-8"), "sth.") # 除了键必须是hashable, 值则可以是任何PyObject.

# 即时过期机制:
from datetime import datetime as dt, timedelta as td
bucket.set("ttl-test", "sth", date=dt.now() + td(seconds=10))
# ttl-test这个键会在10秒后被删除. ACB会在你使用get方法时检查键的过期情况, 并根据其进行一定处理.

multibuckets.close_scavenger() 
# 在执行完所有代码后, 请先通过该方法停止内置的清道夫线程, 否则可能导致假死
# 在这之后我们可能会使用atexit等模块实现自动执行该方法.

ACB主要将 asyncio 模块用于清道夫线程的实现, 对于用户接口尽量做到简单方便.

强烈推荐在Python 3.7.10及以上版本使用该模块.

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

AioCacheBucket-0.0.7.tar.gz (4.5 kB view details)

Uploaded Source

File details

Details for the file AioCacheBucket-0.0.7.tar.gz.

File metadata

  • Download URL: AioCacheBucket-0.0.7.tar.gz
  • Upload date:
  • Size: 4.5 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/3.1.0 pkginfo/1.5.0.1 requests/2.22.0 setuptools/41.2.0 requests-toolbelt/0.9.1 tqdm/4.41.1 CPython/3.8.1

File hashes

Hashes for AioCacheBucket-0.0.7.tar.gz
Algorithm Hash digest
SHA256 bf3d74728fc036dbe07e3b1cdd1b29d298c03ed2fe552adc6ab0f0c9963ab18b
MD5 62fb0706311feb6d2520cb0a607b5621
BLAKE2b-256 721bbb33b7a95eec9d5c0178434c50cf628399ab371aa70481fd56d8139202e5

See more details on using hashes here.

Supported by

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