Я нашел следующий вопрос (Spring Redis - индексы не удаляются после основного entry expires) о проблеме с истечением срока действия индексов в Redis.
Проблема в том, что срок действия основных записей и записей :phantom
истекает и они удаляются корректно, но соответствующие записи :idx
остаются в Redis потерянными.
Одно из предложенных решений заключалось в том, чтобы включить KeyspaceEvents, чтобы Redis автоматически удалял индексы записей с истекшим сроком действия во время задания очистки.
К сожалению, это решение не будет работать для нашего приложения Spring Boot, поскольку мы используем Redis Enterprise в качестве предоставляемой услуги внутри облачной среды, что не позволяет нам вносить какие-либо изменения в конфигурацию (команда CONFIG
отключена).
Вот что я пробовал:
@Configuration
@EnableRedisRepositories(enableKeyspaceEvents = RedisKeyValueAdapter.EnableKeyspaceEvents.ON_STARTUP)
public class RedisConfiguration {...}
Редактировать:
Я думал, что это работает для моего локального образа докера Redis, но я ошибался! А в предоставленном нами сервисе Redis (Enterprise) его даже нельзя настроить со следующим сообщением:Caused by: redis.clients.jedis.exceptions.JedisDataException: ERR unknown command 'CONFIG'...
Может ли кто-нибудь дать мне подсказку о том, как удалить индексы?
В настоящее время у нас не так много записей :idx
, но они должны быть удалены вместе с записью :phantom
, чтобы избежать сохранения «осиротевших» записей.
Заранее спасибо.
CONFIG
, что не относится к защищенным средам Redis... :-/ - person NanSil   schedule 23.01.2018