레디스의 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
Posted by '김용환'
,