제가 공부한 내용을 정리하는 블로그입니다.
아직 많이 부족하고 배울게 너무나도 많습니다. 틀린내용이 있으면 언제나 가감없이 말씀해주시면 감사하겠습니다😁

 

String 유형


문자열을 Value로 사용하는 것은 가장 단순한 형태.
문자열을 Value로 사용하고, html 문자열을 캐시하는 식의 활용 방식이 있음.

특징

  • Value에 string, number들을 저장. => 저장시 별도의 타입이 존재하지 않음.

SET

  • 값을 세팅할 때는 SET을 사용
# 값이 이미 있으면 실패 : nx
# 값이 이미 있을 때만 성공 : xx
SET [keyName] [value]

GET

  • 값을 찾아올 때는 GET을 사용.
GET [keyName]

 

INCR, DECR

  • 값이 정수인 경우, INCR과 DECR(increment, decrement) 명령어 활용 가능.
INCR [keyName]
DECR [keyName]

 

EXISTS

  • value의 존재 여부를 확인
  • 있으면 1, 없으면 0을 반환
EXIST [key1] [key2] ...

DEL

  • 해당 key를 삭제
  • 삭제에 성공했으면 1, 실패하면 0 반환
DEL [key1] [key2] ...

EXPIRE

  • TTL 설정
  • 단위는 초
EXPIRE [keyName] 5

 

Lists


특징

  • Value에 list를 저장.

lpush / rpush

  • 왼쪽에 값을 넣어주거나 오른쪽에 값을 넣어줌.

lrange

  • 값을 조회. 이때 -1은 모두 가져오라는 뜻

rpop

  • 이를 이용해 queue 구현 가능

rbpop

  • 순차적인 분산 작업 구현 가능
  • rpop과 비슷하나 데이터가 없다면 데이터가 들어올 때까지 block 상태로 대기

 

Sets


특징

  • Value에 set을 저장.
  • list는 중복을 허용하나 set은 중복이 안됨.

SADD

  • 집합(Set)에 하나 이상의 멤버를 추가
    • SADD test_sets 1test_sets라는 이름의 집합에 멤버로 1을 추가

SMEMBERS

  • 집합(Set)에 모든 멤버를 반환
    • SMEMBERS test_sets test_sets라는 이름의 집합에 모든 멤버 반환

 

Sorted sets


특징

  • Value에 set을 저장.
  • 중복 불가능 하며, scores 필드를 기준으로 정렬됨
  • 중복이 안되면 동일한 value를 넣으면 기존 데이터의 score를 덮어서 데이터 순서가 바뀜.

zadd

  • Sorted Set에 멤버와 점수를 추가하는 데 사용
    • test_ssets라는 이름의 Sorted Set에 멤버 1과 점수 1을 추가. => 성공(1)
    • zadd test_ssets "a" 2은 에러발생
      • Sorted Set은 멤버의 순서를 기준으로 정렬하는데, 문자열은 정렬되지 않는 데이터 타입이기 때문.
    • 마지막으로 zadd test_ssets "0" 2와 같이 문자열 "0"을 멤버로 추가한 경우
      • 이 경우는 정상적으로 처리되며, 정수로 간주하여 추가.
      • 새로운 멤버가 추가되었으므로 (integer) 0이 반환.

zrange

  • zrange 명령어는 Sorted Set의 멤버들을 조회하는 명령어.
  • zrange test_ssets 0 -1 명령어는 test_ssets Sorted Set의 첫 번째 멤버부터 마지막 멤버까지 모두 조회. 

 

Hashes


특징

  • Hashes key/value 목록을 가짐.

hset

  • 명령어는 해시에 필드와 값을 설정
  • HSET htest username hihtest라는 이름의 해시에 username 필드에 hi 값을 설정합니다. 반환된 정수 값 1은 새 필드가 생성되었음을 나타냄
  • 같은 방식으로 HSET htest userpwd asdfhtest 해시에 userpwd 필드에 asdf 값을 설정

hget

  • 해시에서 특정 필드의 값을 가져옴.
  • HGET htest usernamehtest 해시에서 username 필드의 값을 가져옵니다. 여기서는 "hi"가 반환됩니다.
  • HGET htest temp는 존재하지 않는 필드인 temp의 값을 가져오려고 시도합니다. 이 경우, 해당 필드가 존재하지 않기 때문에 nil이 반환됩니다.

hgetall

  • 해시의 모든 필드와 값을 반환
  • HGETALL htesthtest 해시의 모든 필드와 값을 가져옵니다. 여기서는 "username", "hi", "userpwd", "asdf"가 번갈아가면서 반환

 

Bitmaps


특징

  • Value에 bit값 저장
  • 512MB 용량으로 2^32(42억)개의 bit 값들을 저장
  • boolean 옵션으로 많이 사용.(회원마다 공지 조회 여부)

setbit

  • setbit 명령어는 주어진 오프셋(offset)에 비트 값을 설정하는데 사용.
  • 여기서 "test_bits"라는 이름의 비트열(Bitfield)에 대해 첫 번째 비트(오프셋 0)를 1로 설정.
  • 새로운 비트가 설정되었으므로 (integer) 0을 반환.

getbit

  • getbit 명령어는 주어진 오프셋에 해당하는 비트 값을 가져오는데 사용.
  • "test_bits" 비트열의 첫 번째 비트(오프셋 0)의 값.
  • 비트 값이 1로 설정되어 있으므로 (integer) 1이 반환.

 

 

참조

'Database > Redis' 카테고리의 다른 글

[Redis] Redis 고급 및 캐싱전략  (0) 2024.05.16
[Redis] Redis 기본  (0) 2024.05.10
[Redis] NoSQL이란  (0) 2024.04.30
[OSSCA2024] Redis 과제 3  (0) 2024.04.25

+ Recent posts