Почему метод Redis ExistById иногда возвращает false при высокой нагрузке или одновременном доступе, даже если ключ сущеJAVA

Программисты JAVA общаются здесь
Ответить
Anonymous
 Почему метод Redis ExistById иногда возвращает false при высокой нагрузке или одновременном доступе, даже если ключ суще

Сообщение Anonymous »

У меня возникла проблема с Redis при проверке существования ключа с помощью CrudRepository.existsById(). В обычных условиях все работает нормально, и ключ существует в Redis, но проблема возникает при высокой загрузке запросов или одновременном доступе.
Служба Redis:

Код: Выделить всё

@Service
public class RedisService {

private final SessionRedisDataRepository sessionRedisDataRepository;

public RedisService(SessionRedisDataRepository sessionRedisDataRepository) {
this.sessionRedisDataRepository = sessionRedisDataRepository;
}

public boolean isKeyExists(String key) {
return sessionRedisDataRepository.existsById(key);
}
}
Репозиторий Redis:

Код: Выделить всё

public interface SessionRedisDataRepository extends CrudRepository {
}
Класс данных сеанса:

Код: Выделить всё

@RedisHash(value = "SessionData", timeToLive = 3600L)
public class SessionRedisData implements Serializable {
@Id
private String sessionId;
}
Когда несколько запросов поступают одновременно или при высокой нагрузке, метод isKeyExists иногда возвращает false, даже если ключ существует в Redis.
  • Что работает: при нормальной нагрузке ключ существует, и ExistById возвращает
    истину.
  • Что не получается: когда происходит несколько одновременных запросов, может быть проверен один и тот же ключ, и ExistById возвращает false, хотя
    ключ находится в Redis.
Что может быть причиной причина этой проблемы с ExistById в этом случае и каковы исправления?

Подробнее здесь: https://stackoverflow.com/questions/793 ... d-or-concu
Ответить

Быстрый ответ

Изменение регистра текста: 
Смайлики
:) :( :oops: :roll: :wink: :muza: :clever: :sorry: :angel: :read: *x)
Ещё смайлики…
   
К этому ответу прикреплено по крайней мере одно вложение.

Если вы не хотите добавлять вложения, оставьте поля пустыми.

Максимально разрешённый размер вложения: 15 МБ.

Вернуться в «JAVA»