如何配置Hazelcast为我的数据库进行缓存?
显然我的问题获得答案的机会较少,因为它与技术有关。
所以一般来说如何将客户端的查询重定向到缓存?如果后者没有数据,如何向它(缓存)指示它应该从数据库中检索它?
信息:我有一个Oracle数据库和Hazelcast客户端/服务器架构。
谢谢!
答案 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-book-examples/tree/master/chapter-distributed-map/mapstore
这是MapStore的一个示例,因此您还可以将更改写回数据库。但如果您不需要,只需使用MapLoader(MapStore扩展MapLoader)。