레디스의 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"
'Redis' 카테고리의 다른 글
[redis] MIGRATE 커맨드 (0) | 2016.01.15 |
---|---|
[redis] PERSIST 커맨드 (0) | 2016.01.14 |
[Redis] TTL 커맨드와 PTTL 커맨드 (0) | 2016.01.14 |
[redis] EXPIRE와 EXPIREAT 커맨드 (0) | 2016.01.14 |
[redis] RANDOMKEY 커맨드 (0) | 2016.01.14 |