redis setnx expire一條命令 redis setnx和set區(qū)別?
redis setnx和set區(qū)別?Setnx在set鍵不存在時(shí)成功設(shè)置set成功設(shè)置,無論該鍵是否存在。如果當(dāng)前密鑰存在,則該值將被替換,否則將執(zhí)行新操作分布式鎖的要求隨應(yīng)用程序的分布式部署而來。對(duì)
redis setnx和set區(qū)別?
Setnx在set鍵不存在時(shí)成功設(shè)置
set成功設(shè)置,無論該鍵是否存在。如果當(dāng)前密鑰存在,則該值將被替換,否則將執(zhí)行新操作
分布式鎖的要求隨應(yīng)用程序的分布式部署而來。對(duì)于單個(gè)應(yīng)用程序只部署了一臺(tái)服務(wù)器的情況,可以通過Java同步鎖來實(shí)現(xiàn)。同步鎖是一種原子操作。
當(dāng)應(yīng)用程序以分布式方式部署并且具有多個(gè)服務(wù)時(shí),應(yīng)用服務(wù)器將無法提供原子操作。Redis具有高性能,而且是單線程的,因此它可以為原子操作提供一個(gè)場(chǎng)所。有了它,就可以實(shí)現(xiàn)分布式鎖。