我在使用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指向任何可以提供帮助的人。
答案 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)
所以我了解到我所认为的所有输出都是错误的,事实上并非如此。尴尬但很高兴它正在发挥作用。