我正在寻找一个ruby gem(或rails插件),它以与ActiveRecord抽象SQL细节相同的方式抽象memcached的细节.我不是在寻找有助于在memcached中缓存ActiveRecord模型的东西.我敢肯定有大约4215颗宝石可以帮助解决这个问题.
理想情况下,我希望能够做到这样的事情:
class Apple < MemcachedModel
# whatever else here
end
Run Code Online (Sandbox Code Playgroud)
然后能够做的事情:
my_apple = Apple.find('some memcached key')
Run Code Online (Sandbox Code Playgroud)
这将在memcached中查找此类的JSON表示并对其进行反序列化.我也许可以做以下事情:
my_apple.color = "red"
# persist changes back to memcached
my_apple.save
# load any changes from memcached into local model
my_apple.update
Run Code Online (Sandbox Code Playgroud)
似乎有人必须抓住这个痒,并沿着这些线创建一些东西,但每当我谷歌这样的宝石时,我只是不断出现有助于使用memcached缓存AR模型的东西.
Yeh*_*atz 11
你可以看看我的moneta宝石,它是各种键值商店的ORM'ish.你可以在http://github.com/wycats/moneta/tree/master看到它
moneta背后的基本思想是所有KVS的行为应该与普通Ruby哈希的子集完全相同.我们支持:
#[]
#[]=
#delete
#fetch
#key?
#store
#update_key
#clear
Run Code Online (Sandbox Code Playgroud)
该store和update_key方法需要一个额外的选项哈希,你可以使用正是如此:
cache = Moneta::Memcache.new(:server => "localhost:11211", :namespace => "me")
cache.store("name", "wycats", :expires_in => 2)
cache.update_key("name", :expires_in => 10)
Run Code Online (Sandbox Code Playgroud)
我们支持大量的KVS:
每个商店都支持到期,无论是原生(如在memcached中)还是使用模拟memcache风格到期的标准模块.API始终相同,并且存在共享规范,即运行所有适配器以确保合规性.
添加自己的适配器也很容易,这就是为什么存在这么多适配器的原因.
| 归档时间: |
|
| 查看次数: |
1852 次 |
| 最近记录: |