gpt4 book ai didi

java - Hazelcast,记录缓存中发生更改的情况

转载 作者:行者123 更新时间:2023-12-02 09:11:10 31 4
gpt4 key购买 nike

我正在运行嵌入在 JVM 中的 Hazelcast。我想要一些简单的日志,每次缓存中发生更改时都会记录这些日志。像缓存更改:键 = 值这样简单的事情。

我可以自己写这些日志,但如果它还不存在,我会感到惊讶......但是我似乎找不到该选项。

Hazelcast 中是否已经存在这种日志记录?

最佳答案

没有像这些更改事件日志记录或处理另一项任务这样的简单配置。 Hazelcast 有 EntryListener 接口(interface),您可以根据需要的事件来实现。 Here is the documentation .

您可以尝试使用以下示例代码片段。

根据需要创建自定义 EntryListener。

// Your custom entity listener.
@Slf4j
public class MyMapEventLogger implements EntryAddedListener<String, String>,
EntryRemovedListener<String, String>, EntryUpdatedListener<String, String>,
EntryEvictedListener<String, String>, MapEvictedListener, MapClearedListener {

@Override
public void entryAdded(EntryEvent<String, String> event) {
log.info("entryAdded: {}" , event);
}

@Override
public void entryRemoved(EntryEvent<String, String> event) {
log.info("entryRemoved: {}", event);
}

@Override
public void entryUpdated(EntryEvent<String, String> event) {
log.info("entryUpdated: {}", event);
}

@Override
public void entryEvicted(EntryEvent<String, String> event) {
log.info("entryEvicted: {}", event);
}

@Override
public void mapEvicted(MapEvent event) {
log.info("mapEvicted: {}", event);
}

@Override
public void mapCleared(MapEvent event) {
log.info("mapCleared: {}", event);
}
}

使用 addEntryListener 方法创建后,将自定义 EntryListener 绑定(bind)到 yout map 。

public class ListenerSample {
public static void main(String[] args) {
HazelcastInstance hz = Hazelcast.newHazelcastInstance();

IMap<String, String> map = hz.getMap("myMap");

MyMapEventLogger myMapEventLogger= new MyMapEventLogger();
map.addEntryListener(myMapEventLogger, true);

// Put, modify and then clear
map.put("1", "1");
map.put("1", "2");
map.clear();
}
}

关于java - Hazelcast,记录缓存中发生更改的情况,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/59406222/

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