Redis 8가지 기능

Redis 8.2 는 더 높은 성능, 향상된 메모리 효율성, 강력한 통합 가시성, 향상된 개발자 경험을 제공함으로써 Redis 7.x 보다 크게 개선되었습니다. 8.2 는 익숙한 Redis 프로그래밍 모델을 유지하면서 스트림, 비트맵, 벡터 검색, 클러스터 메트릭의 새로운 기능을 제공합니다.

8.2 의 주요 개선 사항은 다음과 같습니다:

  • 일반적인 명령과 워크로드 전반에서 성능이 크게 향상됩니다.
  • 특히 JSON 및 주요 메타데이터의 메모리 사용량이 감소했습니다.
  • 스트림, 비트 연산, 벡터 검색의 새로운 기능.
  • 클러스터 및 복제에 대한 확장된 메트릭 및 통합 가시성.

Redis 7.2 에서 Redis 로 업그레이드 8.2

Redis 7.2 에서 Redis 8.2 으로 업그레이드하는 방법에 대한 자세한 내용은 새 메이저 버전으로 업그레이드하기를 참조하세요.

Redis 모듈

Redis 8은 고급 사용 사례를 위해 기능을 확장하는 여러 공식 모듈을 지원합니다. 주요 모듈과 그 기능은 다음 섹션에 설명되어 있습니다.

RedisBloom

RedisBloom 는 확률적 데이터 구조를 제공하는 공식 Redis 모듈입니다: 블룸 필터, 뻐꾸기 필터, 카운트-마이너 스케치, Top-K입니다. 이러한 구조는 정확성과 극도의 공간 효율성 및 속도를 교환하므로 오차 범위가 알려진 대략적인 답변이 허용되는 경우에 이상적입니다.

RedisBloom 의 주요 기능은 다음과 같습니다:

  • 블룸 필터: 구성 가능한 오탐 확률과 오탐 없이 요소가 세트에 포함될 수 있는지 여부를 테스트합니다.

  • 뻐꾸기 필터: 블룸과 비슷하지만 더 자연스럽게 삭제를 지원합니다.

  • 카운트-마이너 스케치: 스트리밍 방식으로 이벤트의 빈도를 추정합니다(예: 키가 몇 번 나타나는지).

  • Top-K: 데이터 스트림에서 가장 빈번하게 사용되는 항목을 추적합니다.

RedisBloom 의 일반적인 사용 사례는 다음과 같습니다:

  • 중복 및 이전에 확인된 항목(URL, 이메일, 사용자 ID).

  • 사기 탐지 및 남용 방지(전체 기록을 저장하지 않고 의심스러운 패턴에 플래그를 지정).

  • 카운트-마이너 스케치 및 Top-K를 사용하는 추천 시스템 및 트렌드 목록.

  • 불필요한 백엔드 조회를 피하기 위해 사전 필터를 캐시합니다.

RedisBloom 예제

오류율 1%, 용량이 1000인 블룸 필터를 만들려면 다음과 같이 하세요:

> BF.RESERVE bikes:models 0.01 1000

OK

모델 이름을 추가하고 확인하려면 다음과 같이 하세요:

> BF.ADD bikes:models "Smoky Mountain Striker"

(integer) 1

> BF.EXISTS bikes:models "Smoky Mountain Striker"

(integer) 1

자세한 내용은 RedisBloom 필터 문서를 참조하세요

RediSearch

RediSearch 는 전체 텍스트 검색, 보조 인덱싱, 집계, 벡터 유사도 검색 지원을 제공하는 Redis 의 쿼리 및 인덱싱 엔진입니다. RediSearch Redis 데이터(예: 해시 및 JSON)를 색인하고 점수, 필터링 및 강조 표시를 통해 강력한 쿼리를 지원합니다.

