>  기사  >  데이터 베이스  >  Redis에는 왜 16개의 라이브러리가 있습니까?

Redis에는 왜 16개의 라이브러리가 있습니까?

(*-*)浩
(*-*)浩원래의
2019-11-02 13:25:424037검색

Redis에는 왜 16개의 라이브러리가 있습니까?

참고: Redis는 여러 데이터베이스를 지원하며 각 데이터베이스의 데이터는 격리되어 공유할 수 없으며 단일 머신에서만 사용할 수 있습니다. 클러스터인 경우 데이터베이스의 개념이 없습니다.

Redis를 이렇게 여러 개의 데이터베이스로 나누는 이유는 서로 다른 업무가 서로 다른 라이브러리에 저장되어 있기 때문입니다. 그러나 일반적으로 프로젝트 내의 서로 다른 업무는 별도의 라이브러리를 사용하지 않습니다. 서로 데이터 교차가 발생합니다.

Redis는 사전 구조의 스토리지 서버입니다. 실제로 Redis 인스턴스는 데이터를 저장할 사전을 여러 개 제공합니다. 이는 관계형 데이터베이스 인스턴스에 여러 데이터베이스를 생성할 수 있어 각 사전을 독립된 데이터베이스로 이해할 수 있다는 잘 알려진 사실과 유사합니다.

각 데이터베이스는 0부터 시작하여 증가하는 숫자로 외부적으로 이름이 지정됩니다. Redis는 기본적으로 16개의 데이터베이스를 지원합니다(구성 파일을 통해 더 많은 데이터베이스를 지원할 수 있으며 상한 없음), 이 숫자는 데이터베이스를 구성하여 수정할 수 있습니다. 클라이언트가 Redis와의 연결을 설정한 후 자동으로 데이터베이스 번호 0을 선택하지만 언제든지 SELECT 명령을 사용하여 데이터베이스 번호 1을 선택하려는 경우:

redis> SELECT 1
OK
redis [1] > GET foo
(nil)

그러나 다음은 가능합니다. 숫자로 명명된 데이터베이스는 우리가 알고 있는 데이터베이스와 다릅니다.

우선 Redis는 사용자 정의 데이터베이스 이름을 지원하지 않습니다. 각 데이터베이스의 이름은 숫자를 따라 지정되며 개발자는 어떤 데이터베이스가 어떤 데이터를 저장하는지 기록해야 합니다.

또한 Redis는 데이터베이스마다 다른 액세스 비밀번호 설정을 지원하지 않으므로 클라이언트는 모든 데이터베이스에 액세스할 수 있거나 하나의 데이터베이스에도 액세스할 수 있는 권한이 없습니다.

가장 중요한 점은 여러 데이터베이스가 완전히 격리되지 않는다는 것입니다. 예를 들어 FLUSHALL 명령은 Redis 인스턴스의 모든 데이터베이스에서 데이터를 지울 수 있습니다.

요약하자면, 이러한 데이터베이스는 네임스페이스에 더 가깝고 다양한 애플리케이션의 데이터를 저장하는 데 적합하지 않습니다. 예를 들어, 0번 데이터베이스를 사용하여 애플리케이션의 프로덕션 환경에 데이터를 저장하고, 1번 데이터베이스를 사용하여 테스트 환경에 데이터를 저장할 수 있습니다. 그러나 0번 데이터베이스를 사용하여 애플리케이션을 저장하는 것은 적합하지 않습니다. 애플리케이션 A의 데이터를 사용하고 데이터베이스 1번을 사용하여 애플리케이션 B의 데이터를 저장합니다. 애플리케이션은 데이터를 저장하기 위해 서로 다른 Redis 인스턴스를 사용해야 합니다.

Redis는 매우 가볍기 때문에 빈 Redis 인스턴스는 약 1M만 차지하므로 여러 Redis 인스턴스가 많은 추가 메모리를 차지한다고 걱정할 필요가 없습니다.

위 내용은 Redis에는 왜 16개의 라이브러리가 있습니까?의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!

성명:
본 글의 내용은 네티즌들의 자발적인 기여로 작성되었으며, 저작권은 원저작자에게 있습니다. 본 사이트는 이에 상응하는 법적 책임을 지지 않습니다. 표절이나 침해가 의심되는 콘텐츠를 발견한 경우 admin@php.cn으로 문의하세요.