Seg Faults试图运行Memcached?

时间:2010-10-14 19:13:58

标签: ruby-on-rails memcached

我在使用Memcached时遇到了很多问题。它似乎在本地安装得很好,我可以运行命令'memcached -vv'并看到它正在监听。我正在部署到Heroku(其中有这个部分:http://docs.heroku.com/memcache使用memcached)并且肯定安装了memcached附加组件。以下是我的环境设置方式:

#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

现在,当我尝试运行rake:gems install或脚本/控制台本地时,我遇到了Seg故障,当我将它全部推送到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指向任何可以提供帮助的人。

2 个答案:

答案 0 :(得分:0)

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

启动本地联网的memcached服务器:

$ memcached -p 11211 &

现在,在Ruby中,需要库并在全局级别实例化Memcached对象:

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

来自此处的“使用”部分: http://rubydoc.info/gems/memcached-northscale/0.19.5.4/file/README

使用

$ sudo netstat -tulpn | grep memcached

找出IP memcached正在使用

答案 1 :(得分:0)

所以我了解到我所认为的所有输出都是错误的,事实上并非如此。尴尬但很高兴它正在发挥作用。