gpt4 book ai didi

ruby - memcached 是否有类似 ORM 的包装器

转载 作者:数据小太阳 更新时间:2023-10-29 07:02:19 25 4
gpt4 key购买 nike

我正在寻找一个 ruby​​ gem(或 rails 插件),它以与 ActiveRecord 抽象 SQL 细节相同的方式抽象出 memcached 的细节。我不是正在寻找有助于在 memcached 中缓存 ActiveRecord 模型的东西。我确信大约有 4215 个 gem 可以帮助解决这个问题。

理想情况下,我希望能够执行以下操作:

class Apple < MemcachedModel
# whatever else here
end

然后能够做类似的事情:

my_apple = Apple.find('some memcached key')

这将在 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

看来现在肯定有人已经解决了这个问题并按照这些思路创建了一些东西,但每当我在谷歌上搜索这样的 gem 时,我都会不断地找到有助于使用 memcached 缓存 AR 模型的东西。

最佳答案

您可以看一下我的 moneta gem,它是用于各种键值存储的 ORM 类东西。您可以在以下网址查看:http://github.com/wycats/moneta/tree/master

moneta 背后的基本思想是所有 KVS 的行为都应该与普通 Ruby 哈希的子集完全一样。我们支持:

#[]
#[]=
#delete
#fetch
#key?
#store
#update_key
#clear

storeupdate_key 方法采用额外的选项散列,您可以这样使用它:

cache = Moneta::Memcache.new(:server => "localhost:11211", :namespace => "me")
cache.store("name", "wycats", :expires_in => 2)
cache.update_key("name", :expires_in => 10)

我们支持大量的 KVS:

  • 伯克利数据库
  • CouchDB
  • DataMapper(这意味着 DM 支持的任何商店)
  • 文件
  • 大马
  • 内存缓存
  • 进程内内存
  • MongoDB
  • Redis
  • Tokyo Cabinet
  • 东京暴君
  • 中三
  • SDB
  • 使用 XAttr 的文件

每个存储都支持过期,无论是 native (如在 memcached 中)还是使用模拟 memcache 样式过期的标准模块。 API 始终相同,并且有一个共享规范,所有适配器都针对该规范运行以确保合规性。

添加您自己的适配器也很容易,这就是存在这么多适配器的原因。

关于ruby - memcached 是否有类似 ORM 的包装器,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/1064791/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com