我是学习memcached的初学者.memcached服务器最让我困惑.我可以像网络服务器一样将其视为单台服务器计算机吗?我也对memcached服务器和客户端之间的关系感到困惑,它们是否位于不同的计算机上?
我在3.1.0.rc4上遇到了Rails.cache方法的问题(ruby 1.9.2p180(2011-02-18修订版30909)[x86_64-darwin10]).该代码在2.3.12(ruby 1.8.7(2011-02-18 patchlevel 334)[i686-linux],MBARI 0x8770,Ruby Enterprise Edition 2011.03)上的相同应用程序中正常工作,但在升级后开始返回错误.我还没弄清楚原因.
尝试缓存具有多个范围的对象时,似乎会发生错误.
此外,无论使用多少范围,使用lambdas的任何范围都会失败.
我从这些模式中遇到了失败:
Rails.cache.fetch("keyname", :expires_in => 1.minute) do
Model.scope_with_lambda
end
Rails.cache.fetch("keyname", :expires_in => 1.minute) do
Model.scope.scope
end
Run Code Online (Sandbox Code Playgroud)
这是我收到的错误:
TypeError: can't dump hash with default proc
from /project/shared/bundled_gems/ruby/1.9.1/gems/activesupport-3.1.0.rc4/lib/active_support/cache.rb:627:in `dump'
from /project/shared/bundled_gems/ruby/1.9.1/gems/activesupport-3.1.0.rc4/lib/active_support/cache.rb:627:in `should_compress?'
from /project/shared/bundled_gems/ruby/1.9.1/gems/activesupport-3.1.0.rc4/lib/active_support/cache.rb:559:in `initialize'
from /project/shared/bundled_gems/ruby/1.9.1/gems/activesupport-3.1.0.rc4/lib/active_support/cache.rb:363:in `new'
from /project/shared/bundled_gems/ruby/1.9.1/gems/activesupport-3.1.0.rc4/lib/active_support/cache.rb:363:in `block in write'
from /project/shared/bundled_gems/ruby/1.9.1/gems/activesupport-3.1.0.rc4/lib/active_support/cache.rb:520:in `instrument'
from /project/shared/bundled_gems/ruby/1.9.1/gems/activesupport-3.1.0.rc4/lib/active_support/cache.rb:362:in `write'
from /project/shared/bundled_gems/ruby/1.9.1/gems/activesupport-3.1.0.rc4/lib/active_support/cache.rb:299:in `fetch'
from (irb):62
from /project/shared/bundled_gems/ruby/1.9.1/gems/railties-3.1.0.rc4/lib/rails/commands/console.rb:45:in `start'
from /project/shared/bundled_gems/ruby/1.9.1/gems/railties-3.1.0.rc4/lib/rails/commands/console.rb:8:in `start'
from /project/shared/bundled_gems/ruby/1.9.1/gems/railties-3.1.0.rc4/lib/rails/commands.rb:40:in `<top (required)>'
from script/rails:6:in `require'
from script/rails:6:in `<main>'
Run Code Online (Sandbox Code Playgroud)
我已经尝试使用:raw => …
来自django文档:
安装Memcached本身后,您需要安装memcached绑定.有几个python memcached绑定可用; 最常见的两个是python-memcached和pylibmc.
pylibmc文档有自己的要求:
-libmemcached 0.32 or later (last test with 0.51)
-zlib (required for compression support)
-libsasl2 (required for authentication support)
Run Code Online (Sandbox Code Playgroud)
所以在我看来,我需要做以下事情:
-install memcached
-install libmemcached
-install zlib
-install libsas12
-install pylibmc
Run Code Online (Sandbox Code Playgroud)
我如何/在哪里这样做?我已经习惯了只需要安装我需要的东西,但我甚至无法分辨哪些是python包.这些是捆绑在一起的吗?
似乎EnyimMemcached(https://github.com/enyim/EnyimMemcached)和BeITMemcached(http://code.google.com/p/beitmemcached/)都是流行的.NET Memcached库.两者都是正在开发的相当活跃的项目,下载量超过一千.试图找出使用哪一个但发现竞争性评论!我确实阅读了另一篇相关的帖子,但仍然想在做出决定之前询问更多人.
EnyimMemcached在其项目主页(https://github.com/enyim/EnyimMemcached)上声称,
基于我们未公开的特别手工制作的内部性能测试,我们是有史以来最快的C#客户端,使用负数量的系统资源,无论是内存还是CPU时间
和
我们严格遵循memcached的协议规范:即使是memcached的人也会问我们他们是否理解
虽然BeITMemcached在其项目维基页面(http://code.google.com/p/beitmemcached/wiki/Features)上声称
我们已经对BeIT Memcached客户端进行了广泛的功能测试和性能测试,我们很满意它正在按预期工作.当我们将性能与其他两个客户端(java端口和Enyim memcached客户端)进行比较时,我们的客户端消耗的资源最少,性能最佳.它还严格遵循memcached协议规范,具有最多的memcached功能,并且在实际代码大小方面仍然小得多.
那么对于那些有这些或类似经验的人,你选择使用哪个客户,也可能选择你选择的那个?
谢谢,
射线.
我借用了对我没用的类似线程: PHP 5.3的php_memcache.dll
我使用最新版本的easyPHP for Windows设置服务器.随之而来的是PHP 5.4.我现在正在寻找一个对我有用的memcache.dll文件,我收到此错误
"PHP启动:memcache:无法初始化模块.使用模块API编译的模块= 20090626 PHP使用模块编译api = 20100525这些选项需要匹配"
任何PHP 5.4 memcache.dll文件的链接将不胜感激.
在上面提到的帖子中,他们为5.3和皮埃尔的版本添加了版本,但在那里我发现只有旧版本的dll
php -v给出了这个
PHP Warning: PHP Startup: memcache: Unable to initialize module
Module compiled with module API=20060613
PHP compiled with module API=20090626
These options need to match in Unknown on line 0
PHP Warning: PHP Startup: memcache: Unable to initialize module
Module compiled with module API=20060613
PHP compiled with module API=20090626
These options need to match in Unknown on line 0
bogus test name tests/
Run Code Online (Sandbox Code Playgroud)
PS.我从php 5.2升级到5.3.在此之前一切正常.
Google App Engine提供了有关Memcache限制的一些信息:
但是,未指定单个应用程序的RAM /内存存储的总允许大小.众所周知,不允许超过1MB的对象.你有信息吗?
我一直在关注微软最近将Velocity推广为分布式缓存解决方案,该解决方案将与Memcached等竞争对手竞争.
我一直在寻找一个64位版本的Memcached for Windows一段时间没有运气,因为我正在研究的ASP.Net MVC项目的一切都是64位,除了64位之外什么都没用.
现在我们已经在测试中使用ASP.NET MVC进行了对冲(很快就希望RTM),但是StackOverflow似乎并没有做得太糟糕,所以我在那里的担忧有限.但速度仍然是一个未知的数量,并且仍将是Beta(或CTP)多年 - 但它确实有 64位!
在这种情况下,有没有人有相关的经验或观点?我们应该等待Velocity的时间 - 它是否足以与Memcached这样的巨头竞争,或者我们是否应该投入时间试图获得64位版本的Memcached?
我试图在memcached conf文件中添加-l 11211 -l 11212.但它只是听第一个,即1121
将rails应用程序部署到Heroku时,自动清除Memcached的最佳方法是什么?
我正在缓存主页,当我进行更改并重新部署时,页面将从缓存中提供,并且不会包含更新.
我希望这完全自动化.我不希望每次部署时都必须清除heroku控制台中的缓存.
谢谢!