当前位置:  开发笔记 > 编程语言 > 正文

在Django/python中,如何将memcache设置为无限时间?

如何解决《在Django/python中,如何将memcache设置为无限时间?》经验,为你挑选了3个好方法。

来自文档:

到期时间可以设置为0,表示"永不过期",为30天.任何高于30天的时间都被解释为unix时间戳日期

因此,要将密钥设置为永不过期,请将超时设置为0.



1> miku..:
def _get_memcache_timeout(self, timeout):
    """
    Memcached deals with long (> 30 days) timeouts in a special
    way. Call this function to obtain a safe value for your timeout.
    """
    timeout = timeout or self.default_timeout
    if timeout > 2592000: # 60*60*24*30, 30 days
        # See http://code.google.com/p/memcached/wiki/FAQ
        # "You can set expire times up to 30 days in the future. After that
        # memcached interprets it as a date, and will expire the item after
        # said date. This is a simple (but obscure) mechanic."
        #
        # This means that we have to switch to absolute timestamps.
        timeout += int(time.time())
    return timeout

从FAQ:

设置过期时间有哪些限制?(为什么有30天的限制?)

您可以在将来设置最多30天的到期时间.之后,memcached将其解释为日期,并在该日期之后使该项目到期.这是一个简单(但不起眼)的机制.



2> Chris Lawlor..:

来自文档:

到期时间可以设置为0,表示"永不过期",为30天.任何高于30天的时间都被解释为unix时间戳日期

因此,要将密钥设置为永不过期,请将超时设置为0.



3> Gady..:

通过设置在Django 1.6中添加了对非过期缓存的支持timeout=None

推荐阅读
低调pasta_730
这个屌丝很懒,什么也没留下!
DevBox开发工具箱 | 专业的在线开发工具网站    京公网安备 11010802040832号  |  京ICP备19059560号-6
Copyright © 1998 - 2020 DevBox.CN. All Rights Reserved devBox.cn 开发工具箱 版权所有