解决memcached安装配置及rails报错问题

需积分: 17 9 下载量 37 浏览量 更新于2024-09-27 收藏 2KB TXT 举报
"这篇文章主要介绍了如何在Linux环境中安装和配置memcached,并且针对在启动Rails服务时遇到的关于memcache_util加载失败的问题提供了解决方案。" memcached是一款高性能、分布式内存对象缓存系统,常用于缓解数据库负载,提高Web应用的性能。它通过将数据和对象存储在内存中,以便快速访问,而无需频繁读取或写入硬盘。在Rails应用中,memcached可以作为session存储后端,进一步提升应用响应速度。 首先,安装memcached的步骤如下: 1. 下载源代码:你可以从官方网站或者镜像站点下载memcached的最新版本,例如`memcached-1.1.13.tar.gz`。 2. 解压文件:使用`tar -zxvf memcached-1.1.13.tar.gz`命令解压缩。 3. 编译和安装:进入解压后的目录,执行`./configure --prefix=/usr/local`进行配置,然后运行`make`和`sudo make install`来编译和安装memcached。 在安装完成后,你需要启动memcached服务。通常,使用以下命令启动: ``` memcached -d -u root -m 10 -l 192.168.0.249 -p 11211 ``` 这里,参数`-d`表示以守护进程方式运行,`-u`指定运行用户,`-m`分配内存大小(单位MB),`-l`是监听的IP地址,`-p`设置端口号。 接下来,为了在Rails应用中使用memcached,你需要安装相应的gem包。这包括`memcache-client`和`cached_model`。你可以使用以下命令安装它们,并确保包含依赖项: ``` gem install cached_model --include-dependencies gem install memcache-client --include-dependencies ``` 如果在启动Rails服务时遇到"nosuchfiletoloadmemcache_util(MissingSourceFile)"的错误,这意味着系统找不到`memcache_util.rb`文件。这可能是因为缺少gem包或者文件路径不正确。你应该确认`memcache-client` gem已经正确安装,并检查`memcache-client-1.7.0/lib/`目录下是否存在`memcache_util.rb`。如果缺失,可以从网上下载并放置到相应位置。 在Rails配置中,你需要在`environments.rb`文件中引入`memcache`和`memcache_util`库,并定义默认的memcached配置。例如: ```ruby require 'memcache' require 'memcache_util' # 默认的memcached设置,环境配置可以覆盖这些设置 unless defined? MEMCACHE_OPTIONS then MEMCACHE_OPTIONS = { :debug => false, :namespace => 'my_memcache', :readonly => false } end # memcached的配置 unless defined? MEMCACHE_CONFIG then File.open "#{RAILS_ROOT}/config/memcache.yml" do |memcache| MEMCACHE_CONFIG = YAML.load(memcache)[RAILS_ENV] end end ``` 在`config/memcache.yml`文件中,你需要根据实际情况配置memcached服务器的连接信息,例如: ```yaml development: servers: - localhost:11211 production: servers: - 192.168.0.249:11211 ``` 最后,确保在你的session存储配置中使用memcached,例如: ```ruby ActionController::Base.session_store = :mem_cache_store ``` 通过以上步骤,你就可以在Rails应用中成功配置并使用memcached了。在遇到问题时,记得检查gem的安装情况,确保所有必要的文件都在正确的位置,并且配置文件正确无误。