我打算为一个没有使用任何ORM工具的小项目实施identity map。
我见过的大多数示例中的标准实现只是对象id的哈希,但很明显哈希将无限制地增长。我正在考虑使用具有缓存过期的memcahed或redis,但这也意味着某些对象将在缓存中到期,并且它们的数据将在新的不同对象(不同对象下的同一实体)下再次从数据库中获取。存储器)。
考虑到大多数ORM不需要运行memcached / redis。他们如何解决这个问题?他们真的解决了吗?是否有一个由重复实例代表的实体?
我所知道的唯一解决方案是支持智能指针并在哈希中存储弱引用的语言。我不认为这种方法可以用Ruby,所以我想知道这种模式通常是由Ruby ORM实现的。
答案 0 :(得分:1)