1. 16개 데이터베이스의 유래
Redis는 사전 구조의 스토리지 서버입니다. Redis 인스턴스는 데이터 저장을 위한 여러 사전을 제공합니다. 클라이언트는 데이터를 저장할 사전을 지정할 수 있습니다. 이는 관계형 데이터베이스 인스턴스에서 여러 데이터베이스를 생성하는 방법(아래 그림 참조)과 유사하므로 각 사전을 독립된 데이터베이스로 이해할 수 있습니다.
MySQL 인스턴스를 예로 들어보세요
Redis는 기본적으로 16개의 데이터베이스를 지원합니다. Redis 구성 파일 redis/redis.conf에서 데이터베이스를 조정하여 이 값을 수정할 수 있습니다. 설정이 완료된 후 Redis를 다시 시작하면 완료됩니다. 구성.
클라이언트가 Redis와 연결을 설정한 후 기본적으로 데이터베이스 번호 0을 선택하지만 언제든지 SELECT 명령을 사용하여 데이터베이스를 변경할 수 있습니다.
실제 프로젝트에서는 아래 그림과 같이 Redis 구성 파일 형태로 데이터베이스를 지정할 수 있습니다.
2. Redis의 "데이터베이스" 개념을 올바르게 이해하세요
Redis는 사용자 정의 데이터베이스 이름을 지원하지 않으므로 각 데이터베이스 이름은 숫자로 지정됩니다. 개발자는 저장된 데이터와 데이터베이스 간의 대응 관계를 기록해야 합니다. 또한 Redis는 각 데이터베이스에 대해 서로 다른 액세스 비밀번호 설정을 지원하지 않으므로 클라이언트가 모든 데이터베이스에 액세스할 수 있거나 모든 데이터베이스에 액세스 권한이 없습니다. 그러나 Redis의 "데이터베이스" 개념을 올바르게 이해하려면 다음 명령을 언급해야 합니다.
이 명령은 인스턴스 아래의 모든 데이터베이스 데이터를 지울 수 있으며, 이는 우리에게 익숙한 관계형 데이터베이스와 다릅니다. 관계형 데이터베이스의 여러 라이브러리는 다양한 애플리케이션의 데이터를 저장하는 데 사용되는 경우가 많으며, 한 인스턴스에서 모든 라이브러리 데이터를 동시에 지울 수 있는 방법은 없습니다. 따라서 Redis의 경우 이러한 DB는 네임스페이스에 더 가깝고 다른 애플리케이션의 데이터를 저장하는 데 적합하지 않습니다. 예를 들어, 0번 데이터베이스를 사용하여 애플리케이션의 프로덕션 환경에 데이터를 저장하고, 1번 데이터베이스를 사용하여 테스트 환경에 데이터를 저장할 수 있습니다. 그러나 0번 데이터베이스를 사용하여 애플리케이션을 저장하는 것은 적합하지 않습니다. 애플리케이션 A의 데이터를 사용하고 데이터베이스 1번을 사용하여 애플리케이션 B의 데이터를 저장합니다. 애플리케이션은 데이터를 저장하기 위해 서로 다른 Redis 인스턴스를 사용해야 합니다. Redis는 매우 가볍습니다. 빈 Redis 인스턴스는 약 1M만 차지하므로 여러 Redis 인스턴스가 추가 메모리를 많이 차지하는 것에 대해 걱정할 필요가 없습니다.
3. 하나의 인스턴스가 클러스터의 여러 DB를 지원합니까?
위 내용은 모두 단일 Redis를 기준으로 작성되었으니 참고하시기 바랍니다. 클러스터의 경우 Redis 클러스터 모드에는 db0이 하나만 있기 때문에 select 명령을 사용하여 db를 전환하는 것은 지원되지 않습니다. 클러스터와 독립형 Reid 간의 차이점을 확장하기 위해 관심 있는 친구들은 관련 정보를 확인하여 더 깊이 이해할 수 있지만 여기서는 논의하지 않습니다.
주요 일괄 작업은 지원이 제한됩니다. 예를 들어 mget과 mset는 하나의 슬롯에 있어야 합니다
주요 트랜잭션과 Lua는 지원이 제한됩니다. 작업의 키는 하나의 노드에 있어야 합니다
key는 데이터 파티션의 최소 세분성: 지원되지 않음 Bigkey 파티션
은 여러 데이터베이스를 지원하지 않습니다. 클러스터 모드에는 db0이 하나만 있습니다
복제는 한 수준만 지원합니다. 트리 복제 구조는 지원되지 않습니다
위 내용은 Redis의 데이터베이스 개념은 무엇입니까의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!