WATCH keys включает optimistic locking: если между WATCH и EXEC ключи изменились другим клиентом, EXEC вернёт nil и транзакция не применится — клиент ретраит.
Разбор
- Это CAS на уровне ключей, не полный MVCC.
- Нужен цикл retry на клиенте при конфликте.
- Не удерживайте WATCH слишком долго — выше шанс abort.
- В Cluster WATCH ограничен слотом/hash tags.
Итог
WATCH+MULTI — оптимистичная проверка изменений перед атомарным EXEC.