在memcache上查找特定键的年龄

时间:2012-05-29 02:20:10

标签: memcached

有没有快速的方法来发现memcache上特定密钥的年龄?

2 个答案:

答案 0 :(得分:4)

Memcached不会保留关于何时创建密钥的信息,因此除非您有某种客户端逻辑,否则无法执行此操作。如果这对您很重要,那么您只需将创建时间作为前缀添加到键的实际值(值=时间+数据)。然后,当您从memcached获取数据时,您可以将值拆分为相应的数据片段。

答案 1 :(得分:2)

OP,您是否指的是知道缓存条目的年龄?您可以存储最新更新的时间戳以及实际值:

from datetime import datetime

def put_value(key, value):
    timestamp = datetime.utcnow()
    entry = (timestamp, value)
    memcache.add(key, entry)


def get_value(key):
    entry = memcache.get(key)

    if not value:
        return None

    _, value = entry
    return value


def get_age(key):
    entry = memcache.get(key)

    if not value:
        return None

    timestamp, _ = entry
    age = datetime.utcnow() - timestamp
    return age