Redis: SET key value NX EX 30 (acquire), Lua скрипт для release (проверь owner, потом DEL). Проблема: если процесс завис дольше TTL — лок протухает. Решение: fencing token (монотонный счётчик). Более надёжно: etcd lease + KeepAlive. В PostgreSQL: advisory locks (pg_advisory_lock). Go: wrapper с context для timeout на acquire.
Как реализовать distributed lock на Go?
Senior
188 просмотровAFK Offer AI
Что выведет: s := "hello"; b := []byte(s); b[0] = 'H'; fmt.Println(s)?