RediSearch 의 주요 기능은 다음과 같습니다:

  • 어간, 음성학, 퍼지 매칭을 통한 전체 텍스트 검색.

  • 고급 필터를 위한 숫자, 태그 및 지리공간 필드.

  • 패싯, 분석 및 랭킹을 위한 집계 엔진입니다.

  • 시맨틱 및 근사 근접 이웃(ANN) 검색을 위한 벡터 필드와의 통합.

RediSearch 의 일반적인 사용 사례는 다음과 같습니다:

  • 필터 및 패싯을 사용한 제품 카탈로그 검색.

  • 자유 텍스트 및 구조화된 필터를 사용한 로그 및 이벤트 검색.

  • 사용자 콘텐츠(트윗, 게시물, 문서)를 실시간으로 검색합니다.

  • AI 기반 애플리케이션을 위한 텍스트 및 벡터 검색을 결합했습니다.

RediSearch 예제

색인을 만들고 문서를 하나 추가합니다:

> FT.CREATE idx ON HASH PREFIX 1 "doc:" SCHEMA title TEXT

OK

> HSET doc:1 title "hello redis"

(integer) 1

텍스트로 검색하려면:

> FT.SEARCH idx "hello"

1) (integer) 1

2) "doc:1"

3) 1) "title"

   2) "hello redis"

자세한 내용은 RediSearch 문서를 참조하세요.

RedisJSON

RedisJSON 는 Redis 에 대한 네이티브 JSON 데이터 유형을 도입하여 JSONPath와 유사한 구문을 사용하는 JSON 문서의 저장, 검색 및 부분 업데이트를 가능하게 합니다. RedisJSON 는 하위 문서에 빠르게 액세스할 수 있도록 최적화되어 있으며 RediSearch 과 같은 다른 Redis 기능과 통합됩니다.

RedisJSON 의 주요 기능은 다음과 같습니다:

  • 구조화된 JSON 문서를 일급 값으로 저장합니다.

  • 전체 문서를 로드하지 않고도 특정 경로를 검색하거나 업데이트할 수 있습니다.

  • 배열, 객체 및 중첩 구조 지원.

  • JSON 필드 인덱싱을 위한 검색 및 쿼리 기능과 통합하는 옵션입니다.

RedisJSON 의 일반적인 사용 사례는 다음과 같습니다:

  • 자주 업데이트되는 중첩 필드가 있는 사용자 프로필 및 세션.

  • 구성 문서 및 기능 플래그.

  • 서비스 간에 공유되는 제품 카탈로그 또는 콘텐츠 개체입니다.

  • Redis 이 고속 백업 저장소 역할을 하는 JSON 기반 API입니다.

RedisJSON 예제:

간단한 JSON 문서를 저장합니다:

127.0.0.1:6379> JSON.SET user:1 $ '{"name":"Alice","age":30}'

OK

하나의 필드를 가져옵니다:

127.0.0.1:6379> JSON.GET user:1 $.name

"\"Alice\""

자세한 내용은 RedisJSON 문서를 참조하세요.

RedisTimeSeries

RedisTimeSeries 는 효율적인 시계열 데이터 수집, 저장, 쿼리, 집계, 다운샘플링을 위한 모듈입니다. RedisTimeSeries 는 시계열 데이터 유형과 관련 명령을 추가하여 시간에 따른 메트릭 및 이벤트를 모델링합니다.

RedisTimeSeries 의 주요 기능은 다음과 같습니다:

  • 자동 타임스탬핑을 통한 높은 처리량의 수집.

  • 평균, 최소, 최대, 합계와 같은 집계가 포함된 시간 간격에 따른 범위 쿼리입니다.

  • 장기 보관에 대한 보존 정책 및 압축 규칙.

  • 시계열 집합을 그룹화하고 쿼리하기 위한 레이블입니다.

RedisTimeSeries 의 일반적인 사용 사례는 다음과 같습니다:

  • 인프라 및 애플리케이션 메트릭(CPU, 메모리, 지연 시간).

  • IoT 센서 판독 및 원격 측정.

  • 금융 틱 데이터 및 시장 지표.

  • 비즈니스 KPI 및 운영 대시보드.

