2010-10-14 129 views
1

我遇到了很多与Memcached有关的问题。它似乎在本地安装好了,我可以运行'memcached -vv'命令并看到它在监听。我正在部署到Heroku(本部分包含:使用memcached的http://docs.heroku.com/memcache),并确定安装了memcached插件。这里是我的环境是如何设置的:尝试运行Memcached的Seg故障?

#environment.rb 

Rails::Initializer.run do |config| 
... 
config.gem 'memcached-northscale', :lib => 'memcached' 
require 'memcached' 


#production.rb 

config.action_controller.perform_caching    = true 

config.cache_store = :mem_cache_store, Memcached::Rails.new 


# .gems 
... 
memcached-northscale 

现在,当我试图运行耙:宝石安装或者脚本/控制台在本地,我得到一个波段的错,当我把它全部推到Heroku的和开拓的Heroku控制台并尝试'mc = Memcached.new'我得到一整套错误,如“Memcached :: ServerIsMarkedDead,Memcached :: ATimeoutOccurred,Memcached :: ConnectionBindFailure,Memcached :: ConnectionFailure,Memcached :: ConnectionSocketCreateFailure,Memcached :: Failure,Memcached :: MemoryAllocationFailure,Memcached :: ReadFailure,Memcached :: ServerError,Memcached :: SystemError,Memcached :: UnknownReadFailure“

这个问题一直困扰着我几个星期。 1亿美元的StackOverflow指向任何可以提供帮助的人。

+0

尝试在Heroku控制台中运行'mc = Memcached :: Rails.new'而不是'mc = Memcached.new' – nobody 2010-10-14 22:07:52

+0

不,仍然有同样的错误..... – kateray 2010-10-15 13:08:02

回答

0

所以我才知道,所有我认为输出是一个错误,其实并非如此。尴尬但很高兴它的工作。

0

要使用memcached,您需要在ruby里面配置正确的IP和端口号。

启动一个本地网络memcached服务器:

$ memcached -p 11211 & 

现在,在Ruby中,需要的库,并在全球范围内实例化一个Memcached的对象:

require 'memcached' 
$cache = Memcached.new("localhost:11211") 

从这里Usage部分: http://rubydoc.info/gems/memcached-northscale/0.19.5.4/file/README

使用

$ sudo netstat -tulpn | grep memcached 

找出IP Memcached是使用