Redis command: Difference between revisions

From 탱이의 잡동사니
Jump to navigation Jump to search
No edit summary
 
(3 intermediate revisions by the same user not shown)
Line 1: Line 1:
== Overview ==
== Overview ==
Redis command 내용 정리
Redis command 내용 정리
== redis-cli ===
Connect
<pre>
$ redis-cli -h <target ip> -p <target port>
</pre>


== DEL ==
== DEL ==
Line 29: Line 35:
redis>  GET mykey
redis>  GET mykey
"Hello"
"Hello"
</pre>
== HGETALL ==
해쉬에 저장된 모든 필드의 내용을 가져온다.
<pre>
  HGETALL key
  summary: Get all the fields and values in a hash
  since: 2.0.0
  group: hash
</pre>
</pre>


Line 50: Line 66:
arch_bits:64
arch_bits:64
...
...
</pre>
<pre>
127.0.0.1:6379> INFO CPU
# CPU
used_cpu_sys:0.60
used_cpu_user:2.74
used_cpu_sys_children:0.00
used_cpu_user_children:0.00
</pre>
</pre>


Line 84: Line 109:
</pre>
</pre>


== SET ==
== RENAME ==
지정한 키에 값을 지정한다.
Key 를 업데이트/변경 한다.
<pre>
<pre>
127.0.0.1:6379> help SET
127.0.0.1:6379> help RENAME


   SET key value [EX seconds] [PX milliseconds] [NX|XX]
   RENAME key newkey
   summary: Set the string value of a key
   summary: Rename a key
   since: 1.0.0
   since: 1.0.0
   group: string
   group: generic
</pre>
</pre>


=== Example ===
== SADD ==
set 에 member 를 추가한다. 지정된 key에 member 들을 Sets 타입으로 add 한다.
<pre>
<pre>
redis> SET mykey "Hello"
127.0.0.1:6379> help SADD
OK
 
  SADD key member [member ...]
  summary: Add one or more members to a set
  since: 1.0.0
  group: set
</pre>
</pre>


== SADD, SMEMBERS ==
=== Example ===
<pre>
SADD key member [member ...]
SMEMBERS key
</pre>
지정된 key에 member 들을 Sets 타입으로 add/show 한다.
<pre>
<pre>
redis 127.0.0.1:6379[1000]> SADD queues "a684cf64-685c-484c-8157-a53db7e7cef7"
redis 127.0.0.1:6379[1000]> SADD queues "a684cf64-685c-484c-8157-a53db7e7cef7"
Line 121: Line 146:
</pre>
</pre>


== ZSET ==
== SCAN ==
=== ZREMRANGEBYSCORE ===
 
== SET ==
지정한 키에 값을 지정한다.
<pre>
<pre>
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
</pre>
</pre>


== SUNION ==
=== Example ===
여러개의 결과 데이터를 조합하여 중복된 데이터를 제외한 결과를 리턴한다.
<pre>
<pre>
key1 = {a,b,c,d}
redis>  SET mykey "Hello"
key2 = {c}
OK
key3 = {a,c,e}
SUNION key1 key2 key3 = {a,b,c,d,e}
</pre>
</pre>


Line 163: Line 193:
</pre>
</pre>


== SCAN, SSCAN, ZSCAN, HSCAN ==
== SMEMBERS ==
KEYS 와 비슷한 기능을 수행하지만 KEYS와는 달리 Table lock 을 생성하지 않는다.
지정된 set 에 저장된 모든 member 를 보여준다.
<pre>
<pre>
SCAN cursor [MATCH pattern] [COUNT count]
127.0.0.1:6379> help smembers
SSCAN key cursor [MATCH pattern] [COUNT count]
 
ZSCAN key cursor [MATCH pattern] [COUNT count]
  SMEMBERS key
HSCAN key cursor [MATCH pattern] [COUNT count]
  summary: Get all the members in a set
  since: 1.0.0
  group: set
</pre>
</pre>


