跳转到主要内容

基于Redis的每个项目项过期的时间戳多映射实现。

项目描述

MultiMapWithTTL

pypi python Build Status codecov

基于Redis的每个项目项过期的时间戳多映射实现。

描述

此库基于:https://quickleft.com/blog/how-to-create-and-expire-list-items-in-redis/,无需额外任务删除旧项。

值在Redis中使用有序集内部存储

key1: { (score1, value1), (score2, value2), ... }
key2: { (score3, value3), (score4, value4), ... }
...

其中score是值被添加时的时间戳。我们使用时间戳来过滤过期值,并在插入发生时,我们有机会回收过期值。

本身键通过redis ttl机制与最新值一起设置过期。这些操作结果是一个模拟的多映射,具有项过期功能。

您可以使用它来跟踪与键关联的值,当值具有过期概念时。

>>> s = MultiMapWithTTL(redis_client, 'multimap')
>>> s.add('a', 1, 2, 3)
>>> sorted(s.get('a'))
[1, 2, 3]
>>> s.add_many([('b', (4, 5, 6)), ('c', (7, 8, 9)), ])
>>> sorted(sorted(values) for values in s.get_many('a', 'b', 'c')))
[[1, 2, 3], [4, 5, 6], [7, 8, 9]]

项目详情


下载文件

下载适合您平台文件的文件。如果您不确定选择哪个,请了解更多关于 安装包 的信息。

源代码分发

python-multimapwithttl-0.1.0.tar.gz (8.0 kB 查看哈希值)

上传时间 源代码

构建分发

python_multimapwithttl-0.1.0-py3-none-any.whl (6.2 kB 查看哈希值)

上传时间 Python 3