Можно ли истечь данные конкретного ключа из региона 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); 
      }
    }
});
Другие вопросы по тегам