>일반적인 문제 >Redis를 사용하는 이유

Redis를 사용하는 이유

(*-*)浩
(*-*)浩원래의
2019-05-31 14:31:083031검색

Redis는 완전한 오픈 소스이며 무료이며 BSD 프로토콜을 준수하며 고성능 키-값 데이터베이스입니다. 현재 가장 널리 사용되는 NoSql 데이터베이스 중 하나이며 데이터 구조 서버라고도 합니다.

Redis를 사용하는 이유

그렇다면 Redis를 사용하는 이유는 무엇일까요?

이유는 간단하고 빠릅니다!

이 문제는 대규모 동시성, 고부하 웹사이트에서 고려해야 합니다. Redis 데이터베이스의 모든 데이터는 메모리에 저장됩니다. 메모리의 읽기 및 쓰기 속도가 하드 디스크보다 훨씬 빠르기 때문에 Redis는 하드 디스크 스토리지 기반의 다른 데이터베이스에 비해 성능면에서 매우 분명한 이점을 가지고 있습니다.

프로젝트에서 Redis의 사용은 주로 성능: 동시성이라는 두 가지 관점에서 고려됩니다. 물론 Redis에는 분산 잠금 등 다른 기능도 있지만 분산 잠금 등 다른 기능만을 위한 것이라면 대신 다른 미들웨어가 있으므로 굳이 Redis를 사용할 필요는 없다. 따라서 이 질문은 주로 성능과 동시성이라는 두 가지 관점에서 답변됩니다.

성능:

실행하는 데 특히 오랜 시간이 걸리고 결과가 자주 변경되지 않는 SQL이 발생하는 경우 실행 중인 결과를 캐시에 넣는 것이 특히 적합합니다. 이러한 방식으로 후속 요청을 읽습니다. 캐시에서 빠른 응답을 가능하게 합니다.

동시성:

대규모 동시성의 경우 모든 요청은 데이터베이스에 직접 액세스하며 데이터베이스에는 연결 예외가 발생합니다. 이때 요청이 데이터베이스에 직접 접근하는 것이 아니라 먼저 Redis에 접근할 수 있도록 Redis를 이용하여 버퍼링 작업을 수행해야 합니다.

redis의 장점:

1. 메모리에서 실행되며 속도가 빠릅니다. 공식에서는 동시 11와트 읽기 작업과 8와트 동시 쓰기 작업을 지원한다고 주장하는데, 이는 상당히 강력하다고 할 수 있습니다.

2. 데이터가 메모리에 있지만 지속성 지원을 제공합니다. 즉, 지속적인 서비스 제공에 영향을 주지 않고 메모리에 있는 데이터를 하드 디스크에 쓸 수 있습니다.

3. (문자열(문자열)), 목록(연결된 목록), 세트(세트), zset(정렬된 세트 - 주문된 세트)) 및 Hash(해시 유형, md5로 암호화된 문자열)

Redis는 무엇이든 할 수 있습니다.

캐싱 , 이것이 오늘날 Redis의 가장 잘 알려진 사용 시나리오임에는 의심의 여지가 없으며 서버 성능 향상에 매우 효과적입니다.

1. 전통적인 관계형 데이터베이스를 사용하면 매우 번거로울 수 있지만 Redis의 SortSet 데이터 구조를 사용하면 매우 편리할 수 있습니다.

2. Redis의 자동 추가 작업의 경우 사용자 좋아요 수, 사용자 방문 수 등과 같은 항목을 계산할 수 있습니다. 이러한 작업에 MySQL을 사용하는 경우 빈번한 읽기 및 쓰기는 속도에 대한 일반적인 사용 시나리오에 상당한 부담을 가져올 것입니다. 리미터는 특정 사용자의 액세스를 제한하는 것입니다. 특정 API의 빈도는 사용자가 미친 클릭으로 인한 불필요한 압력을 방지하는 데 사용됩니다.

3. 컬렉션의 일부 명령을 사용하면 쉽게 해결할 수 있습니다. 교차점, 결합, 차이 집합 등 일부 공통 친구, 공통 취미 및 기타 기능

4. Redis의 자체 게시/구독 모드 외에도 간단한 메시지 대기열을 사용하여 다음과 같은 대기열 메커니즘을 구현할 수도 있습니다. 도착 알림, 이메일 전송 및 기타 요구 사항은 높은 신뢰성을 요구하지 않지만 많은 DB 압력을 가져오고 List를 사용하여 비동기식 분리를 완료할 수 있습니다.

5, PHP를 예로 들어, 기본값입니다. 세션은 서버의 파일에 저장됩니다. 클러스터 서비스의 경우 동일한 사용자가 다른 시스템에 있을 수 있으므로 사용자가 자주 로그인하게 됩니다. Redis를 사용하여 세션을 저장한 후 어떤 시스템에 관계없이 해당 세션 정보를 얻을 수 있습니다. 사용자가 착륙합니다.

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

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