얼핏보기에는 KEYS 의 문제점을 모두 해결한 것 같지만, 다음과 같은 한계를 가진다.
=== Example ===
* 기본적으로 SCAN의 경우 table 의 한 블럭을 가져오는 것이라서, 여기에 갯수가 많으면 시간이 많이 걸릴 수도 있다(다만, re-hashing 테이블이 bitmasking 크기만큼 커지므로, 한 블럭이 극단적으로 커질 가능성은 높지 않다).
<pre>
* SET/SORTED_SET/HASH 의 내부 구조가 hash table 이나 skiplist 가 아닐 경우(ziplist 로 구현되어 있을 경우), 한 컬렉션의 모든 데이터를 가져오므로, KEYS 명령과 비슷한 문제가 그대로 발생할 수 있다.
redis 127.0.0.1:6379[1000]> SADD queues "a684cf64-685c-484c-8157-a53db7e7cef7"
* 명령의 옵션으로 count 값을 지정할 수 있지만, 정확히 그 갯수를 보장하지는 않는다.
(integer) 1
* 순회가 시작(cursor 값을 0으로 지정한 SCAN 명령)된 이후에 추가된 항목은 전체 순회(full iteration; scan 명령의 반환된 cursor 값이 0)가 끝날 때까지 반환되지 않는다(Cursor 가 이미 지나갔으므로).
redis 127.0.0.1:6379[1000]> SADD queues "f9c7e9cf-8415-42d7-a6cd-82fa95410b33"
* HASH table 이 확장/축소/re-hashing 될 때 다시 스캔하지 않기 때문에 같은 항목이 여러번 반환될 수 있다. 반환된 키 값으로 다른 명령을 실행하려면 주의해야 한다.
(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"
</pre>


== SLAVEOF ==
== SLAVEOF ==
Line 197: Line 237:
</pre>
</pre>


=== See also ===
== SUNION ==
* https://redis.io/commands/slaveof
여러개의 결과 데이터를 조합하여 중복된 데이터를 제외한 결과를 리턴한다.
<pre>
127.0.0.1:6379> help SUNION
 
  SUNION key [key ...]
  summary: Add multiple sets
  since: 1.0.0
  group: set
</pre>


== RENAME ==
=== Example ===
Key 를 업데이트/변경 한다.
<pre>
<pre>
RENAME key newkey
key1 = {a,b,c,d}
key2 = {c}
key3 = {a,c,e}
SUNION key1 key2 key3 = {a,b,c,d,e}
</pre>
</pre>
=== See also ===
* https://redis.io/commands/slaveof


== Reference ==
== Reference ==

Latest revision as of 20:40, 22 May 2020

Overview

Redis command 내용 정리

redis-cli =

Connect

$ redis-cli -h <target ip> -p <target port>

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"

HGETALL

해쉬에 저장된 모든 필드의 내용을 가져온다.

  HGETALL key
  summary: Get all the fields and values in a hash
  since: 2.0.0
  group: hash

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
...
127.0.0.1:6379> INFO CPU
# CPU
used_cpu_sys:0.60
used_cpu_user:2.74
used_cpu_sys_children:0.00
used_cpu_user_children:0.00

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"
...

RENAME

Key 를 업데이트/변경 한다.

127.0.0.1:6379> help RENAME

  RENAME key newkey
  summary: Rename a key
  since: 1.0.0
  group: generic

SADD

set 에 member 를 추가한다. 지정된 key에 member 들을 Sets 타입으로 add 한다.

127.0.0.1:6379> help SADD

  SADD key member [member ...]
  summary: Add one or more members to a set
  since: 1.0.0
  group: set

Example

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"

SCAN

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

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"

SMEMBERS

지정된 set 에 저장된 모든 member 를 보여준다.

127.0.0.1:6379> help smembers

  SMEMBERS key
  summary: Get all the members in a set
  since: 1.0.0
  group: set

Example

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"

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

SUNION

여러개의 결과 데이터를 조합하여 중복된 데이터를 제외한 결과를 리턴한다.

127.0.0.1:6379> help SUNION

  SUNION key [key ...]
  summary: Add multiple sets
  since: 1.0.0
  group: set

Example

key1 = {a,b,c,d}
key2 = {c}
key3 = {a,c,e}
SUNION key1 key2 key3 = {a,b,c,d,e}

See also

Reference

<references />