首页 诗词 字典 板报 句子 名言 友答 励志 学校 网站地图
当前位置: 首页 > 教程频道 > 网络技术 > 网络基础 >

rails的memcache-client 上的namespace不起作用的有关问题

2012-10-27 
rails的memcache-client 下的namespace不起作用的问题问题背景 :?????? 在做网上展会项目的时候,由于不同

rails的memcache-client 下的namespace不起作用的问题

问题背景 :

?????? 在做网上展会项目的时候,由于不同地区的工程文件同时使用了memcache, 举个例子,工程tja,工程tjb,工程tjc,工程tjd. tja..tjd都使用了memcache[:broadcast] = "欢迎参加展会"来存储管理员发送的广播消息.

?????? 几个工程广播时不一样的,因此如果都存memcache[:broadcast] = "欢迎参加展会" 是不对的, 但本着不重复自己的原则,我又不想重新写四个memcache的键值,不然四个类似的工程代码,我要维持四份(目前的状况时,一份代码,四份配置) . memcache下提供了namespace方法,将namespace作为工程里所有memcache的key的前缀.

下面时官方给的一个配置

view plaincopy to clipboardprint?

  1. require?'cache_money'??
  2. config?=?YAML.load(IO.read(File.join(RAILS_ROOT,?"config",?"memcached.yml")))[RAILS_ENV]??
  3. $memcache?=?MemCache.new(config)??
  4. $memcache.servers?=?config['servers']??
  5. $local?=?Cash::Local.new($memcache)??
  6. $lock?=?Cash::Lock.new($memcache)??
  7. $cache?=?Cash::Transactional.new($local,?$lock)??
  8. class?ActiveRecord::Base??
  9. ??is_cached?:repository?=>?$cache??
  10. end???

----------------------memcached.yml下的东西------------------
其中
view plaincopy to clipboardprint?
  1. production:??
  2. ??ttl:?604800??
  3. ??namespace:?tja??
  4. ??sessions:?false??
  5. ??debug:?false??
  6. ??servers:?localhost:11211??
?
---------------------------------------
问题出现了,namespace怎么也不起作用. 进入memcache-client源码看下,发现memcache-client调用的是?? @namespace??? = opts[:namespace],
namespace时符号,而官方的文档给出的是
config = YAML.load(IO.read(File.join(RAILS_ROOT, "config", "memcached.yml")))[RAILS_ENV]
$memcache = MemCache.new(config)
解析出来的是字符串.
--------------------------------------解决方案-----------------------------

所以只需要把config下的键值从字符串,转化成符号就可以了.

热点排行
Bad Request.