[redis] SET key value [EX seconds|PX milliseconds] [NX|XX]
레디스의 SET 커맨드는 다음 문법을 가진다.
SET key value [EX seconds|PX milliseconds] [NX|XX]
EX: 만료 시간을 초로 설정한다.
PX: 만료 시간을 밀리초로 설정한다.
NX: 키가 존재하지 않으면 키만 설정한다.
XX: 키가 이미 존재하면 키만 설정한다.
EX, PX 테스트
127.0.0.1:6379> SET a 1 EX 1
OK
127.0.0.1:6379> GET a
(nil)
127.0.0.1:6379> SET a 1 PX 2000
OK
127.0.0.1:6379> TTL a
(integer) 0
127.0.0.1:6379> GET a
(nil)
* NX
키가 존재한 상태에서 NX를 사용하면, 기존 값을 계속 저장한다.
127.0.0.1:6379> SET a 1
OK
127.0.0.1:6379> SET a 2 NX
(nil)
127.0.0.1:6379> GET a
"1"
키가 존재하지 않은 상태에서 NX를 사용하지 않으면 새 값을 저장한다.
127.0.0.1:6379> GET x
(nil)
127.0.0.1:6379> SET x 2 NX
OK
127.0.0.1:6379> GET x
"2"
* XX (키가 있는 경우만 SET한다.)
키가 존재하지 않은 상태에서 XX로 설정하면 아무 것도 진행되지 않다.
127.0.0.1:6379> GET z
(nil)
127.0.0.1:6379> SET z 5 XX
(nil)
127.0.0.1:6379> GET z
(nil)
키가 존재하면 XX로 설정하면 값이 변경된다.
127.0.0.1:6379> SET y 1
OK
127.0.0.1:6379> SET y 3 XX
OK
127.0.0.1:6379> GET y
"3"