Redis는 모든 데이터를 메모리에 저장합니다. 비데이터 동기화가 정상적으로 작동하면 디스크에서 데이터를 0번 읽을 필요가 없습니다. 메모리 응답 시간은 약 100나노초로, 이는 Redis의 빠른 속도를 위한 중요한 기반입니다.
mysql은 디스크에 저장되는 영구 저장소입니다. 검색에는 이러한 병목 현상을 해결하기 위해 일정량의 IO가 필요합니다. 지금은 가장 많은 memcached(mc라고 함)를 사용하고 있습니다.
먼저 사용자가 mc에 액세스합니다. 그런 다음 메모리 및 하드 디스크와 마찬가지로 mysql에 액세스합니다. 데이터를 mc에 복사합니다. redis와 mc는 모두 캐시되어 메모리에서 실행되므로 데이터 양이 많아 웹 액세스 속도가 크게 향상됩니다. (권장 학습: Redis 비디오 튜토리얼)
그러나 mc는 문자열 저장소와 같은 간단한 데이터 구조만 제공합니다. 문자열, 목록, 집합, 해시 집합, 정렬 집합 등과 같은 데이터 구조의 수는 사용자에게 훨씬 더 편리합니다. 결국 실용적인 기능의 레이어를 캡슐화하여 동일한 효과를 얻을 수 있습니다. Redis를 사용하고 천천히 MC를 포기합니다.
Redis는 단일 스레드입니다. 알고리즘 구현을 단순화하면 동시 데이터 구조 구현이 어려울 뿐만 아니라 테스트하기도 번거롭습니다. 둘째, 단일 스레드는 스레드 전환과 잠금 및 잠금 해제로 인한 소비를 방지합니다. 서버 측 개발의 경우 잠금 및 스레드 전환은 일반적으로 성능을 저하시킵니다. 물론 단일 스레딩에도 단점이 있습니다. 이는 Redis의 악몽이기도 합니다. 바로 차단입니다. 명령 실행 시간이 너무 길면 다른 명령이 차단될 수 있으며 이는 Redis에 매우 치명적이므로 Redis는 빠른 실행 시나리오를 위한 데이터베이스입니다.
Redis는 I/O 다중화 기술의 구현으로 epoll을 사용하며 Redis 자체 이벤트 처리 모델은 epoll의 읽기, 쓰기, 닫기 등을 네트워크 I/O가 아닌 이벤트로 변환합니다. 시간이 너무 많이 걸립니다. O에 낭비된다. 다중 FD 읽기 및 쓰기 모니터링을 실현하여 성능을 향상시킵니다.
mysql은 강력하지만 속도가 느리다.
redis는 자주 사용하는 데이터를 캐시에 저장하는데 사용된다. 매우 빠릅니다.
Redis 관련 기술 기사를 더 보려면 Redis 데이터베이스 사용 튜토리얼 열을 방문하세요!
위 내용은 Redis가 mysql보다 빠른 이유의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!