В настоящее время у нас есть сквозной кэш, который использует оптимистичный контроль параллелизма при заполнении кеша при пропадании кеша. Мы не ожидаем много конфликтов, поэтому решили использовать оптимистичный контроль параллелизма. Я немного не уверен, что делать, когда у нас на самом деле конфликт.
Если мы пропустили кеш, мы извлекаем соответствующую строку из базы данных, а затем помещаем ее в кеш для дальнейшего использования. Прежде чем поместить его в кеш, мы гарантируем, что значение ключа кеша не изменилось с момента нашего начального чтения базы данных. Если это так, я сейчас склоняюсь к аннулированию записи в кэше, просто чтобы быть в безопасности, но это кажется немного неэффективным. Есть ли лучшие альтернативы, которые все еще безопасны?
Для справки, мы используем Redis для нашего уровня кэша и MySQL для нашего резервного хранилища.