redis setnx expire一條命令 redis setnx和set區(qū)別?
redis setnx和set區(qū)別?Setnx在set鍵不存在時成功設(shè)置set成功設(shè)置,無論該鍵是否存在。如果當(dāng)前鍵存在,則替換該值;否則,將執(zhí)行新操作1。設(shè)置:將鍵對應(yīng)的值設(shè)置為字符串類型值。&Gt
redis setnx和set區(qū)別?
Setnx在set鍵不存在時成功設(shè)置
set成功設(shè)置,無論該鍵是否存在。如果當(dāng)前鍵存在,則替換該值;否則,將執(zhí)行新操作
1。設(shè)置:將鍵對應(yīng)的值設(shè)置為字符串類型值。&Gtset“name”“Hello”2。Setnx(如果不存在則設(shè)置):將鍵值設(shè)置為value。如果密鑰不存在,則與set naming相同。如果鍵值存在,則不執(zhí)行任何操作。&Gtsetnx“name”“Hello”3。Setex:設(shè)置鍵對應(yīng)的字符串值,在給定秒時間后將鍵設(shè)置為超時。&Gtsetex“color”10“red”>get“color”red
分布式鎖的需求伴隨著應(yīng)用程序的分布式部署。在單個應(yīng)用程序只部署一臺服務(wù)器的情況下,可以通過Java同步鎖來實現(xiàn)。同步鎖是一種原子操作。
當(dāng)應(yīng)用程序以分布式方式部署并且具有多個服務(wù)時,應(yīng)用服務(wù)器將無法提供原子操作。Redis具有高性能,而且是單線程的,因此它可以為原子操作提供一個場所。有了它,就可以實現(xiàn)分布式鎖。