ืืื ืืืืจ!
ืืืึทื ื ืืืจ ืืจืขื ืืขื ืฆื ืืืื ืืคืืขืจืงืืึทืืงืืึทื ืึท ืืืืขืจืืขืฆืื ื ืคืื ืึท ืงืึธืืคึผืืขืงืก ืึทืจืืืงื ืืืขืื ืื ืืืคึผืืึทืืขื ืืืืฉืึทื ืคืื ืคืื ืื ืืขืจืืขืืืืื ืืึทืงืื ื ื ืืฆื Redis ืืื ืืึทืื ืืืจ ืฆื ืจืขืื ืืืขืื ืื ืคึผืจืึทืกืคึผืขืงืก ืคืื Redis ืืื ืึท ืืขืืข. ืึทื ืึทืืืกืืก ืคืื ืื ืจืขืืืึธืงืง ืึทืืืขืจืืืึทื ืืื ืงืฉืื ืคืื ืืืจืืื ืงืืขืคึผืืึทื, ืืืืจ ืคืื ืืขื ืืื "
ืคืื ืื ืืขืจืืขืืืืื ืืึทืงืื ื ืืื ืึท ืืืืขืจ ื ืืฆืืง ืคึผืจืืืืืืื ืืขื ืืฆื ืืื ืคืืืข ืื ืืืืืจืึทื ืืึทื ืฅ ืืื ืคืึทืจืฉืืืขื ืข ืคึผืจืึทืกืขืกืึทื ืืืื ืึทืจืืขืื ืืืืฃ ืฉืขืจื ืจืขืกืืจืกื ืืื ืึท ืืืืืฉืืึทืื ืืืกืฉืืืกืืง ืฉืืืืืขืจ.
ืขืก ืืขื ืขื ืึท ื ืืืขืจ ืคืื ืืืืืจืขืจืื ืืื ืึทืจืืืงืืขื ืืืึธืก ืืึทืฉืจืืึทืื ืืื ืฆื ืื ืกืืจืืืขื ื DLM (ืืืกืืจืืืืืืื ืืึทืง ืืึทื ืึทืืขืจ) ื ืืฆื Redis, ืึธืืขืจ ืืขืืขืจ ืืืืืืึธืืขืง ื ืขืื ืึท ืึทื ืืขืจืฉ ืฆืืืึทื ื ืืื ืื ืืขืจืึทื ืืื ืืื ืฆืืฉืืขืื ืืขื ืขื ืืึทื ืฅ ืฉืืืึทื ืงืึทืืคึผืขืจื ืืื ืืืึธืก ืืื ืึทืืฉืืืืึทืืึทื ืืื ืึท ืืืกื ืืขืจ ืกืึทืคืืกืืึทืงืืืืื ืคึผืืึทื.
ืืื ืืขื ืึทืจืืืงื, ืืืจ ืืืขืื ืคึผืจืืืืจื ืฆื ืืึทืฉืจืืึทืื ืึท ืงืึทื ืืืฉืึทื ืึทื ืงืึทื ืึทื ืึทืงืึทื ืึทืืืขืจืืืึทื ืืืึธืก ืืขืืึทื ืกืืจืืืฅ ืืื ืฆื ืื ืกืืจืืืขื ื ืคืื ืื ืืขืจืืขืืืืื ืืึทืงืื ื ื ืืฆื Redis. ืืืจ ืืืขืื ืจืขืื ืืืขืื ืึท ืึทืืืขืจืืืึทื ืืขืจืืคื Redlock, ืขืก ืืืคึผืืึทืืึทื ืฅ ืึท ืคืื ืื ืืขืจืืขืืืืื ืฉืืึธืก ืคืึทืจืืืึทืืืขืจ ืืื, ืืื ืืื ืืืขืจ ืืืื ืื ื, ืืขื ืึทืืืขืจืืืึทื ืืื ืกืึทืคืขืจ ืืื ืื ืืขืืืืื ืืืขื ืืืื-ืืืฉื ืฆืืืึทื ื. ืืืจ ืืึธืคื ืึทื ืื ืงืื ืืืขื ืึทื ืึทืืืื ืขืก, ืฆืืฉืืขืื ืืึทืืขืจืงืื ืืขื ืืื ื ืืฆื ืขืก ืืื ืึท ืกืืึทืจืืื ื ืคืื ื ืคึฟืึทืจ ืืขืจ ืงืึธืืคึผืืืฆืืจื ืึธืืขืจ ืึธืืืขืจื ืึทืืืื ืคึผืจืึทืืืฉืขืงืก.
ืืืคึผืืึทืืขื ืืืืฉืึทื
ืืืืืขืจ ืืืจ ืืึทื ืืืืฃ ืฆื ืื ืืึทืฉืจืืึทืืื ื ืคืื ืื ืึทืืืขืจืืืึทื, ืืืจ ืฆืืฉืืขืื ืขืืืขืืข ืืื ืงืก ืฆื ืคืึทืจืืืง ืืืคึผืืึทืืึทื ืฅ. ืืื ืงืขื ืขื ืืืื ืืขืืืืื ื ืคึฟืึทืจ ืจืขืคึฟืขืจืขื ืฅ.
ืจืขืืืึธืงืง-ืจื (ืืืคึผืืึทืืขื ืืืืฉืึทื ืคึฟืึทืจ ืจืืื). ืขืก ืืื ืืืืืืึธืคึผื Redlock-rb, ืืืึธืก ืืืกืืฃ ืึท ืคึผืขืงื (ืืืืืฉืืืื) ืคึฟืึทืจ ืื ืคืื ืคืึทืจืฉืคึผืจืืืืื ื, ืืื ื ืื ืืืืื ืคึฟืึทืจ ืืขื.Redlock-py (ืคึผืืืืึธื ืืืคึผืืึทืืขื ืืืืฉืึทื).ืึทืืึธืจืขืืืึทืง (ืืืคึผืืึทืืึทื ืืืืฉืึทื ืคึฟืึทืจ ืึทืกืื ืกืืึธ ืคึผืืืืึธื).Redlock-php (ืืืคึผืืึทืืึทื ืืืืฉืึทื ืคึฟืึทืจ PHP).PHPRedisMutex (ืื ืื ืืขืจ ืืืคึผืืึทืืขื ืืืืฉืึทื ืคึฟืึทืจ PHP)ืืฉืขืคึผืจืึทืกืึธืื/ืคืคึผ-ืจืขืืืก-ืฉืืึธืก (PHP ืืืืืืึธืืขืง ืคึฟืึทืจ ืืึทืงืก)ืจืขืืกืื ืง (ืืืคึผืืึทืืขื ืืืืฉืึทื ืคึฟืึทืจ ืืืื).Redisson (ืืืคึผืืึทืืขื ืืืืฉืึทื ืคึฟืึทืจ Java).Redis::DistLock (ืืืคึผืืึทืืขื ืืืืฉืึทื ืคึฟืึทืจ ืคึผืขืจื).Redlock-cpp (ืืืคึผืืึทืืึทื ืืืืฉืึทื ืคึฟืึทืจ C ++).Redlock-cs (ืืืคึผืืึทืืึทื ืืืืฉืึทื ืคึฟืึทืจ C # /. ื ืขืฅ).RedLock.net (ืืืคึผืืึทืืึทื ืืืืฉืึทื ืคึฟืึทืจ C # /. ื ืขืฅ). ืืื ืฉืืืฆื ืคึฟืึทืจ ืึทืกืื ืง ืืื ืฉืืึธืก ืืงืกืืขื ืฉืึทื ื.ืกืงืึทืจืืขืืืึทืง (ืืืคึผืืึทืืึทื ืืืืฉืึทื ืคึฟืึทืจ C #. ื ืขืฅ ืืื ืงืึธื ืคืืืืจืึทืืืข ืืึทืื ืงืจืึธื)Redlock4Net (ืืืคึผืืึทืืขื ืืืืฉืึทื ืคึฟืึทืจ C #. ื ืขืฅ)ื ืึธืืข-ืจืขืืืึธืงืง (ืืืคึผืืึทืืขื ืืืืฉืึทื ืคึฟืึทืจ NodeJS). ืืืื ืฉืืืฆื ืคึฟืึทืจ ืืงืกืืขื ืืื ื ืืึทืงืก.
ืืืืขืจืืืื ืืื ืึทืืืึทืืืึทืืืืืื ืืืึทืจืึทื ืืขืขืก
ืืืจ ืืืขืื ืืึธืืขื ืืื ืืืขืจ ืคึผืืึทื ืืื ืืืืื ืืจืื ืคึผืจืึธืคึผืขืจืืืขืก ืืืึธืก ืืืจ ืืจืึทืืื ืฆืืฉืืขืื ืื ืืื ืืืื ืืขืจืึทื ืืื ืฆื ืืคืขืงืืืืืื ื ืืฆื ืคืื ืื ืืขืจืืขืืืืื ืืึทืงืื ื.
- ืืืืขืจืืืึทื ืคืึทืจืืึธื: ืงืขืื ืฆืืึทืืืง ืืงืกืงืืืืฉืึทื. ืืื ืงืืื ืฆืืื, ืืืืื ืืืื ืงืืืขื ื ืงืขื ืขื ืืึทืืื ืื ืฉืืึธืก.
- ืึทืืืึทืืืึทืืืืืื ืคืึทืจืืึธื ื: ืงืืื ืืขืืืึทืงืก. ืขืก ืืื ืฉืืขื ืืืง ืืขืืืขื ืฆื ืืืืขื ืืฉืึทืืืึทืื ืงืจืืื ืึท ืฉืืึธืก, ืืคืืื ืืืื ืืขืจ ืงืืืขื ื ืืืึธืก ืืื ืคืืจืฉืคืืจื ืื ืืืื ืคืืืื ืึธืืขืจ ืืึทื ืืื ืืืืฃ ืึท ืึทื ืืขืจืฉ ืืืกืง ืึธืคึผืฉื ืื.
- ืึทืืืึทืืืึทืืืืืื ืคืึทืจืืึธื ื: ืฉืืื ืืึธืืขืจืึทื ืฅ. ืืื ืืึทื ื ืืื ืื ืืขืจืืืึทื ืคืื Redis ื ืึธืืื ืืขื ืขื ืคืืืกื ืืืง, ืงืืืืึทื ืฅ ืืขื ืขื ืืืืืืช ืฆื ืงืจืืื ืืื ืืขืืืื ื ืืึทืงืก.
ืคืืจืืืืก ืืืคึผืืึทืืขื ืืืืฉืึทื ืืืืืจื ืืืืฃ ืืืจืืคืึทื ืึธืคึผืืื ืืื ื ืืฉื ืืขื ืื ืืื ืืขื ืคืึทื
ืฆื ืคึฟืึทืจืฉืืืื ืืืึธืก ืืืจ ืืืขืื ืคึฟืึทืจืืขืกืขืจื, ืืึธืื ืืื ืื ืึทื ืึทืืืื ืื ืงืจืึทื ื ืฉืืึทื ืคืื ืขื ืื ืื ืืื ืจืืึฟ ืคืื ืื ืืขืจืืขืืืืื ืืึทืงืื ื ืืืืืจืขืจืื ืืืืืจื ืืืืฃ Redis.
ืื ืกืืืคึผืืึทืกื ืืืขื ืฆื ืฉืืึธืก ืึท ืืืื ื ืืฆื Redis ืืื ืฆื ืฉืึทืคึฟื ืึท ืฉืืืกื ืืื ืืขื ืืืึทืฉืคึผืื. ืืืคึผืืงืึทืืื, ืึท ืฉืืืกื ืืื ืืืฉืืคื ืืื ืึท ืืืืืืขื ืืขืื, ืืึธืก ืืื ืึทืืฉืืืื ืืื ืื ืืงืกืคึผืืืขืจื ืฉืืจืื ืฆืืืขืฉืืขืื ืืื Redis, ืึทืืื ืืืืขืจ ืึธืืขืจ ืฉืคึผืขืืขืจ ืืขื ืฉืืืกื ืืื ืคืจืื (ืคืึทืจืืึธื 2 ืืื ืืื ืืืขืจ ืจืฉืืื). ืืืขื ืืขืจ ืงืืืขื ื ืืึทืจืฃ ืืขืืืื ื ืื ืืืื, ืขืก ืืืืืฅ ืื ืฉืืืกื.
ืืื ืขืจืฉืืขืจ ืืืืง, ืื ืืืืืื ื ืึทืจืืขื ืืึทื ืฅ ืืื, ืึธืืขืจ ืขืก ืืื ืึท ืคึผืจืึธืืืขื: ืืื ืืืขืจ ืึทืจืงืึทืืขืงืืฉืขืจ ืงืจืืืืฅ ืึท ืืืื ืคืื ื ืคืื ืืืจืืคืึทื. ืืืึธืก ืืึทืคึผืึทื ื ืืืื ืืขืจ ืืึทืืขืืึธืก Redis ืืืึทืฉืคึผืื ืคืืืื? ืืึธืืืจ ืืขืจืืืขืจ ืืืืื ืึท ืฉืงืืึทืฃ! ืืื ืืืจ ืืืขืื ื ืืฆื ืขืก ืืืื ืื ืคึผืจืืืขื ืืขืจ ืืื ืึทื ืึทืืืืืืึทืืึทื. ืฆืื ืืึทืืืืขืจื, ืืขื ืึธืคึผืฆืืข ืืื ื ืืฉื ืืืืืึทืืึทื. ืืืจื ืืื ืืขื, ืืืจ ืืืขืื ื ืืฉื ืงืขื ืขื ืฆื ืจืขืื ืื ืกืืจืืืขื ื ืื ืงืขืื ืฆืืึทืืืง ืืงืกืงืืืืฉืึทื ืคืึทืจืืึธื ืืืึธืก ืืืจ ืืึทืจืคึฟื ืฆื ืขื ืฉืืจ ืืืืขืจืืืื, ืืืืึทื ืจืขืคึผืืึทืงืืืฉืึทื ืืื Redis ืืื ืืืกืื ืืงืจืึทื ืึทืก.
ืืึธื, ืืื ืึทืืึท ืึท ืืึธืืขื ืึท ืจืึทืกืข ืฆืืฉืืึทื ื ืึทืงืขืจื:
- ืงืืืขื ื ื ืึทืงืืืืืขืจื ืึท ืฉืืึธืก ืืืืฃ ืื ืืขื.
- ืืขืจ ืืขื ืคืืืื ืืืืืขืจ ืื ืฉืืืกื ืคึผืึธืืืฆืืข ืืื ืืจืึทื ืกืคืขืจื ืฆื ืื ืฉืงืืึทืฃ.
- ืืขืจ ืื ืืขื ืืขืจ ืืื ืคึผืจืึธืืึธืืขื ืฆื ืคืืจืขืจ.
- ืงืืืขื ื ื ืงืจืืืืฅ ืึท ืฉืืึธืก ืืืืฃ ืืขืจ ืืขืืืืงืขืจ ืืืื ืึทื ื ืืื ืฉืืื ืคืืจืฉืคืืจื. ืืืืขืจืืืื ืืืืขื!
ืืื ืขืก ืืื ืืึธืจ ื ืึธืจืืึทื ืึทื ืืื ืกืคึผืขืฆืืขื ืฆืืฉืืื ืื, ืึทืืึท ืืื ืึท ืืืจืืคืึทื, ืคืืืข ืงืืืืึทื ืฅ ืงืขื ืขื ืืึทืืื ืื ืฉืืึธืก ืืื ืืขืจ ืืขืืืืงืขืจ ืฆืืื. ืืื ืึทืืึท ืงืึทืกืขืก, ืึท ืจืขืคึผืืึทืงืืืฉืึทื-ืืืืืจื ืืืืืื ื ืงืขื ืขื ืืืื ืืขืืืขื ืื. ืึทื ืืขืจืฉ, ืืืจ ืจืขืงืึธืืขื ืืืจื ืื ืืืืืื ื ืืืกืงืจืืืื ืืื ืืขื ืึทืจืืืงื.
ืจืืืืืง ืืืคึผืืึทืืขื ืืืืฉืึทื ืืื ืึท ืืืื ืืืึทืฉืคึผืื
ืืืืืขืจ ืืืจ ืคึผืจืืืื ืฆื ืืึทืงืืืขื ืื ืฉืึธืจืืงืึธืืื ืืก ืคืื ืื ืืืื-ืื ืกืืึทืืืจื ืงืึทื ืคืืืืขืจืืืฉืึทื ืืืกืงืจืืืื ืืืืื, ืืึธืื ืืื ืื ืคึฟืึทืจืฉืืืื ืืื ืฆื ืคืืจื ืืขื ืคึผืฉืื ืคืึทื ืจืขืื, ืืืืึทื ืื ืืืืืื ื ืืื ืคืืงืืืฉ ืืืืืืง ืืื ืึทืคึผืืึทืงืืืฉืึทื ื ืืื ืึท ืจืึทืกืข ืฆืืฉืืึทื ื ืืื ืคึผืึทืกืืง ืคืื ืฆืืื ืฆื ืฆืืื, ืืื ืืืื ืืืืึทื ืืืึทืงืื ื ืืืืฃ ืึท ืืืื ืืืึทืฉืคึผืื ืกืขืจืืืขืก ืืื ืื ืืงืขืจ ืืืึธืก ืืื ืืขื ืืฆื ืืื ืื ืคืื ืื ืืขืจืืขืืืืื ืึทืืืขืจืืืึทื ืืืกืงืจืืืื ืืึธ.
ืฆื ืืึทืงืืืขื ืึท ืฉืืึธืก, ืืึธื ืืึธืก:
SET resource_name my_random_value NX PX 30000
ืืขืจ ืืึทืคึฟืขื ืื ืกืืึธืื ืึท ืฉืืืกื ืืืืื ืืืื ืขืก ืืื ื ืืฉื ืฉืืื ืขืงืกืืกืืืจื (NX ืึธืคึผืฆืืข), ืืื ืึท ืืืืืืงืืึทื ืฆืืึทื ืคืื 30000 ืืืืืกืขืงืึทื ืื (ืคึผืงืก ืึธืคึผืฆืืข). ืืขืจ ืฉืืืกื ืืื ืืึทืฉืืืื ืฆื "myrandomvalue
" ืืขืจ ืืืขืจื ืืืื ืืืื ืืื ืฆืืง ืคึฟืึทืจ ืึทืืข ืงืืืืึทื ืฅ ืืื ืึทืืข ืฉืืึธืก ืจืืงืืืขืก.
ืืืืกืืงืื, ืึท ืืจืึทืค - ืืืขืจื ืืื ืืขื ืืฆื ืฆื ืืขืฉืึธืืขื ืืึทืคืจืืึทืขื ืื ืฉืืึธืก, ืืื ืึท ืฉืจืืคื ืืืึธืก ืืขืจืฆืืืื Redis: ื ืึธืจ ืึทืจืึธืคึผื ืขืืขื ืืขื ืฉืืืกื ืืืื ืขืก ืืืืืกืฅ ืืื ืื ืืืขืจื ืกืืึธืจื ืืื ืขืก ืืื ืคึผืื ืงื ืืืึธืก ืืื ืืขืืืขื ืืขืจืืืึทืจื. ืืึธืก ืืื ืึทืืฉืืืื ืืื ืื ืคืืืืขื ืืข Lua ืฉืจืืคื:
if redis.call("get",KEYS[1]) == ARGV[1] then
return redis.call("del",KEYS[1])
else
return 0
end
ืืึธืก ืืื ืืืืืืืง ืฆื ืคืึทืจืืืึทืื ืึท ืฉืืึธืก ืคืื ืื ืื ืืขืจ ืงืืืขื ื ืฆื ืืืื ืึทืืืขืงืืขื ืืืขื. ืฆืื ืืืืฉืคึผืื, ืึท ืงืืืขื ื ืงืขื ืงืจืืื ืึท ืฉืืึธืก, ืืขืจื ืึธื ืืืขืจื ืคืืจืฉืคืืจื ืืื ืขืืืขืืข ืึธืคึผืขืจืึทืฆืืข ืืืึธืก ืืึทืกืฅ ืืขืจ ืืื ืืขืจ ืขืจืฉืืขืจ ืฉืืึธืก (ืึทืืื ืึทื ืืขืจ ืฉืืืกื ืืื ืฆืืื ืฆื ืืืกืืืื), ืืื ืฉืคึผืขืืขืจ ืืึทืืืึทืืืงื ืื ืฉืืึธืก ืืืึธืก ืขืืืขืืข ืื ืืขืจืข ืงืืืขื ื ืืื ืืขืฉืืขืื.
ื ืืฆื ืึท ืคึผืฉืื DEL ืืื ืึทื ืกืืืฃ ืืืืึทื ืึท ืงืืืขื ื ืงืขื ืขื ืืึทืืืึทืืืงื ืึท ืฉืืึธืก ืคืื ืื ืื ืืขืจ ืงืืืขื ื. ืืื ืงืึทื ืืจืึทืกื, ืืืขื ื ืืฆื ืื ืืืืื ืฉืจืืคื, ืืขืืขืจ ืฉืืึธืก ืืื "ืืขืืชืืขื" ืืื ืึท ืืจืึทืค ืฉืืจืืงื, ืึทืืื ืืืืื ืืขืจ ืงืืืขื ื ืืืึธืก ืคืจืืขืจ ืืขืฉืืขืื ืขืก ืงืขื ืขื ืืึทืืืึทืืืงื ืขืก.
ืืืึธืก ืืึธื ืืขื ืืจืึทืค - ืฉืืจืืงื ืืืื? ืืื ืืื ืืขืกืื ื ืขืก ืืึธื ืืืื 20 ืืืืขืก ืคึฟืื /dev/urandom, ืึธืืขืจ ืืืจ ืงืขื ืขื ืืขืคึฟืื ืขื ืืืืื ืืงืขืจ ืืืึทืขืจ ืืืขืื ืฆื ืืึทืื ืื ืฉืืจืืงื ืืื ืฆืืง ืืขื ืื ืคึฟืึทืจ ืืืื ืฆืืืขืงื. ืคึฟืึทืจ ืืืึทืฉืคึผืื, ืขืก ืืืึธืื ืืืื ืคืืึทื ืฆื ืืืืืขื RC4 ืืื /dev/urandom ืืื ืืขืจื ืึธื ืืืฉืขื ืขืจืืื ืึท ืคึผืกืขืืืืึธ-ืจืึทื ืืึธื ืืืึทื ืคึฟืื ืขืก. ื ืกืืืคึผืืขืจ ืืืืืื ื ืื ืืืึทืืืื ืึท ืงืึธืืืื ืึทืฆืืข ืคืื โโืืื ืืงืก ืฆืืื ืืื ืืืงืจืึธืกืขืงืึธื ื ืืึทืืืึธืืข ืคึผืืืก ืื ืงืืืขื ื ืฉืืึทื; ืขืก ืืื ื ืืฉื ืึทืืื ืืืืขืจ, ืึธืืขืจ ืขืก ืืื ืืืกืืึธืืข ืึทืจืืืฃ ืฆื ืื ืึทืจืืขื ืืื ืจืืึฟ ืงืึทื ืืขืงืกืฅ.
ืื ืฆืืื ืืืึธืก ืืืจ ื ืืฆื ืืื ืึท ืืึธืก ืคืื ืืขื ืฉืืืกื ืก ืืขืื ืืื ืืขืจืืคื ืื "ืฉืืึธืก ืืขืื". ืืขืจ ืืืขืจื ืืื ืืืืืข ืื ืฆืืื ืืืืืขืจ ืื ืฉืืึธืก ืืื ืืืืืึธืืึทืืืฉ ืจืขืืขืึทืกืขื ืืื ืื ืฆืืื ืืืึธืก ืึท ืงืืืขื ื ืืื ืฆื ืคืึทืจืขื ืืืงื ืึทื ืึธืคึผืขืจืึทืฆืืข ืืืืืขืจ ืื ืื ืืขืจ ืงืืืขื ื ืงืขื ืคืึทืจืฉืืืกื ืืขื ืืืื, ืึธื ืึทืงืฉืื ืืืืืึทืืืืืื ื ืงืขืื ืฆืืึทืืืง ืืงืกืงืืืืฉืึทื ืืขืจืึทื ืืื. ืื ืืึทืจืึทื ืืืจื ืืื ืืืืืืขื ืืืืื ืฆื ืึท ืืืืขืจ ืคึฟืขื ืฆืืขืจ ืคืื ืฆืืื, ืืืึธืก ืืืืื ืืื ืึธื ืคืื ืืขื ืืึธืืขื ื ืืืขื ืื ืฉืืึธืก ืืื ืคึผืขืจืืฉืึทืกื.
ืึทืืื ืืืจ ืืึธืื ืืืกืงืึทืกื ืึท ืืื ืืืขื ืฆื ืงืจืืื ืืื ืืขืืืื ื ืึท ืฉืืึธืก. ืื ืกืืกืืขื (ืืืื ืืืจ ืืขื ืขื ืืขืจืขืื ืืืขืื ืึท ื ืื-ืคืึทืจืฉืคึผืจืืืื ืกืืกืืขื ืงืึทื ืกืืกืืื ื ืคืื ืึท ืืืื ืืื ืฉืืขื ืืืง ืื ืืืฆื ืืืึทืฉืคึผืื) ืืื ืืืืขืจ. ืืื ืก ืคืึทืจืืจืืืืขืจื ืืขื ืืึทืืจืืฃ ืฆื ืึท ืคืื ืื ืืขืจืืขืืืืื ืกืืกืืขื, ืืื ืืืจ ืืึธืื ืงืืื ืึทืืึท ืืขืจืึทื ืืื.
Redlock ืึทืืืขืจืืืึทื
ืื ืคืื ืื ืืขืจืืขืืืืื ืืืขืจืกืืข ืคืื โโโโืื ืึทืืืขืจืืืึทื ืึทืกืืื ืึทื ืืืจ ืืึธืื N Redis ืืืจื. ืื ื ืึธืืื ืืขื ืขื ืืึธืจ ืคืจืืึท ืคืื ืืขืืขืจ ืื ืืขืจืขืจ, โโืึทืืื ืืืจ ืืึธื ื ืื ื ืืฆื ืจืขืคึผืืึทืงืืืฉืึทื ืึธืืขืจ ืงืืื ืื ืืขืจืข ืืืคึผืืืกืึทื ืงืึธืืึธืจืืึทื ืืืฉืึทื ืกืืกืืขื. ืืืจ ืืึธืื ืฉืืื ืงืึทืืืขืจื ืืื ืฆื ืกืืงืืืจืื ืงืจืืื ืืื ืืขืืืื ื ืึท ืฉืืึธืก ืืื ืึท ืืืื ืืืึทืฉืคึผืื. ืืืจ ื ืขืืขื ืขืก ืคึฟืึทืจ ืืขืืขืื ืึทื ืืขืจ ืึทืืืขืจืืืึทื, ืืืขื ืืจืืขืื ืืื ืึท ืืืื ืืืึทืฉืคึผืื, ืืืขื ื ืืฆื ืคึผืื ืงื ืืขื ืืืคึฟื. ืืื ืืื ืืืขืจ ืืืืฉืคืืื ืืืจ ืฉืืขืื N ืฆื 5, ืืืึธืก ืืื ืึท ืืืืึทื ืืืขืจื. ืืืื, ืืืจ ืืึทืจืคึฟื ืฆื ื ืืฆื 5 Redis ืืืจื ืืืืฃ ืคืึทืจืฉืืืขื ืข ืงืึธืืคึผืืืืขืจืก ืึธืืขืจ ืืืืจืืืึทื ืืืฉืื ืขื ืฆื ืขื ืฉืืจ ืึทื ืืื ืืึทื ืืืขื ืืึทืจืืขืื ืื ืืืคึผืขื ืืึทื ืืื ืคืื ืืขืืขืจ ืื ืืขืจืขืจ.
ืฆื ืงืจืืื ืึท ืฉืืึธืก, ืืขืจ ืงืืืขื ื ืคึผืขืจืคืึธืจืื ืื ืคืืืืขื ืืข ืึทืคึผืขืจืืืฉืึทื ื:
- ืืขืฅ ืื ืงืจืึทื ื ืฆืืื ืืื ืืืืืกืขืงืึทื ืื.
- ืกืึทืงืืืขื ืืฉืึทืื ืคืจืืืื ืฆื ืืึทืงืืืขื ืึท ืฉืืึธืก ืืื ืึทืืข N ืื ืกืืึทื ืกืื, ื ืืฆื ืื ืืขืืืข ืฉืืืกื ื ืึธืืขื ืืื ืืจืึทืค ืืืึทืืืขืก ืืื ืึทืืข ืงืึทืกืขืก. ืืื ืกืืึทืืข 2, ืืืขื ืืขืจ ืงืืืขื ื ืืึทืฉืืขืืืงื ืึท ืฉืืึธืก ืืืืฃ ืึท ืคึผืขืจ-ืื ืกืืึทืื ืืงืขืจ, ืืขืจ ืงืืืขื ื ื ืืฆื ืึท ืคืึทืจืืึทืืื ืฆื ืงืจืืื ืขืก ืืืึธืก ืืื ืงืืจืฅ ืืขื ืื ืงืึทืืคึผืขืจื ืฆื ืื ืฆืืื ื ืึธื ืืืึธืก ืื ืฉืืึธืก ืืื ืืืืืึธืืึทืืืฉ ืืืคืจืืื. ืคึฟืึทืจ ืืืึทืฉืคึผืื, ืืืื ืื ืืืึทืงืื ื ืืขืืืืขืจ ืืื 10 ืกืขืงืื ืืขืก, ืื ืคืึทืจืืึทืืื ืงืขื ืืืื ืืื ืื ืงืืื ืคืื ~ 5-50 ืืืืืกืขืงืึทื ืื. ืืึธืก ืืืืืึทื ืืืฅ ืื ืกืืืืึทืฆืืข ืืื ืืืึธืก ืืขืจ ืงืืืขื ื ืงืขื ืืืืืื ืืืึทืงื ืคึฟืึทืจ ืึท ืืึทื ื ืฆืืึทื ืืจืืื ื ืฆื ืืขืจืืจืืืื ืึท ื ืื ืึทื ืืขืจืฉ ืจืขืืืก ื ืึธืืข: ืืืื ืืขืจ ืืืึทืฉืคึผืื ืืื ืึทื ืึทืืืืืืึทืืึทื, ืืืจ ืคึผืจืืืืจื ืฆื ืคืึทืจืืื ืื ืฆื ืื ืื ืืขืจ ืืืึทืฉืคึผืื ืืื ืืึทืื ืืื ืืขืืืขื.
- ืฆื ื ืขืืขื ืึท ืฉืืึธืก, ืืขืจ ืงืืืขื ื ืงืึทืืงืืึทืืืืฅ ืืื ืคืื ืฆืืึทื ืืื ืืืึทืคึผืกื; ืฆื ืืึธื ืืึธืก, ืขืก ืกืึทืืืจืึทืงืฅ ืคืื ืื ืคืึทืงืืืฉ ืฆืืื ืืืขืจื ืื ืฆืืื ืกืืึทืืคึผ ืืืึธืก ืืื ืืขืืืขื ืืืงืืืขื ืืื ืฉืจืื 1. ืืืื ืืื ืืืืื ืืืื ืืขืจ ืงืืืขื ื ืืื ืืืืืืช ืฆื ืืึทืงืืืขื ืื ืฉืืึธืก ืืืืฃ ืื ืืขืจืืืึทื ืคืื ืื ืกืืึทื ืกืื (ืืคึผืืืช 3), ืืื ืื ืืึทื ืฅ ืฆืืื ืขืก ืืขื ืืืขื ืฆื ืืึทืงืืืขื ืื ืฉืืึธืก, ืืืืื ืืงืขืจ ืืื ืื ืฉืืึธืก ืืขืืืืขืจ, ืื ืฉืืึธืก ืืื ืืืืจืืื ืฆื ืืืื ืืืงืืืขื.
- ืืืื ืึท ืฉืืึธืก ืืื ืงืื ื, ืื ืฉืืึธืก ืืขืืืืขืจ ืืื ืืขื ืืืขื ืฆื ืืืื ืืขืจ ืึธืจืืืื ืขื ืฉืืึธืก ืืขืืืืขืจ ืืื ืืก ืื ืืืึทืคึผืกื ืฆืืื ืงืึทืืงืืึทืืืืืื ืืื ืฉืจืื 3.
- ืืืื ืืขืจ ืงืืืขื ื ืคืืืื ืฆื ืืึทืงืืืขื ืืขื ืฉืืึธืก ืคึฟืึทืจ ืขืืืขืืข ืกืืื (ืึธืืขืจ ืขืก ืืื ืืขืืืขื ื ืื ืืืืืืช ืฆื ืคืึทืจืฉืคึผืึทืจื N/2+1 ืื ืกืืึทื ืกืื, ืึธืืขืจ ืื ืฉืืึธืก ืืขืืืืขืจ ืืื ื ืขืืึทืืืื), ืขืก ืืืขื ืคึผืจืืืื ืฆื ืืคืฉืืืกื ืึทืืข ืื ืกืืึทื ืกืื (ืืคืืื ืื ืืืึธืก ืขืก ืืขืืึทื ืง ืขืก ืงืขื ื ืืฉื ืคืึทืจืฉืคึผืึทืจื ).
ืืื ืืขืจ ืึทืืืขืจืืืึทื ืืืกืื ืืงืจืึทื ืึทืก?
ืืขืจ ืึทืืืขืจืืืึทื ืืื ืืืืืจื ืืืืฃ ืื ืืึทืฉืึธืจืข ืึทื ืืึธืืฉ ืขืก ืืื ืงืืื ืกืื ืืงืจืึทื ืืืื ืืืืืขืจ ืืืืฃ ืืืึธืก ืึทืืข ืคึผืจืึทืกืขืกืึทื ืืืึธืื ืึทืจืืขื, ืืืืข ืฆืืื ืืื ืืขืืขืจ ืคึผืจืึธืฆืขืก ื ืึธื ืคืืึธืื ืืื ืืขืขืจืขื ืืขืจ ืืขืืืืงืขืจ ืืึทื ื, ืืื ืืขืจ ืืขืืช ืืื ืงืืืื ืงืึทืืคึผืขืจื ืฆื ืื ืืึทื ืฅ ืฆืืื ื ืึธื ืืืึธืก ืื ืฉืืึธืก ืืื. ืืืืืึธืืึทืืืฉ ืืืคืจืืื. ืื ืืึทืฉืึธืจืข ืืื ืืืืขืจ ืขื ืืขื ืฆื ืื ืกืืืืึทืฆืืข ืืืคึผืืฉ ืคึฟืึทืจ ืคึผืจืึธืกื ืงืึธืืคึผืืืืขืจืก: ืืขืืขืจ ืงืึธืืคึผืืืืขืจ ืืื ืึท ืืืืข ืืืืืขืจ, ืืื ืืืจ ืงืขื ืขื ืืืืฉืึทืืืึทืื ืจืขืืขื ืขื ืืืืฃ ืื ืคืึทืงื ืึทื ืื ืฆืืื ืืืืืง ืฆืืืืฉื ืคืึทืจืฉืืืขื ืข ืงืึธืืคึผืืืืขืจืก ืืื ืงืืืื.
ืืื ืืขื ืคืื ื, ืืืจ ืืืื ืืขืจ ืงืขืจืคืึทืื ืคืึธืจืืืืืจื ืืื ืืืขืจ ืงืขืื ืฆืืึทืืืง ืืงืกืงืืืืฉืึทื ืืขืจืฉื: ืงืขืื ืฆืืึทืืืง ืืงืกืงืืืืฉืึทื ืืื ืืขืจืึทื ืืื ืืืืื ืืืื ืืขืจ ืงืืืขื ื ืืืึธืก ืืืื ืืขื ืฉืืึธืก ืืืื ืึทืจืืืก ืืื ืื ืฆืืื ืืืึธืก ืื ืฉืืึธืก ืืื ืืืืืืง (ืืขื ืืืขืจื ืืืงืืืขื ืืื ืฉืจืื 3), ืืื ืืก ืขืืืขืืข ืืขืจ ืฆืืื (ืืึทื ืฅ ืึท ืืืกื) ืืืืืกืขืงืึทื ืื ืฆื ืคืึทืจืืืืืงื ืคึฟืึทืจ ืื ืฆืืื ืืืืืง ืฆืืืืฉื ืคึผืจืึทืกืขืกืึทื).
ืื ืคืืืืขื ืืข ืืฉืืงืึทืืืข ืึทืจืืืงื ืืขืจืฆืืืื ืืขืจ ืืืขืื ืึทืืึท ืกืืกืืขืืขื ืืืึธืก ืืึทืจืคื ืงืึธืืึธืจืืึทื ืืืฉืึทื ืคืื ืฆืืื ืื ืืขืจืืืึทืื:
ืคืจืืืืจื ืืืืืขืจ ืืืืฃ ืืืจืืคืึทื
ืืืขื ืึท ืงืืืขื ื ืคืืืื ืฆื ืงืจืืื ืึท ืฉืืึธืก, ืขืก ืืืื ืคึผืจืืืืจื ืืืืืขืจ ื ืึธื ืึท ืืจืึทืค ืคืึทืจืืึทืืื; ืืึธืก ืืื ืืขืืื ืฆื ืืข-ืกืื ืืงืจืึทื ืืื ืงืืืคื ืงืืืืึทื ืฅ ืืจืืื ื ืฆื ืงืจืืื ืึท ืฉืืึธืก ืืืืฃ ืืขืจ ืืขืืืืงืขืจ ืืืื ืืื ืืขืจ ืืขืืืืงืขืจ ืฆืืื (ืืืึธืก ืงืขื ืขื ืคืืจื ืฆื ืึท "ืฉืคึผืึทืืื ืืึทืจื" ืกืืืืึทืฆืืข ืืื ืืืึธืก ืขืก ืืขื ืขื ืงืืื ืืืื ืขืจื). ืืขืจืฆื, ืื ืคืึทืกืืขืจ ืึท ืงืืืขื ื ืคืจืืืื ืฆื ืงืจืืื ืึท ืฉืืึธืก ืืืืฃ ืึท ืืขืจืืืื ืคืื Redis ืื ืกืืึทื ืกืื, ืื ื ืขืจืึธืืขืจ ืื ืคึฟืขื ืฆืืขืจ ืืื ืืืึธืก ืึท ืฉืคึผืึทืืื ืืึทืจื ืกืืืืึทืฆืืข ืงืขื ืขื ืคึผืึทืกืืจื (ืืื ืื ืืืืื ืืงืขืจืข ืื ื ืืื ืคึฟืึทืจ ืจืืืจืืื). ืืขืจืืืขืจ, ืืืืืื, ืืขืจ ืงืืืขื ื ืืึธื ืคึผืจืืืืจื ืฆื ืฉืืงื SET ืงืึทืืึทื ืื ืฆื N ืื ืกืืึทื ืกืื ืกืืืืึทืืืืื ืืึทืกืื ื ืืฆื ืืืืืืคึผืืขืงืกืื ื.
ืขืก ืืื ืืืื ืฆื ืื ืืขืจืฉืืจืืึทืื ืืึธ ืืื ืืืืืืืง ืขืก ืืื ืคึฟืึทืจ ืงืืืืึทื ืฅ ืืืึธืก ืืึธื ื ืื ืงืจืืื ืื ืืขืจืืืึทื ืคืื ืืึทืงืก ืฆื ืืึทืคืจืืึทืขื ืื (ืืืื) ืงืื ื ืืึทืงืก, ืึทืืื ืืื ืืึธื ื ืื ืืึธืื ืฆื ืืืึทืจืื ืืื ืืขืจ ืฉืืืกื ืืืขื ืืืกืืืื ืืืืืขืจ ืื ืฉืืึธืก ืืืืฃ ืื ืืืื ืงืขื ืขื ืืืื ืงืื ื ืืืืืขืจ (ืืึธืืฉ ืืืื ื ืขืฅ ืคืจืึทืืืึทื ืืืืฉืึทื ืึทืงืขืจื, ืืื ืืขืจ ืงืืืขื ื ืคืืจืืืจื ืงืึธื ืืึทืงื ืืื ืื Redis ืื ืกืืึทื ืกืื, ืืืจ ืืึธืื ืฆื ืืึทืฆืึธืื ืึท ืึทืืืืืืึทืืืืืื ืฉืืจืึธืฃ ืืฉืขืช ืืืืจืื ืคึฟืึทืจ ืื ืฉืืืกื ืฆื ืืืกืืืื).
ืจืืืืกืื ื ืื ืฉืืึธืก
ืจืืืืกืื ื ืึท ืฉืืึธืก ืืื ืึท ืคึผืฉืื ืึธืคึผืขืจืึทืฆืืข ืืืึธืก ืคืฉืื ืจืืงืืืืืขืจื ืึทื ืืึทืงืื ื ืึทืืข ืื ืกืืึทื ืกืื, ืจืึทืืึทืจืืืึทืก ืคืื ืฆื ืืขืจ ืงืืืขื ื ืืืืก ืฆื ืืึธืื ืืฆืืื ืคืืจืฉืคืืจื ืึท ืืึทืืื ืืขืจ ืืืึทืฉืคึผืื.
ืืืืขืจืืืื ืงืึธื ืกืืืขืจืึทืืืึธื ืก
ืืื ืืขืจ ืึทืืืขืจืืืึทื ืืืืขืจ? ืืื ืก ืคึผืจืืืืจื ืฆื ืืืึทืืืฉืึทื ืืืึธืก ืืึทืคึผืึทื ื ืืื ืคืึทืจืฉืืืขื ืข ืกืื ืขืจืืึธืื.
ืฆื ืึธื ืืืืื ืืื, ืืึธืืืจ ืืืขืจื ืขืืขื ืึทื ืืขืจ ืงืืืขื ื ืืื ืืืืืืช ืฆื ืืึทืงืืืขื ืึท ืฉืืึธืก ืืื ืจืืึฟ ืงืึทืกืขืก. ืืขืืขืจ ืืืึทืฉืคึผืื ืืืขื ืึทื ืืืึทืืื ืึท ืฉืืืกื ืืื ืืขืจ ืืขืืืืงืขืจ ืืขืื ืคึฟืึทืจ ืึทืืข. ืึธืืขืจ, ืืขืืขืจ ืคืื ืื ืฉืืืกืืขื ืืื ืืื ืกืืึทืืืจื ืืื ืึท ืึทื ืืขืจืฉ ืฆืืื, ืึทืืื ืืื ืืืขืื ืืืกืืืื ืืื ืคืึทืจืฉืืืขื ืข ืฆืืื. ืึธืืขืจ, ืืืื ืืขืจ ืขืจืฉืืขืจ ืฉืืืกื ืืื ืืื ืกืืึทืืืจื ืืื ืึท ืฆืืื ื ืื ืขืจืืขืจ ืืื T1 (ืื ืฆืืื ืืืึธืก ืืืจ ืงืืืึทืื ืืืืืขืจ ืงืึธื ืืึทืงื ืื ืขืจืฉืืขืจ ืกืขืจืืืขืจ), ืืื ืื ืืขืฆืืข ืฉืืืกื ืืื ืืื ืกืืึทืืืจื ืืื ืึท ืฆืืื ื ืื ืขืจืืขืจ ืืื ื 2 (ืื ืฆืืื ืืื ืืืึธืก ืื ืขื ืืคืขืจ ืืื ืืืงืืืขื. ืคืื ืื ืืขืฆืืข ืกืขืจืืืขืจ), ืืืจ ืืขื ืขื ืืืืขืจ ืึทื ืืขืจ ืขืจืฉืืขืจ ืฉืืืกื ืืื ืืขื ืืึทื ื ืืืึธืก ืืงืกืคึผืืืขืจื ืืืขื ืืืืึทืื ืืขืื ืืื ืืื ืืกืืขืจ MIN_VALIDITY=TTL-(T2-T1)-CLOCK_DRIFT
. ืึทืืข ืื ืืขืจืข ืฉืืืกืืขื ืืืขื ืืืกืืืื ืฉืคึผืขืืขืจ, ืึทืืื ืืืจ ืงืขื ืขื ืืืื ืืืืขืจ ืึทื ืึทืืข ืฉืืืกืืขื ืืขื ืขื ืกืืืืึทืืืืื ืืึทืกืื ืืืืืืง ืคึฟืึทืจ ืืืึท ืืื ืืกืืขืจ ืืขื ืืึธื.
ืืื ืืขืจ ืฆืืื ืืืึธืก ืจืืึฟ ืฉืืืกืืขื ืืืืืื ืืืืืืง, ืื ืื ืืขืจ ืงืืืขื ื ืืืขื ื ืืฉื ืงืขื ืขื ืฆื ืงืจืืื ืืขื ืฉืืึธืก, ืืืืึทื N/2+1 SET NX ืึทืคึผืขืจืืืฉืึทื ื ืงืขื ืขื ื ืืฉื ืืืื ืืขืจืึธืื ืืืื N/2+1 ืฉืืืกืืขื ืฉืืื ืขืงืกืืกืืืจื. ืืขืจืืืขืจ, ืึทืืึธื ืึท ืฉืืึธืก ืืื ืงืื ื, ืขืก ืืื ืืืืืขืืืขื ืฆื ืงืจืืื ืขืก ืืืืืขืจ ืืื ืืขืจ ืืขืืืืงืขืจ ืืึธืืขื ื (ืืึธืก ืืืึธืื ืึธื ืจืืจื ืื ืงืขืื ืฆืืึทืืืง ืืงืกืงืืืืฉืึทื ืคืึทืจืืึธื).
ืึธืืขืจ, ืืืจ ืืืืื ืฆื ืืึทืื ืืืืขืจ ืึทื ืงืืืคื ืงืืืืึทื ืฅ ืืจืืื ื ืฆื ืงืจืืื ืึท ืฉืืึธืก ืืื ืืขืจ ืืขืืืืงืขืจ ืฆืืื ืงืขื ืขื ื ืืฉื ืืืื ืืขืจืึธืื ืืื ืืขืจ ืืขืืืืงืขืจ ืฆืืื.
ืืืื ืืขืจ ืงืืืขื ื ืืื ืคืืจืฉืคืืจื ืื ืืขืจืืืึทื ืคืื ืื ืกืืึทื ืกืื ืคึฟืึทืจ ืืืขืื ืึธืืขืจ ืืขืจ ืืื ืื ืืึทืงืกืืืื ืฉืืึธืก ืืขืืืืขืจ, ืขืก ืืืขื ืืึทืืจืึทืืื ืื ืฉืืึธืก ืคืึทืจืงืจืืคึผืื ืืื ืืคืฉืืืกื ืื ืื ืกืืึทื ืกืื. ืืขืจืืืขืจ, ืืืจ ื ืึธืจ ืืึธืื ืฆื ื ืขืืขื ืืื ืืฉืืื ืื ืคืึทื ืืื ืืืึธืก ืืขืจ ืงืืืขื ื ืืขืจืืื ืฆื ืคืึทืจืฉืคึผืึทืจื ืื ืืขืจืืืึทื ืคืื ืื ืกืืึทื ืกืื ืืื ืึท ืฆืืื ืืืืื ืืงืขืจ ืืื ืื ืขืงืกืคึผืขืจืืืฉืึทื ืืึธื. ืืื ืืขื ืคืึทื, ืืืขืื ืื ืืืืื ืึทืจืืืืขื ื, ืืขืฉืึทืก ืื ืฆืืึทื MIN_VALIDITY
ืงืืื ืงืืืขื ื ืืึธื ืงืขื ืขื ืฆืืจืืงืงืจืืื ืืขื ืฉืืึธืก. ืืขืจืืืขืจ, ืคืืืข ืงืืืืึทื ืฅ ืงืขื ืขื ืฉืืึธืก N/2+1 ืงืึทืกืขืก ืืื ืืขืจ ืืขืืืืงืขืจ ืฆืืื (ืืืึธืก ืขื ืืก ืืื ืื ืกืืฃ ืคืื ืืื ืข 2) ืืืืื ืืืขื ืื ืฆืืื ืฆื ืคืึทืจืฉืืืกื ืื ืืขืจืืืื ืืื ืืขืืืขื ืืจืขืกืขืจ ืืื ืื TTL ืฆืืื, ืืืึธืก ืืืื ืื ืฉืืึธืก ืคืึทืจืงืจืืคึผืื.
ืงืขื ืขื ืืืจ ืฆืืฉืืขืื ืึท ืคืึธืจืืึทื ืืขืจืืืืึทื ืคืื ืืืืขืจืืืื, ืึธื ืืืืึทืื ืืืืืกืืื ื ืขื ืืขื ืึทืืืขืจืืืึทืื ืึธืืขืจ ืืขืคึฟืื ืขื ืึท ืืฉืืง ืืื ืื ืืืืื?
ืึทืงืกืขืกืึทืืืืืื ืงืึธื ืกืืืขืจืึทืืืึธื ืก
ืกืืกืืขื ืึทืืืืืืึทืืืืึทืื ืืขืคึผืขื ืืก ืืืืฃ ืืจืืึท ืืืืคึผื ืงืขืจืึทืงืืขืจืืกืืืงืก:
- ืึธืืึทืืึทืืืง ืืขืืืื ื ืืึทืงืก (ืืื ืื ืฉืืืกืืขื ืืืกืืืื): ืฉืืืกืืขื ืืืขื ืืืืขื ืืฉืึทืืืึทืื ืืืื ืืืจืขืืืืื ืืืืืขืจ ืฆื ืืืื ืืขืืืืื ื ืคึฟืึทืจ ืืึทืงืก.
- ืืขืจ ืคืึทืงื ืึทื ืงืืืืึทื ืฅ ืืืืฉืึทืืืึทืื ืืขืืคื ืืขืืขืจ ืื ืืขืจืข ืืืจื ืืึทืืืึทืืืงืื ื ืืึทืงืก ืืืขื ืืขืจ ืืขืืืืื ืฉืืึธืก ืืื ื ืืฉื ืงืื ื, ืึธืืขืจ ืืื ืงืื ื ืืื ืื ืึทืจืืขื ืืื ืืขืขื ืืืงื; ืึทืืื ืขืก ืืื ืืกืชึผืื ืึทื ืืืจ ืืืขืื ื ืืฉื ืืึธืื ืฆื ืืืึทืจืื ืคึฟืึทืจ ืื ืฉืืืกืืขื ืฆื ืืืกืืืื ืฆื ืจืืึทืงืืืืืจืื ื ืื ืฉืืึธืก.
- ืืขืจ ืคืึทืงื ืึทื ืืืขื ืึท ืงืืืขื ื ืืึทืจืฃ ืฆื ืคึผืจืืืืจื ืืืืืขืจ ืฆื ืงืจืืื ืึท ืฉืืึธืก, ืขืก ืืืืจื ืคึฟืึทืจ ืึท ืงืึทืืคึผืขืจืึทืืืืืื ืืขืจ ืฆืืื ืืื ืื ืฆืืื ืืืึธืก ืืื ืคืืจืืื ืื ืฆื ืงืจืืื ืจืืึฟ ืืึทืงืก. ืืึธืก ืจืึทืืืกืึทื ืื ืืืงืขืืืืึธืึธื ืคืื ืึท ืฉืคึผืึทืืื-ืืึทืจื ืกืืืืึทืฆืืข ืขืจืืืืื ื ืืืขื ืงืึทืืคึผืืืื ื ืคึฟืึทืจ ืจืขืกืืจืกื.
ืึธืืขืจ, ืขืก ืืื ืึท ืึทืืืืืืึทืืืืืื ืฉืืจืึธืฃ ืืืืึทื ืฆื ืื TTL ืคืื ืื ื ืขืฅ ืกืขืืืึทื ืฅ, ืึทืืื ืืืื ืขืก ืืขื ืขื ืงืึทื ืืืืืืึทืก ืกืขืืืึทื ืฅ, ืื ืฉืืจืึธืฃ ืงืขื ืืืื ืื ืืขืคืึทื ืึทื. ืืึธืก ืึทืงืขืจื ืืืขื ืึท ืงืืืขื ื ืึทืงืืืืืขืจื ืึท ืฉืืึธืก ืืื ืืขืืึธืื ืจืืคึผืก ืึทืืืขืง ืฆื ืื ืื ืืขืจ ืึธืคึผืฉื ืื ืืืืืขืจ ืขืก ืงืขื ืขื ืืขืืืื ื ืขืก.
ืืื ืคึผืจืื ืฆืืคึผ, ืืขืืขืื ืื ืคืึทื ืึทื ืงืึทื ืืืืืืึทืก ื ืขืฅ ืกืขืืืึทื ืฅ, ืึท ืกืืกืืขื ืงืขื ืขื ืืืืึทืื ืึทื ืึทืืืืืืึทืืึทื ืคึฟืึทืจ ืึท ืื ืคืึทื ืึทื ืฆืืื.
ืคืึธืจืฉืืขืืื ื, ืคืืืืึธืืืขืจ ืืื ืคืกืื ืง
ืคืืืข ืืขื ืืฉื ื ืืฆื Redis ืืืืึทื ืืื ืืึทืจืคึฟื ืืืื ืฉืืึธืก ืกืขืจืืืขืจ ืคืึธืจืฉืืขืืื ื ืืื ืืขืจืืื ืขื ืคืื ืื ืืืืืึทื ืกื ืคืืจืืื ืื ืฆื ืงืจืืื ืืื ืืขืืืื ื ืืึทืงืก, ืืื ืื ื ืืืขืจ ืคืื ืึทืงืืืึทืืืฉืึทื ื / ืจืืืืกืื ืืืึธืก ืงืขื ืขื ืืืื ืืขืขื ืืืงื ืคึผืขืจ ืกืขืงืื ืืข. ืฆื ืืจืขืคื ืืขื ืคืึธืืขืจืื ื, ืขืก ืืื ืึท ืกืืจืึทืืขืืืข ืฆื ืืืขืจืืขืื ืืื N Redis ืกืขืจืืืขืจืก ืฆื ืจืขืืืฆืืจื ืืืืืึทื ืกื. ืืึธืก ืืื ืึท ืืืืืืคึผืืขืงืกืื ื ืกืืจืึทืืขืืืข (ืึธืืขืจ "ืจืขืืข ืืขื ืืฉื ืก ืืืืืืคึผืืขืงืกืื ื", ืืื ืื ืืึธืืขื ืืื ืฉืืขืื ืืื ื ืื-ืืืึทืงืื ื ืืึธืืข, ืกืขื ืื ืึทืืข ืงืึทืืึทื ืื ืืื ืืืืขื ื ืื ืงืึทืืึทื ืื ืฉืคึผืขืืขืจ, ืึทืกืืืื ื ืึทื ืื ืงืืึทืืขืืืง-ืืึทืืืข ืฆืืื ืฆืืืืฉื ืืขื ืงืืืขื ื ืืื ืืขืืขืจ ืืืึทืฉืคึผืื ืืื ืขื ืืขื) .
ืึธืืขืจ, ืืืจ ืืืื ืืึธืื ืฆื ื ืขืืขื ืืื ืืฉืืื ืื ืืึทืืจืึทืืืื ื ืคืืจืืื ืื ืืื ืืึทื ื-ืืขืจืืื ืืึทืื ืกืืึธืจืืืืฉ ืืืื ืืืจ ืฉืืจืขืื ืฆื ืฉืึทืคึฟื ืึท ืืึธืืขื ืืื ืคืึทืจืืึธืืืขื ืึธืคึผืืื ืคืื ืคืืืืืขืจื.
ืืึทืกืืงืึทืืื, ืฆื ืืขืจืงืืขืจื ืืขื ืึทืจืืืกืืขืื, ืืึธืื ืืื ืื ืืืขืจื ืขืืขื ืึทื ืืืจ ืงืึทื ืคืืืืขืจ Redis ืืื ืงืืื ืืึทื ื-ืืขืจืืื ืืึทืื ืกืืึธืจืืืืฉ. ืืขืจ ืงืืืขื ื ืืึทื ืืืืฉืื ืฆื ืคืึทืจืฉืคึผืึทืจื 3 ืคืื 5 ืื ืกืืึทื ืกืื. ืืืื ืขืจ ืคืื ืื ืื ืกืืึทื ืกืื ืึทื ืืขืจ ืงืืืขื ื ืืขืจืืื ืฆื ืคืึทืจืฉืคึผืึทืจื ืืื ืจืืกืืึทืจืืื, ืืื ืืื ืืขื ืืึธืืขื ื ืขืก ืืขื ืขื 3 ืื ืกืืึทื ืกืื ืืืืืขืจ ืคึฟืึทืจ ืืขืจ ืืขืืืืงืขืจ ืืืื, ืืืึธืก ืืืจ ืงืขื ืขื ืคืึทืจืฉืคึผืึทืจื, ืืื ืื ืื ืืขืจ ืงืืืขื ื ืงืขื ืขื, ืืื ืงืขืจ, ืคืึทืจืฉืคึผืึทืจื ืื ืจืืกืืึทืจืืื ืืืึทืฉืคึผืื, ืืืืืึทืืืืืื ื ืื ืืืืขืจืืืื ืคืึทืจืืึธื ืึทื ืึทืกืืื ืขืงืกืงืืืกืืืืึทืื ืคืื ืืึทืงืก.
ืืืื ืืืจ ืืขืื ืืึทืื ืคืึธืจืืืก (AOF), ืื ืกืืืืึทืฆืืข ืืืขื ืคึฟืึทืจืืขืกืขืจื ืึท ืืืกื. ืคึฟืึทืจ ืืืึทืฉืคึผืื, ืืืจ ืงืขื ืขื ืืขืืขืจื ืึท ืกืขืจืืืขืจ ืืืจื ืฉืืงื ืื SHUTDOWN ืืึทืคึฟืขื ืืื ืจืืกืืึทืจืืื ื ืขืก. ืืื ื ืขืงืกืคึผืขืจืืืฉืึทื ืึทืคึผืขืจืืืฉืึทื ื ืืื Redis ืืขื ืขื ืกืขืืึทื ืืืงืึทืืื ืืืคึผืืึทืืขื ืึทื ืืื ืึทืืึท ืึท ืืืขื ืึทื ืฆืืื ืืืื ืฆื ืืืืคื ืืคืืื ืืืขื ืื ืกืขืจืืืขืจ ืืื ืืืืกืืขืืจืืื ืึทืืืขืง, ืึทืืข ืืื ืืืขืจ ืืืืขืจืคืขื ืืฉื ืืขื ืขื ืืื. ืืึธืก ืืื ื ืึธืจืืึทื ืืื ืืึทื ื ืืื ืึท ื ืึธืจืืึทื ืฉืึทืืืึทืื ืืื ืื ืฉืืจื. ืืืึธืก ืฆื ืืึธื ืืื ืคืึทื ืคืื ืืึทืื ืึทืืืืืืฉืื? ืืืื Redis ืืื ืงืึทื ืคืืืืขืจื ืืืจื ืคืขืืืงืืึทื, ืืื fsync ืกืื ืืงืจืึทื ืืืืื ื ืืืืฃ ืืืกืง ืืขืืขืจ ืจืืข, ืขืก ืืื ืืขืืืขื ืึทื ื ืึธื ืึท ืจืืกืืึทืจื ืืืจ ืืืขืื ื ืืฉื ืืึธืื ืืื ืืืขืจ ืฉืืืกื. ืืืขืึธืจืขืืืงืึทืืื, ืืืื ืืืจ ืืืืื ืฆื ืืึทืจืึทื ืืืจื ืฉืืึธืก ืืืืขืจืืืื ืืขืฉืึทืก ืงืืื ืจืืกืืึทืจื, ืืืจ ืืึธื ืืขืื fsync=always
ืืื ืื ืกืขืืืื ืืก ืคึฟืึทืจ ืืึทื ื-ืืขืจืืื ืืึทืื ืกืืึธืจืืืืฉ. ืืึธืก ืืืขื ืืึธืจ ืืืืื ืคืึธืจืฉืืขืืื ื, ืึทืจืึธืคึผ ืฆื ืื ืืืจืื ืคืื ืงืคึผ ืกืืกืืขืืขื ืืืึธืก ืืขื ืขื ืืจืึทืืืฉืึทื ืึทืื ืืขื ืืฆื ืฆื ืกืืงืืืจืื ืื ืกืืจืืืขื ื ืคืื ืื ืืขืจืืขืืืืื ืืึทืงืก.
ืืืขืจ ืื ืกืืืืึทืฆืืข ืืื ืืขืกืขืจ ืืื ืขืก ืืืื ื ืืืึท ืขืจืฉืืขืจ ืืืืง. ืืื ืคึผืจืื ืฆืืคึผ, ืื ืืืืขืจืืืื ืคืื ืื ืึทืืืขืจืืืึทื ืืื ืืคืืขืืื ืืืืึทื ืืืขื ืืขืจ ืืืึทืฉืคึผืื ืืื ืจืืกืืึทืจืืื ื ืึธื ืึท ืืืจืืคืึทื, ืขืก ืืื ื ืื ืืขืจ ืคึผืึทืจืืืกืึทืคึผืืืืื ื ืืื ืงืืื ืฉืืึธืก ืืืึธืก ืืื ืืืฆื ืึทืงืืืื.
ืฆื ืขื ืฉืืจ ืืขื, ืืืจ ื ืึธืจ ืืึทืจืคึฟื ืฆื ืขื ืฉืืจ ืึทื ื ืึธื ืึท ืืืจืืคืึทื ืื ืืืึทืฉืคึผืื ืืืืืื ืึทื ืึทืืืืืืึทืืึทื ืคึฟืึทืจ ืึท ืฆืืื ืืืึธืก ืืื ืึท ืืืกื ืืขืืขืจ ืืื ืื ืืึทืงืกืืืื TTL ืืืึธืก ืืืจ ื ืืฆื. ืืขื ืืืขื ืืืจ ืืืขืื ืืืึทืจืื ืืื ืื ืขืงืกืคึผืขืจืืืฉืึทื ืืึธื ืืื ืึธืืึทืืึทืืืง ืืขืืืื ื ืคืื ืึทืืข ืฉืืืกืืขื ืืืึธืก ืืขื ืขื ืึทืงืืืื ืืื ืืขืจ ืฆืืื ืคืื ืืืจืืคืึทื.
ื ืืฆื ืืืืืื ืจืืกืืึทืจื, ืขืก ืืื ืืื ืคึผืจืื ืฆืืคึผ ืืขืืืขื ืฆื ืืขืจืืจืืืื ืืืืขืจืืืื ืืคืืื ืืื ืืขืจ ืึทืืืขืง ืคืื ืงืืื ืืึทื ื-ืืขืจืืื ืคึผืขืจืกืืกืืึทื ืก ืืื Redis. ืืึทืืขืจืงืื ื, ืึธืืขืจ, ืึทื ืืึธืก ืงืขื ืจืขืืืืืึทื ืืื ืึท ืฉืืจืึทืฃ ืคึฟืึทืจ ืืืืืึทืืืืืื ื ืึทืงืกืขืกืึทืืืืืื. ืคึฟืึทืจ ืืืึทืฉืคึผืื, ืืืื ืื ืืขืจืืืึทื ืคืื ืื ืกืืึทื ืกืื ืืืจืืคืึทื, ืื ืกืืกืืขื ืืืขื ืืืื ืืืึธืืืึทืื ืึทื ืึทืืืืืืึทืืึทื ืคึฟืึทืจ ืื TTL (ืืื ืงืืื ืืืื ืงืขื ืขื ืืืื ืืคืืขืฉืืขืื ืืื ืืขื ืฆืืื).
ืืืจ ืคืึทืจืืจืขืกืขืจื ืื ืึทืืืืืืึทืืืืึทืื ืคืื ืื ืึทืืืขืจืืืึทื: ืืืจ ืคืึทืจืืจืืืืขืจื ืื ืืืึทืงืื ื
ืืืื ืื ืึทืจืืขื ืืขืืื ืืืจื ืงืืืืึทื ืฅ ืืืฉืืืื ืคืื ืงืืืื ืกืืขืคึผืก, ืขืก ืืื ืืขืืืขื ืฆื ืจืขืืืฆืืจื ืื ืคืขืืืงืืึทื ืฉืืึธืก ืืขืืืืขืจ ืืื ืื ืกืืจืืืขื ื ืึท ืืขืงืึทื ืืืึทื ืคึฟืึทืจ ืืงืกืืขื ืืื ื ืืึทืงืก. ืืื ืคึผืจืื ืฆืืคึผ, ืืืื ืืขืจ ืงืืืขื ื ืืื ืคืึทืจื ืืืขื ืืื ืงืึทืืคึผืืืืื ื ืืื ืื ืฉืืึธืก ืขืงืกืคึผืขืจืืืฉืึทื ืืืขืจื ืืื ืืืื ืืืฉืขืจืึทืกืื ื ืืืขืจืืง, ืืืจ ืงืขื ืขื ืฉืืงื ืึท Lua ืฉืจืืคื ืฆื ืึทืืข ืื ืกืืึทื ืกืื ืืืึธืก ืืงืกืืขื ืื ืื TTL ืคืื ืื ืฉืืืกื ืืืื ืืขืจ ืฉืืืกื ื ืึธื ืืืืืกืฅ ืืื ืืืื ืืืขืจื ืืื ื ืึธื ืึท ืืจืึทืค - ืืืขืจื. ืฉืืึธืก ืืื ืงืื ื.
ื ืงืืืขื ื ืืึธื ื ืึธืจ ืืึทืืจืึทืืื ืึท ืฉืืึธืก ืฆื ืืืื ืจืืึทืงืืืืื ืืืื ืขืก ืืื ืืขืจืืื ืฆื ืฉืืึธืก ืื ืืขืจืืืึทื ืคืื ืื ืกืืึทื ืกืื ืืื ืื ืืืืืืงืืึทื ืฆืืึทื.
ืืืช, ืืขืงื ืืงืื ืื ืึทืืืขืจืืืึทื ืืื ื ืืฉื ืืืืฉื, ืึทืืื ืื ืืึทืงืกืืืื ื ืืืขืจ ืคืื ืจืืคึผืืืื ืคืจืืืื ืฆื ืงืจืืื ืืึทืงืก ืืืื ืืืื ืืืืืืขื, ืึทื ืืขืจืฉ ืื ืึทืงืกืขืกืึทืืืืืื ืคึผืจืึธืคึผืขืจืืืขืก ืืืขื ืืืื ืืืืืึทืืืืืื.
ืืงืืจ: www.habr.com