Установка TTL / истечения срока действия записи в hazelcast для отдельных записей без put

#hazelcast #hazelcast-imap

#hazelcast #hazelcast-imap

Вопрос:

Возможно ли установить ttl / истечение срока действия записи для отдельного ключа без выполнения ввода, т.е. без изменения значения ключа. Что-то похожее на EXPIRE в redis? Я могу выполнить «get», за которым следует «put», и установить ttl, но это было бы неэффективно при больших значениях.

 hz = hazelcast.HazelcastClient()
    
test_map = hz.get_map('test_map')
val = test_map.get(key) 
test_map.put(key, val, ttl)
  

Примечание — я использую hazelcast-python-client

Ответ №1:

Вы можете настроить TTL, изменив что-либо еще с помощью метода map.setTll():

 IMap map = hz.getMap("testMap");   // get the map    
map.setTtl("keyToModify", 1, TimeUnit.HOURS); 
  

Комментарии:

1. Есть ли у нас эквивалент SETTL в hazelcast-python-client? Я не вижу ни одного в документации — hazelcast.github.io/hazelcast-python-client/3.12.3 /… , спасибо

2. Привет, Рам, я не уверен — я также не вижу этого в документах, и я не смог найти явного упоминания об этом в дорожной карте клиента Python. Я спросил об этом разработчиков клиента Python и дам вам знать, что я услышу в ответ.

3. Это было добавлено как проблема для клиента Python, см. github.com/hazelcast/hazelcast-python-client/issues/214 . Если вы заинтересованы в участии, наша команда может поработать с вами над процессом PR — мы всегда рады вовлечению сообщества в проекты, и это самый быстрый способ изменить ситуацию. Прямо сейчас команда Python сосредоточена на выпуске 4.0, но с помощью сообщества они, вероятно, могли бы быстро внести несколько небольших исправлений или улучшений, подобных этому. Если у вас есть какие-либо дополнительные замечания по проблеме, не стесняйтесь добавлять их к проблеме.