Можно ли истечь данные конкретного ключа из региона Gemfire, как Redis
Привет, я новичок в gemfire и хочу вывести данные из региона gemfire для определенного ключа после простоя, который я установил.
Я сделал это с помощью Redis по приведенному ниже коду.
jedis.set(key, value);
config.setMaxIdle(50);
jedis.expire(key, config.getMaxIdle());
но как это сделать в gemfire.
Любая помощь.
Благодарю.
2 ответа
Решение
Если вы хотите удалить данные для определенного региона, попробуйте следующий код:
Region<String, String> region = cache .<String, String> createClientRegionFactory( ClientRegionShortcut.CACHING_PROXY) .setEntryTimeToLive(new ExpirationAttributes(50)) .create(PropertiesCache.getInstance().getProperty("region"));
Это работает в моей ситуации.
Вы можете контролировать срок действия отдельных ключей, если настраиваете регион на использование пользовательского срока действия. Вы предоставляете реализацию интерфейса CustomExpiry, которая может просматривать каждую запись и решать, когда она должна истечь. Например:
RegionFactory regionFactory = ...
regionFactory.setCustomEntryIdleTimeout(new CustomExpiry() {
public ExpirationAttributes getExpiry(Entry entry) {
if(entry.getKey().equals("XXX")) {
return new ExpirationAttributes(50, ExpirationAction.INVALIDATE);
}
}
});