>  기사  >  데이터 베이스  >  Redis 데이터 구조는 무엇입니까?

Redis 데이터 구조는 무엇입니까?

PHPz
PHPz앞으로
2023-05-28 10:16:291171검색

Redis는 고성능 키-값 데이터베이스입니다. Redis의 출현은 memcached와 같은 키값 저장소의 단점을 크게 보완했으며 일부 상황에서는 관계형 데이터베이스에 대한 매우 좋은 보완 역할을 할 수 있습니다.

Redis 데이터 구조는 무엇입니까?

1. 문자열

문자열 유형은 Redis의 가장 기본적인 데이터 구조입니다. 우선 키는 문자열 유형이며, 기타 여러 구조가 문자열 유형을 기반으로 구축되어 있으므로 문자열은 다음과 같습니다. type can 다른 네 가지 데이터 구조를 학습하기 위한 기반을 마련합니다. 문자열 유형은 실제로 문자열(단순 문자열, 복합 문자열(xml, json), 숫자(정수, 부동 소수점 숫자), 바이너리(이미지, 오디오, 비디오))일 수 있지만 최대값은 512M을 초과할 수 없습니다.

사용 시나리오: 캐시 기능: 문자열의 가장 일반적인 사용 시나리오인 Redis는 캐싱 계층이고 Mysql은 저장 계층입니다. Redis에는 높은 동시성, 캐싱을 지원하는 기능이 있으므로 대부분의 요청 데이터를 가져옵니다. 일반적으로 읽기 및 쓰기 속도를 높이고 백엔드 압력을 줄이기 위해 작동할 수 있습니다. (redis가 높은 동시성을 지원하는 특징을 갖는 이유는 다음 글에서 설명하겠습니다.) 카운터: 많은 응용 프로그램은 계산을 위한 기본 도구로 Redis를 사용하며 빠른 계산 및 쿼리 캐싱 기능을 실현할 수 있으며 데이터를 한 단계로 다른 데이터 소스로 전송할 수 있습니다. 비디오 재생 횟수 시스템의 핵심 구성 요소는 Redis이며, 이는 비디오 재생 횟수를 계산하는 데 사용됩니다. 공유 세션: 로드 밸런싱을 고려하여 분산 서비스는 사용자 정보에 대한 액세스를 다른 서버로 분산합니다. 사용자는 액세스를 새로 고칠 때 다시 로그인해야 할 수 있습니다. 여기에서 이 모드에서는 redis를 사용하여 사용자 세션을 중앙에서 관리할 수 있습니다. , Redis의 고가용성과 확장성이 보장되는 한 사용자 업데이트나 로그인 정보는 매번 Redis에서 직접 가져옵니다. 속도 제한: 보안상의 이유로 사용자는 로그인할 때마다 휴대폰 인증 코드를 입력해야 합니다. SMS 인터페이스에 자주 액세스하는 것을 방지하기 위해 사용자가 분당 인증 코드를 받는 빈도가 제한됩니다.

2. Hash

redis에서 해시 유형은 value={{field1,value1},……fieldN,valueN}}

Hash와 같은 키-값 쌍 구조인 키 자체를 나타냅니다. 문자열 직렬화보다 구조가 직관적이고 업데이트 작업이 편리하므로 정보 캐싱에 더 적합합니다. 따라서 사용자 정보 관리 등에 자주 사용되지만 해시 유형은 관계형 데이터베이스와 다릅니다. 관계형 데이터베이스는 완전히 구조화되어 복잡한 관계형 쿼리를 수행할 수 있습니다. 복잡한 관계형 쿼리를 시뮬레이션하려면 개발이 어렵고 유지 관리 비용이 높습니다.

3. 목록

목록 유형은 순서가 지정된 여러 문자열을 저장하는 데 사용됩니다. 목록의 각 문자열은 최대 2의 32제곱 - 1개의 요소를 저장할 수 있습니다. ) 및 팝(pop)은 지정된 범위의 요소 목록을 가져오고, 지정된 인덱스 아래 테이블의 요소를 가져오는 등의 작업을 수행할 수 있습니다. 목록은 상대적으로 유연한 데이터 구조로 서비스를 제공할 수 있습니다. 그리고 큐의 역할은 실제 개발에서 많은 응용 시나리오를 가지고 있습니다.

목록에는 순서가 지정된 요소가 있으므로 색인 첨자를 사용하여 단일 또는 여러 요소를 가져올 수 있습니다. 목록의 요소는 반복될 수 있습니다.

사용 시나리오: 메시지 큐: Redis의 lpush+brpop 명령 조합은 차단 큐를 실현할 수 있습니다. 생산자 클라이언트는 lupsh를 사용하여 목록 왼쪽의 요소를 삽입하고, 여러 소비자 클라이언트는 차단 시 brpop 명령을 사용하여 "잡습니다". 목록 끝에 있는 요소는 여러 클라이언트가 로드 밸런싱과 소비의 고가용성을 보장합니다. 클립보드.png 메시지 대기열 모델↑ 기사 목록: 각 사용자는 자신의 기사 목록을 가지며 이제 기사 목록이 페이지에 표시되어야 합니다. 시간이 지나면 순서가 지정될 뿐만 아니라 인덱스 범위에 따라 요소 검색도 지원하는 목록 사용을 고려해 볼 수 있습니다.

4. 세트

세트 유형은 여러 문자열의 요소를 저장하는 데에도 사용되지만 목록과 달리 세트에 중복 요소가 허용되지 않으며 세트의 요소는 순서가 없고 인덱스로 첨자를 얻을 수 없습니다. Redis는 컬렉션 내의 추가, 삭제, 수정 및 쿼리를 지원할 뿐만 아니라 여러 컬렉션의 교차, 합집합 및 차이 집합도 지원합니다. 컬렉션 유형을 적절하게 사용하면 실제 개발 시 많은 실제 문제를 해결할 수 있습니다.

사용 시나리오: 태그: 컬렉션 유형의 일반적인 사용 시나리오입니다. 예를 들어 한 사용자는 엔터테인먼트와 스포츠에 더 관심이 있고 다른 사용자는 뉴스에 관심이 있을 수 있습니다. 이러한 데이터를 사용하면 동일한 태그를 얻을 수 있습니다. 사용자의 일반적인 취미에 대한 태그와 사람의 데이터는 사용자 경험과 강력한 사용자 지속성을 위해 더 중요합니다. 특정 명령이 실패하고 데이터 불일치가 발생하는 것을 방지하려면 사용자와 태그의 관계 유지가 동일한 트랜잭션에서 수행되어야 합니다

5. Ordered Set

Ordered 세트는 필연적으로 세트에 중복된 멤버를 가질 수 없다는 특징을 유지하지만, Ordered 세트의 요소는 정렬이 가능하지만 목록과 다릅니다. 정렬 기준으로 색인 첨자를 사용하는 것은 각 요소에 대한 점수를 정렬 기준으로 설정한다는 것입니다. (주문 세트의 요소는 반복될 수 없지만 csore는 반복될 수 있습니다. 마치 학생 수는 반복될 수 없지만 시험 점수는 동일할 수 있는 학급의 학생들과 같습니다.)

위 내용은 Redis 데이터 구조는 무엇입니까?의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!

성명:
이 기사는 yisu.com에서 복제됩니다. 침해가 있는 경우 admin@php.cn으로 문의하시기 바랍니다. 삭제