我正在使用django编写一个简单的livechat应用程序。我将有关聊天会话的数据保存在聊天类的静态变量中。在当地,它真的很管用。
我已经在heroku上部署了一个应用程序的测试版本,但是heroku是一个云平台。不同线程中的类变量之间没有同步。
因此,我决定使用memcached。但是我找不到django.core.cache是否允许在缓存中搜索密钥,或者是否遍历整个缓存来检查值。解决这个问题的最好办法是什么?
发布于 2015-06-05 14:33:01
Memcached只允许您通过它们的键获取/设置条目。您不能迭代这些条目来检查某些内容。但是,如果您的缓存密钥是顺序的(如sess1、sess2等)您可以尝试在循环中检查是否存在:
for i in range(1000):
sess = cache.get('sess%s' % i)
# some logic但无论如何,这似乎是一个糟糕的设计决定。关于您正在做什么,我没有足够的信息,但是我想某种持久存储(比如数据库)会运行得很好。您还可以考虑http://redis.io/,它具有比memcached更多的特性,但仍然非常快。
https://stackoverflow.com/questions/30661208
复制相似问题