金字塔与 memcached:如何使其工作?错误 - MissingCacheParameter: url 为必填项
我在 Pyramid 框架上有一个网站,想要使用 memcached 进行缓存。出于测试原因,我使用了内存类型缓存,一切正常。我正在使用pyramid_beaker 包。 这是我以前的代码(工作版本)。
在.ini
文件中
cache.regions = day, hour, minute, second
cache.type = memory
cache.second.expire = 1
cache.minute.expire = 60
cache.hour.expire = 3600
cache.day.expire = 86400
在views.py 中:
from beaker.cache import cache_region
@cache_region('hour')
def get_popular_users():
#some code to work with db
return some_dict
我在文档中找到的唯一.ini
设置是关于使用内存和缓存文件类型的。但我需要使用 memcached。
首先,我从 Ubuntu 官方存储库安装了 memcached
包,并将 python-memcached
安装到了我的 virtualenv 中。
在 .ini
文件中,我替换了 cache.type = memory
-> cache.type = memcached
。我有下一个错误:
beaker.exceptions.MissingCacheParameter
MissingCacheParameter:url 为必填项
我做错了什么?
提前致谢!
I have site on Pyramid framework and want to cache with memcached. For testing reasons I've used memory type caching and everything was OK. I'm using pyramid_beaker
package.
Here is my previous code (working version).
In .ini
file
cache.regions = day, hour, minute, second
cache.type = memory
cache.second.expire = 1
cache.minute.expire = 60
cache.hour.expire = 3600
cache.day.expire = 86400
In views.py:
from beaker.cache import cache_region
@cache_region('hour')
def get_popular_users():
#some code to work with db
return some_dict
The only .ini
settings I've found in docs were about working with memory and file types of caching. But I need to work with memcached.
First of all I've installed package memcached
from Ubuntu official repository and also python-memcached
to my virtualenv.
In .ini
file I've replaced cache.type = memory
-> cache.type = memcached
. And I've got next error:
beaker.exceptions.MissingCacheParameter
MissingCacheParameter: url is required
What am I doing wrong?
Thanks in advance!
如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。
绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
发布评论
评论(1)
因此,使用 TurboGears 文档 作为指南,您对网址?
在我看来,好像 memcached 需要一个 url 来正确初始化:
我不太确定为什么代码允许 url 是可选的(默认为 None)然后需要它。我认为只需要 url 作为参数会更简单。
后来:回答你的下一个问题:
我想说的是,按照我阅读下面代码的方式,您必须提供
lock_dir
或data_dir
来初始化 self.lock_dir :您可以使用此测试代码复制该确切错误:
结果如下:
So, using the TurboGears documentation as a guide, what settings do you have for the url?
It looks to me as if memcached requires a url to initialize correctly:
I am not really sure why the code allows url to be optional (defaulting to None) and then requires it. I think it would have been simpler just to require the url as an argument.
Later: in response to your next question:
I'd say that the way I read the code below, you have to provide either
lock_dir
ordata_dir
to initialize self.lock_dir:You can replicate that exact error using this test code:
It turns out like this: