Redis

Code_Builder·2024년 8월 8일
0
post-thumbnail

레디스란?

Key-Value 구조(다양한 데이터 구조 지원)로 저장되는 인메모리 데이터 구조 저장소

자료형

  • GET, SET
    SET user:email alex@example.com
    GET user:email
    • SET <key> <value>: keyvalue 문자열 데이터를 저장, "으로 공백 구분
    • 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의 형태로 주어진 인자들을 각 keyvalue를 저장
    • 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: keystart부터 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: key1key2에 저장된 집합들의 교집합의 원소들을 반환
    • SUNION key1 key2: key1key2에 저장된 집합들의 합집합의 원소들을 반환
    • 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의 memberscoreincrement 만큼 증가 (음수를 전달하면 감소)

  • 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
profile
사소한일에도 최선을 다하기

0개의 댓글

관련 채용 정보