Redis command
Overview
Redis command 내용 정리
DEL
지정된 키를 삭제한다.
127.0.0.1:6379> help DEL DEL key [key ...] summary: Delete a key since: 1.0.0 group: generic
GET
지정된 키 값을 가져온다.
127.0.0.1:6379> help GET GET key summary: Get the value of a key since: 1.0.0 group: string
SET 명령어 사용시, 만약 Key 에 이미 다른 값이 설정되어 있다면 타입에 상관없이 덮어쓰기가 된다. Any previous time to live associated with the key is discarded on successful SET operation.
Example
redis> GET mykey "Hello"
INFO
Redis 서버 설정 정보를 확인할 수 있다.
127.0.0.1:6379> help INFO INFO [section] summary: Get information and statistics about the server since: 1.0.0 group: server
Example
> INFO redis_version:2.4.18 redis_git_sha1:00000000 redis_git_dirty:0 arch_bits:64 ...
MONITOR
REDIS 에서 수행되는 명령어를 실시간으로 모니터링한다.
127.0.0.1:6379> help monitor MONITOR - summary: Listen for all requests received by the server in real time since: 1.0.0 group: server
Example
redis 127.0.0.1:6379> monitor OK 1465549016.028126 "monitor" 1465549888.174607 (db 10) "SELECT" "10" 1465549888.193430 (db 10) "KEYS" "accounts:127.0.0.1-user1:accountinformation" 1465549888.193779 (db 10) "HGETALL" "accounts:127.0.0.1-user1:accountinformation" 1465549888.224193 (db 10) "KEYS" "voicemail:127.0.0.1-user1:message*" 1465549892.531991 (db 10) "SELECT" "10" 1465549892.547614 (db 10) "KEYS" "accounts:127.0.0.1-user1:accountinformation" 1465549892.547991 (db 10) "HGETALL" "accounts:127.0.0.1-user1:accountinformation" 1465549892.578356 (db 10) "KEYS" "voicemail:127.0.0.1-user1:message*" 1465549892.590838 (db 10) "KEYS" "accounts:127.0.0.1-user1:accountinformation" 1465549892.591206 (db 10) "HGETALL" "accounts:127.0.0.1-user1:accountinformation" 1465549892.621536 (db 10) "KEYS" "voicemail:127.0.0.1-user1:message*" 1465549892.622748 (db 10) "HMSET" "mailboxchanges:127.0.0.1:user1" "mboxname" "user1" "old" "0" "new" "0" ...
SET
지정한 키에 값을 지정한다.
127.0.0.1:6379> help SET SET key value [EX seconds] [PX milliseconds] [NX|XX] summary: Set the string value of a key since: 1.0.0 group: string
Example
redis> SET mykey "Hello" OK
SADD, SMEMBERS
SADD key member [member ...] SMEMBERS key
지정된 key에 member 들을 Sets 타입으로 add/show 한다.
redis 127.0.0.1:6379[1000]> SADD queues "a684cf64-685c-484c-8157-a53db7e7cef7" (integer) 1 redis 127.0.0.1:6379[1000]> SADD queues "f9c7e9cf-8415-42d7-a6cd-82fa95410b33" (integer) 1 redis 127.0.0.1:6379[1000]> SADD queues "e5631cf8-6898-486a-beac-36087c917b8a" (integer) 1 redis 127.0.0.1:6379[1000]> SMEMBERS queues 1) "a684cf64-685c-484c-8157-a53db7e7cef7" 2) "e5631cf8-6898-486a-beac-36087c917b8a" 3) "f9c7e9cf-8415-42d7-a6cd-82fa95410b33"
ZSET
ZREMRANGEBYSCORE
SUNION
여러개의 결과 데이터를 조합하여 중복된 데이터를 제외한 결과를 리턴한다.
key1 = {a,b,c,d} key2 = {c} key3 = {a,c,e} SUNION key1 key2 key3 = {a,b,c,d,e}
SINTER
여러개의 결과 데이터를 조합하여 공통적으로 속해있는 결과만을 리턴한다.
key1 = {a,b,c,d} key2 = {c} key3 = {a,c,e} SINTER key1 key2 key3 = {c}
비어있는(empty) 혹은 존재하지 않는 키와의 SINTER 는 항상 empty list 를 반환한다.
Example
redis> SADD key1 "a" (integer) 1 redis> SADD key1 "b" (integer) 1 redis> SADD key1 "c" (integer) 1 redis> SADD key2 "c" (integer) 1 redis> SADD key2 "d" (integer) 1 redis> SADD key2 "e" (integer) 1 redis> SINTER key1 key2 1) "c"
SCAN, SSCAN, ZSCAN, HSCAN
KEYS 와 비슷한 기능을 수행하지만 KEYS와는 달리 Table lock 을 생성하지 않는다.
SCAN cursor [MATCH pattern] [COUNT count] SSCAN key cursor [MATCH pattern] [COUNT count] ZSCAN key cursor [MATCH pattern] [COUNT count] HSCAN key cursor [MATCH pattern] [COUNT count]
얼핏보기에는 KEYS 의 문제점을 모두 해결한 것 같지만, 다음과 같은 한계를 가진다.
- 기본적으로 SCAN의 경우 table 의 한 블럭을 가져오는 것이라서, 여기에 갯수가 많으면 시간이 많이 걸릴 수도 있다(다만, re-hashing 테이블이 bitmasking 크기만큼 커지므로, 한 블럭이 극단적으로 커질 가능성은 높지 않다).
- SET/SORTED_SET/HASH 의 내부 구조가 hash table 이나 skiplist 가 아닐 경우(ziplist 로 구현되어 있을 경우), 한 컬렉션의 모든 데이터를 가져오므로, KEYS 명령과 비슷한 문제가 그대로 발생할 수 있다.
- 명령의 옵션으로 count 값을 지정할 수 있지만, 정확히 그 갯수를 보장하지는 않는다.
- 순회가 시작(cursor 값을 0으로 지정한 SCAN 명령)된 이후에 추가된 항목은 전체 순회(full iteration; scan 명령의 반환된 cursor 값이 0)가 끝날 때까지 반환되지 않는다(Cursor 가 이미 지나갔으므로).
- HASH table 이 확장/축소/re-hashing 될 때 다시 스캔하지 않기 때문에 같은 항목이 여러번 반환될 수 있다. 반환된 키 값으로 다른 명령을 실행하려면 주의해야 한다.
SLAVEOF
Slave 설정을 변경한다.
127.0.0.1:6379> help SLAVEOF SLAVEOF host port summary: Make the server a slave of another instance, or promote it as master since: 1.0.0 group: server
slave 설정시, 모든 데이터는 master 와 동기화 된다. 즉, 동기화 하기 전에 slave 쪽에 중복되는 데이터가 있다면, master 쪽의 데이터로 덮어써지게 된다.
Example
$ redis-cli -n 10 slaveof 192.168.250.10 6379
See also
RENAME
Key 를 업데이트/변경 한다.
RENAME key newkey
Reference
<references />