Redis는 고성능 키-값 데이터베이스입니다. Redis의 출현은 memcached와 같은 키값 저장소의 단점을 크게 보완했으며 일부 상황에서는 관계형 데이터베이스에 대한 매우 좋은 보완 역할을 할 수 있습니다.
문자열 유형은 Redis의 가장 기본적인 데이터 구조입니다. 우선 키는 문자열 유형이며, 기타 여러 구조가 문자열 유형을 기반으로 구축되어 있으므로 문자열은 다음과 같습니다. type can 다른 네 가지 데이터 구조를 학습하기 위한 기반을 마련합니다. 문자열 유형은 실제로 문자열(단순 문자열, 복합 문자열(xml, json), 숫자(정수, 부동 소수점 숫자), 바이너리(이미지, 오디오, 비디오))일 수 있지만 최대값은 512M을 초과할 수 없습니다.
사용 시나리오: 캐시 기능: 문자열의 가장 일반적인 사용 시나리오인 Redis는 캐싱 계층이고 Mysql은 저장 계층입니다. Redis에는 높은 동시성, 캐싱을 지원하는 기능이 있으므로 대부분의 요청 데이터를 가져옵니다. 일반적으로 읽기 및 쓰기 속도를 높이고 백엔드 압력을 줄이기 위해 작동할 수 있습니다. (redis가 높은 동시성을 지원하는 특징을 갖는 이유는 다음 글에서 설명하겠습니다.) 카운터: 많은 응용 프로그램은 계산을 위한 기본 도구로 Redis를 사용하며 빠른 계산 및 쿼리 캐싱 기능을 실현할 수 있으며 데이터를 한 단계로 다른 데이터 소스로 전송할 수 있습니다. 비디오 재생 횟수 시스템의 핵심 구성 요소는 Redis이며, 이는 비디오 재생 횟수를 계산하는 데 사용됩니다. 공유 세션: 로드 밸런싱을 고려하여 분산 서비스는 사용자 정보에 대한 액세스를 다른 서버로 분산합니다. 사용자는 액세스를 새로 고칠 때 다시 로그인해야 할 수 있습니다. 여기에서 이 모드에서는 redis를 사용하여 사용자 세션을 중앙에서 관리할 수 있습니다. , Redis의 고가용성과 확장성이 보장되는 한 사용자 업데이트나 로그인 정보는 매번 Redis에서 직접 가져옵니다. 속도 제한: 보안상의 이유로 사용자는 로그인할 때마다 휴대폰 인증 코드를 입력해야 합니다. SMS 인터페이스에 자주 액세스하는 것을 방지하기 위해 사용자가 분당 인증 코드를 받는 빈도가 제한됩니다.
redis에서 해시 유형은 value={{field1,value1},……fieldN,valueN}}
Hash와 같은 키-값 쌍 구조인 키 자체를 나타냅니다. 문자열 직렬화보다 구조가 직관적이고 업데이트 작업이 편리하므로 정보 캐싱에 더 적합합니다. 따라서 사용자 정보 관리 등에 자주 사용되지만 해시 유형은 관계형 데이터베이스와 다릅니다. 관계형 데이터베이스는 완전히 구조화되어 복잡한 관계형 쿼리를 수행할 수 있습니다. 복잡한 관계형 쿼리를 시뮬레이션하려면 개발이 어렵고 유지 관리 비용이 높습니다.
목록 유형은 순서가 지정된 여러 문자열을 저장하는 데 사용됩니다. 목록의 각 문자열은 최대 2의 32제곱 - 1개의 요소를 저장할 수 있습니다. ) 및 팝(pop)은 지정된 범위의 요소 목록을 가져오고, 지정된 인덱스 아래 테이블의 요소를 가져오는 등의 작업을 수행할 수 있습니다. 목록은 상대적으로 유연한 데이터 구조로 서비스를 제공할 수 있습니다. 그리고 큐의 역할은 실제 개발에서 많은 응용 시나리오를 가지고 있습니다.
목록에는 순서가 지정된 요소가 있으므로 색인 첨자를 사용하여 단일 또는 여러 요소를 가져올 수 있습니다. 목록의 요소는 반복될 수 있습니다.
사용 시나리오: 메시지 큐: Redis의 lpush+brpop 명령 조합은 차단 큐를 실현할 수 있습니다. 생산자 클라이언트는 lupsh를 사용하여 목록 왼쪽의 요소를 삽입하고, 여러 소비자 클라이언트는 차단 시 brpop 명령을 사용하여 "잡습니다". 목록 끝에 있는 요소는 여러 클라이언트가 로드 밸런싱과 소비의 고가용성을 보장합니다. 클립보드.png 메시지 대기열 모델↑ 기사 목록: 각 사용자는 자신의 기사 목록을 가지며 이제 기사 목록이 페이지에 표시되어야 합니다. 시간이 지나면 순서가 지정될 뿐만 아니라 인덱스 범위에 따라 요소 검색도 지원하는 목록 사용을 고려해 볼 수 있습니다.
세트 유형은 여러 문자열의 요소를 저장하는 데에도 사용되지만 목록과 달리 세트에 중복 요소가 허용되지 않으며 세트의 요소는 순서가 없고 인덱스로 첨자를 얻을 수 없습니다. Redis는 컬렉션 내의 추가, 삭제, 수정 및 쿼리를 지원할 뿐만 아니라 여러 컬렉션의 교차, 합집합 및 차이 집합도 지원합니다. 컬렉션 유형을 적절하게 사용하면 실제 개발 시 많은 실제 문제를 해결할 수 있습니다.
사용 시나리오: 태그: 컬렉션 유형의 일반적인 사용 시나리오입니다. 예를 들어 한 사용자는 엔터테인먼트와 스포츠에 더 관심이 있고 다른 사용자는 뉴스에 관심이 있을 수 있습니다. 이러한 데이터를 사용하면 동일한 태그를 얻을 수 있습니다. 사용자의 일반적인 취미에 대한 태그와 사람의 데이터는 사용자 경험과 강력한 사용자 지속성을 위해 더 중요합니다. 특정 명령이 실패하고 데이터 불일치가 발생하는 것을 방지하려면 사용자와 태그의 관계 유지가 동일한 트랜잭션에서 수행되어야 합니다
Ordered 세트는 필연적으로 세트에 중복된 멤버를 가질 수 없다는 특징을 유지하지만, Ordered 세트의 요소는 정렬이 가능하지만 목록과 다릅니다. 정렬 기준으로 색인 첨자를 사용하는 것은 각 요소에 대한 점수를 정렬 기준으로 설정한다는 것입니다. (주문 세트의 요소는 반복될 수 없지만 csore는 반복될 수 있습니다. 마치 학생 수는 반복될 수 없지만 시험 점수는 동일할 수 있는 학급의 학생들과 같습니다.)
위 내용은 Redis 데이터 구조는 무엇입니까?의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!