RedisTimeSeries 예제

시계열을 만들고 값을 추가하려면 다음과 같이 하세요:

> TS.CREATE temp:room1

OK

> TS.ADD temp:room1 * 25.3

(integer) 1736846400000

최신 샘플을 받으려면:

> TS.GET temp:room1

1) (integer) 1736846400000

2) "25.3"

자세한 내용은 RedisTimeSeries 문서를 참조하세요.

Redis 벡터

Redis 벡터는 벡터 데이터 유형과 벡터 유사도 검색 기능을 제공하여 임베딩에 대한 근사 근사 이웃(ANN) 쿼리를 지원합니다. 이를 통해 시맨틱 검색 및 추천과 같은 AI 및 ML 워크로드를 Redis 에서 직접 실행할 수 있습니다.

Redis Vector의 주요 기능은 다음과 같습니다:

  • 고차원 벡터(예: 128-1536 차원)를 HNSW 및 flat과 같은 구성 가능한 인덱스 유형으로 저장합니다.

  • 코사인, 내적 곱 또는 L2 과 같은 거리 메트릭을 사용하여 벡터 필드에서 K-최근접 이웃(KNN) 검색을 수행합니다.

  • 구조화된 필드에서 벡터 유사성과 필터 조건을 결합하는 하이브리드 쿼리입니다.

  • 유연한 스키마를 위해 RediSearch 또는 쿼리 엔진과 통합합니다.

Redis 벡터의 일반적인 사용 사례는 다음과 같습니다:

  • RAG 파이프라인을 위한 시맨틱 문서 검색.

  • 사용자 또는 항목 임베딩을 사용한 개인화된 추천.

  • 이미지, 오디오 또는 코드 임베딩에 대한 유사성 검색.

  • 학습된 임베딩을 사용한 사기 및 이상 징후 탐지.

Redis 벡터 예시:

최소 벡터 인덱스와 하나의 문서를 생성합니다(4차원 예시):

> FT.CREATE vIdx ON HASH PREFIX 1 "vdoc:" \

SCHEMA embedding VECTOR HNSW 6 TYPE FLOAT32 DIM 4 DISTANCE_METRIC COSINE

OK

> HSET vdoc:1 embedding "\x00\x00\x80?\x00\x00\x80?\x00\x00\x80?\x00\x00\x80?"

(integer) 1

가장 가까운 벡터를 KNN으로 검색합니다:

> FT.SEARCH vIdx "(*=>[KNN 1 @embedding $v AS score])" \

PARAMS 2 v "\x00\x00\x80?\x00\x00\x80?\x00\x00\x80?\x00\x00\x80?" SORTBY score DIALECT 2

1) (integer) 1

2) "vdoc:1"

3) 1) "embedding"

   2) "\x00\x00\x80?..."

   3) "score"

   4) "0.000000"

자세한 내용은 벡터 검색 개념 문서를 참조하세요.

릴리스 노트 및 변경 로그 Redis 7 ~ Redis 8

Redis 7과 Redis 8의 기능적 차이점은 다음과 같습니다:

  • 향상된 스트림은 원자 메시지 수명 주기와 보다 깔끔한 소비자 그룹 관리를 위해 XDELEX와 XACKDEL을 명령합니다.

  • 대규모 비트셋에 대한 분석을 위해 더 풍부한 BITOP 연산자를 사용하는 확장된 비트맵 연산.

  • 쿼리 엔진과 통합된 더욱 성숙한 벡터 검색 기능.

  • 이전 7.x 릴리스에서는 제공되지 않았던 여러 가지 보안 및 안정성 수정 사항이 적용되었습니다.

  • 모듈 배포 및 패키징이 8.x 으로 통합되어 배포가 간소화됩니다.