

Key-Value 구조(다양한 데이터 구조 지원)로 저장되는 인메모리 데이터 구조 저장소
SET user:email alex@example.com
GET user:emailSET <key> <value>: key에 value 문자열 데이터를 저장, "으로 공백 구분GET <key>: key에 저장된 문자열 반환INCR, DECR
SET user:count 1
INCR user:count
DECR user:count
INCR key: key에 저장된 데이터를 1 증가DECR key: key에 저장된 데이터를 1 감소MSET, MGET
MSET user:name alex user:email alex@example.com
MGET user:name user:email
MSET key value [key value …]: key value의 형태로 주어진 인자들을 각 key에 value를 저장MGET key [key]: 주어진 모든 key에 해당하는 데이터를 반환.LPUSH, RPUSH, LPOP, RPOP
LPUSH user:list alex # [alex]
LPUSH user:list brad # [brad, alex]
RPUSH user:list chad # [brad, alex, chad]
RPUSH user:list dave # [brad, alex, chad, dave]
LPOP user:list # brad
RPOP user:list # chad
LPUSH key value: key에 저장된 리스트의 앞쪽에 value를 저장RPUSH key value: key에 저장된 리스트의 뒤쪽에 value를 저장LPOP key: key에 저장된 리스트의 앞쪽(왼쪽)에서 값을 반환 및 제거RPOP key: key에 저장된 리스트의 뒤쪽(오른쪽)에서 값을 반환 및 제거LLEN, LRANGE
LLEN user:list
LRANGE user:list 0 3
LRANGE user:list 0 -1
LLEN key: key에 저장된 리스트의 길이를 반환LRANGE key start end: key의 start부터 end까지 원소들을 반환SADD, SREM, SMEMBERS, SISMEMBER, SCARD
SADD user:java alex # [alex]
SADD user:java brad # [alex, brad]
SADD user:java chad # [alex, brad, chad]
SREM user:java alex # [brad, chad]
SMEMBERS user:java # [alex, brad, chad]
SISMEMBER user:java brad # true
SISMEMBER user:java dave # false
SADD key value: key에 저장된 집합에 value를 추가SREM key value: key에 저장된 집합의 value를 제거SMEMBERS key: key에 저장된 집합의 모든 원소를 반환SISMEMBER key value: key에 저장된 집합에 value가 존재하는지 반환SCARD key: key에 저장된 집합의 크기를 반환SINTER, SUNION, SINTERCARD
SADD user:java "Alice"
SADD user:java "Bob"
SADD user:java "Charlie"
SADD user:python "Bob"
SADD user:python "David"
SADD user:python "Alice"
SINTER user:java user:python # [Alice , Bob]
SUNION user:java user:python # [Alice, Bob, Charlie, David]
SINTERCARD 2 user:java user:python # 갯수 반환 : 2 ==> [Alice, Bob]
SINTER key1 key2: key1과 key2에 저장된 집합들의 교집합의 원소들을 반환SUNION key1 key2: key1과 key2에 저장된 집합들의 합집합의 원소들을 반환SINTERCARD number key1 [key2 ...]: number개의 key에 저장된 집합들의 교집합의 크기(갯수)를 반환데이터 구조가 셋(Set)을 기반으로 중복을 허용하지 않고 유일한 값만 반환
HSET, HGET, HMGET, HGETALL, HKEYS, HLEN
HSET user:1000 name "Alice"
HSET user:1000 age 30
=> user:1000 해시에 name 필드에 "Alice"를, age 필드에 30을 저장
HGET user:1000 name => 결과: Alice
HMGET user:1000 name age => ["Alice", "30"]
HGETALL user:1000 => ["name", "Alice", "age", "30"]
HKEYS user:1000 => ["name", "age"]
HLEN user:1000 => 2 (name 과 age 2개 이므로)
HSET key field value [field value]: 해시의 필드(field)에 값을 설정HGET key field: 해시의 특정 필드에 저장된 값을 가져옴. 없는 field 의 경우 null.HMGET key field [field]: 해시에서 여러 필드의 값을 한 번에 가져옴HGETALL key: 해시의 모든 필드와 값을 가져옴HKEYS key: 해시의 모든 필드(key)를 가져옴HLEN key: 해시의 필드 개수를 반환ZADD, ZINCRBY, ZRANK, ZRANGE, ZREVRANK, ZREVRANGE
ZADD user:ranks 10 alex
ZADD user:ranks 9 brad 11 chad
ZADD user:ranks 8 dave
=>
{
"alex": 10,
"brad": 9,
"chad": 11,
"dave": 8
}
ZINCRBY user:ranks 2 alex
=>
{
"alex": 12,
"brad": 9,
"chad": 11,
"dave": 8
}
ZRANK user:ranks alex => 0 (alex의 현재 순위는 1위)
ZRANGE user:ranks 0 2
=> ["dave", "brad", "chad"] (점수가 낮은 0 ~ 2번쨰 가져옴)
ZREVRANK user:ranks alex
=> 0 (alex의 점수가 제일 높기 떄문)
ZREVRANGE user:ranks 0 1
=> ["alex", "chad"]
ZADD key score member [score member ...]: key의 Sorted Set에 score를 점수로 가진 member를 추가, 이미 있는 member의 경우 새로운 score를 설정ZRANK key member: key의 Sorted Set의 member의 순위를 오름차순 기준으로 0에서 부터 세서 반환ZRANGE key start stop: key의 Sorted Set의 member들을 start 부터 stop 순위까지 오름차순 기준으로 반환ZREVRANK key member: key의 Sorted Set의 member의 순위를 내림차순 기준으로 0에서 부터 세서 반환ZREVRANGE key start stop: key의 Sorted Set의 member들을 start 부터 stop 순위까지 내림차순 기준으로 반환ZINCRBY key increment member: key의 Sorted Set의 member의 score를 increment 만큼 증가 (음수를 전달하면 감소)DEL, EXPIRE, EXPIRETIME
SET somekey "to be deleted"
DEL somekey
SET expirekey "to be expired"
EXPIRE expirekey 5
EXPIRETIME expirekey
DEL key: key(와 저장된 데이터)를 제거EXPIRE key seconds: key의 TTL(유효시각)을 seconds로 설정, seconds초가 지나면 key 제거EXPIRETIME key: key가 만료되는 시각을 Unix Timestamp로 반환저장된 모든 Key를 확인
KEYS *
모든 Key를 제거
FLUSHDB