浏览 4480 次
精华帖 (0) :: 良好帖 (0) :: 新手帖 (0) :: 隐藏帖 (0)
|
|
---|---|
作者 | 正文 |
发表时间:2007-09-15
例如 B belongs_to A 那么 a.b是取B表中的一条数据。 但是B表的数据全部都放在memcache中了。这里的数据读取就有问题了。 读cache总要比读取数据库要快的。有没有现成的方案的? 声明:ITeye文章版权属于作者,受法律保护。没有作者书面许可不得转载。
推荐链接
|
|
返回顶楼 | |
发表时间:2007-09-15
如果你用的是CachedModel的话,会自动缓存关联对象,如果你用的是cache_fu,那就要自己写:
class Child acts_as_cached belongs_to :parent def parent Parent.get_cache(self.parent_id) end end |
|
返回顶楼 | |
发表时间:2007-09-15
两者都不是,只用了一个memcache client. Ruby-MemCache。 看来的还得自己写,主要有些查询不是通过id来查询的。
|
|
返回顶楼 | |
发表时间:2007-09-15
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 很简单。 |
|
返回顶楼 | |
发表时间:2007-11-12
谢谢robbin...
如果一开始我只想将缓存分布在一台机器上,ruby有没有memcached的替代品? 类似oscache,在一个ruby虚拟机内使用。 如果自己用ruby写个类似oscache的缓存器的话,如果使用多个mongrel实例,会不会制造多份缓存? 只是问问,:-) |
|
返回顶楼 | |