4

一次キャッシュは Hibernate のどこに保存されますか? メモリ(RAM)またはハードディスク内? メモリに格納されている場合、クエリのすべての行を格納するためのメモリが少ない場合、この場合、キャッシュをどのように管理しますか?

4

4 に答える 4

3

Hibernate Session is it's first level cache. It is object in heap, so it is in RAM. Usually you have enough RAM (>256MB) to store queries =)

于 2013-03-05T09:00:30.693 に答える
1

its in memory, otherwise it wouldn't offer any performance advantage.

ehcache memcached hazelcast

于 2013-03-05T08:59:29.210 に答える
0

通常、キャッシュはメモリに保存されますが、クラスター化されたキャッシュを使用すると、ネットワークからキャッシュにアクセスできます。

ここにHibernateキャッシュプロバイダーのリストとそれらの違い:Hibernateキャッシュプロバイダー

NoSqlキー/値エンジンを使用してキャッシュを処理する可能性のある他のキャッシュプロバイダーを見つけることができます。

于 2013-03-05T09:03:40.513 に答える
0

Frist レベルのキャッシュは、セッションが保持する RAM に確実にあるため、パフォーマンスと使いやすさの利点があります。

セッションで読み込まれたオブジェクトが多すぎると思われる場合は、セッションが閉じられる前に、一部を一次キャッシュから削除できます。セッション インターフェイスのソース コードを参照してください。

public interface Session extends Serializable {
    ...

    /**
     * Remove this instance from the session cache. Changes to the instance will
     * not be synchronized with the database. This operation cascades to associated
     * instances if the association is mapped with <tt>cascade="evict"</tt>.
     *
     * @param object a persistent instance
     * @throws HibernateException
     */
    public void evict(Object object) throws HibernateException;
}
于 2013-03-05T10:06:41.693 に答える