如何进行数据库缓存?

时间:2014-03-18 10:31:18

标签: database caching client-server hazelcast

如何配置Hazelcast为我的数据库进行缓存?

显然我的问题获得答案的机会较少,因为它与技术有关。

所以一般来说如何将客户端的查询重定向到缓存?如果后者没有数据,如何向它(缓存)指示它应该从数据库中检索它?

信息:我有一个Oracle数据库和Hazelcast客户端/服务器架构。

谢谢!

1 个答案:

答案 0 :(得分:0)

第一步是与Hazelcast IMap交谈;它从Java扩展了ConcurrentMap / Map。

所以,例如。

IMap<String, Employees> employees = hazelcastInstance.getMap("employees");

您需要获得像Employee e = employees.get(“123”);

这样的数据

第二步是使用MapLoader配置员工IMap。

<map name="employeeMap">
    <map-store enabled="true">
        <class-name>foo.bar.EmployeeMapLoader</class-name>
    </map-store>
</map>

您在Hazelcast属性文件中执行此操作,如果放在正确的位置,将自动获取。

MapLoader是您需要实施的Hazelcast提供的界面:

https://github.com/hazelcast/hazelcast/blob/master/hazelcast/src/main/java/com/hazelcast/core/MapLoader.java

在这里,您可以使用数据库语句。

例如检查: https://github.com/hazelcast/hazelcast-book-examples/tree/master/chapter-distributed-map/mapstore

这是MapStore的一个示例,因此您还可以将更改写回数据库。但如果您不需要,只需使用MapLoader(MapStore扩展MapLoader)。