2007-09-15
memcache 和belongs_to 问题
如果用memcache把一些系统的基础数据表全部存起来,关联中的belongs_to,这种关联还得读取数据库。
例如 B belongs_to A 那么 a.b是取B表中的一条数据。 但是B表的数据全部都放在memcache中了。这里的数据读取就有问题了。 读cache总要比读取数据库要快的。有没有现成的方案的?
例如 B belongs_to A 那么 a.b是取B表中的一条数据。 但是B表的数据全部都放在memcache中了。这里的数据读取就有问题了。 读cache总要比读取数据库要快的。有没有现成的方案的?
- 15:28
- 浏览 (3338)
- 论坛浏览 (1940)
- 评论 (4)
- 相关推荐
评论
谢谢robbin...
如果一开始我只想将缓存分布在一台机器上,ruby有没有memcached的替代品?
类似oscache,在一个ruby虚拟机内使用。
如果自己用ruby写个类似oscache的缓存器的话,如果使用多个mongrel实例,会不会制造多份缓存?
只是问问,:-)
如果一开始我只想将缓存分布在一台机器上,ruby有没有memcached的替代品?
类似oscache,在一个ruby虚拟机内使用。
如果自己用ruby写个类似oscache的缓存器的话,如果使用多个mongrel实例,会不会制造多份缓存?
只是问问,:-)
jack 写道
两者都不是,只用了一个memcache client. Ruby-MemCache。 看来的还得自己写,主要有些查询不是通过id来查询的。
Ruby-MemCache的性能很糟糕,现在大家都改用memcache-client了。非主键的query cache自己写也没啥麻烦的,几行代码封装一下而已,如果你用cache_fu,已经有了。这是我写的query_cache代码:
module QueryCache
# Usage: get_cache(key, timeout) { Model.find_method }
def get_cache(key, timeout = 60 * 30)
return value = yield if RAILS_ENV == 'test'
unless value = Cache.get(key)
Cache.put(key, value, timeout) if value = yield
end
value
end
end
很简单。
发表评论
该博客是同时发布到论坛的,无法评论在论坛已被锁定的帖子
- 浏览: 311761 次
- 来自: 温州

- 详细资料
搜索本博客
我的相册
4
共 1 张
共 1 张
最新评论
-
如何在管理不规范的公司中 ...
我假装给老板打工,老板假装给我付工资.
-- by sword721 -
如何在管理不规范的公司中 ...
LS说的没错,让你成为能影响环境的人!
-- by hyhongyong -
如何在管理不规范的公司中 ...
jack 写道 论坛上常说的管理不够规范,管理混乱。就实 ...
-- by leton2008 -
如何在管理不规范的公司中 ...
LZ 讲的情况确实存在; 在一个公司待久了,和身边的人(管理者)熟了,情况就复杂 ...
-- by hszhl -
如何在管理不规范的公司中 ...
JavaJason 写道这就是一种企业文化,只是这种文化没有找到清晰的归宿 公 ...
-- by hyhongyong






评论排行榜