먼저 Redis에 대해 간단히 소개하겠습니다.
(학습 영상 공유: redis 영상 튜토리얼)
Redis는 고성능 키-값 데이터베이스입니다. Redis 및 기타 키-값 캐시 제품에는 다음과 같은 세 가지 특징이 있습니다.
1. Redis는 데이터 지속성을 지원합니다. 메모리에 있는 데이터를 디스크에 저장하고 다시 시작할 때 사용할 수 있습니다.
2. Redis는 단순한 키-값 유형의 데이터를 지원할 뿐만 아니라 list, set, zset, hash와 같은 데이터 구조의 저장도 제공합니다.
3. Redis는 데이터 백업, 즉 마스터-슬레이브 모드의 데이터 백업을 지원합니다.
5가지 용도
1. 전체 페이지 캐싱
전체 페이지 캐싱. 서버 측 렌더링된 콘텐츠를 사용하는 경우 각 개별 요청에 대해 각 페이지를 다시 렌더링할 필요가 없습니다. Redis와 같은 캐시를 사용하면 자주 요청되는 콘텐츠를 캐시하여 가장 많이 요청되는 페이지의 대기 시간을 크게 줄일 수 있으며 대부분의 프레임워크에는 Redis 캐싱 페이지에 대한 후크가 있습니다.
// 设置全页面缓存1分钟 SET key "<html>...</html>" EX 60 // 获取全页面 GET key
2. 순차 배열
Redis의 Set 데이터 구조는 매우 빠르고 효율적으로 증가 및 감소가 가능하기 때문에 SQL 쿼리보다 성능이 훨씬 높습니다. 이를 Redis의 정렬 세트와 결합하면 목록에서 가장 높은 평가를 받은 항목을 밀리초 단위로 가져올 수 있으며 구현하기가 매우 쉽습니다.
// 向排序集合中添加值 ZADD sortedSet 1 "one" // 从排序集合中获取所有值 ZRANGE sortedSet 0 -1 // 从排序集合中获取所有值与权重 ZRANGE sortedSet 0 -1 WITHSCORES
3. 세션 저장
제가 본 Redis의 가장 일반적인 용도는 세션 저장입니다. Memcache와 같은 다른 세션 저장소와 달리 Redis는 캐시가 중지되어 다시 시작될 때 모든 데이터가 그대로 유지되도록 데이터를 유지할 수 있습니다. 엄격하게 진행되는 작업이 아니더라도 이 기능을 사용하면 사용자의 많은 수고를 덜 수 있습니다. 아무 이유 없이 대화가 무작위로 삭제되는 것을 좋아하는 사람은 아무도 없습니다.
// 设置一分钟过期的session SET randomHash "{userId}" EX 60 // 获取用户ID GET randomHash
4. 대기열
덜 일반적이지만 Redis로 할 수 있는 매우 유용한 작업은 대기열입니다. 이메일 대기열이든 다른 애플리케이션에서 사용하는 데이터이든 Redis에서 효율적인 대기열을 생성할 수 있습니다. 스택에 익숙하고 프로젝트를 푸시하고 팝할 수 있는 개발자라면 누구나 이 기능을 쉽고 자연스럽게 사용할 수 있습니다.
// 添加消息 HSET messages <id> <message> ZADD due <due_timestamp> <id> // 接收消息 ZRANGEBYSCORE due -inf <current_timestamp> LIMIT 0 1 HGET messages <message_id> // 删除消息 ZREM due <message_id> HDEL messages <message_id>
5. pub/sub
Redis의 궁극적인 실제 사용법은 제가 이 글에서 제안할 pub/sub입니다. 이는 Redis에 내장된 가장 강력한 기능 중 하나입니다. 가능성은 무궁무진합니다. 실시간 채팅 시스템을 만들고, 소셜 네트워크에서 친구 요청에 대한 알림을 실행하는 등의 작업을 수행할 수 있습니다. 이 기능은 Redis가 제공하는 가장 과소평가된 기능 중 하나이지만 매우 강력하고 사용하기 쉽습니다.
// 向通道中推送消息 PUBLISH channel message // 从通道中获取消息 SUBSCRIBE channel
결론:
Redis의 실제 사용이 즐거웠기를 바랍니다. 이 기사는 Redis가 수행할 수 있는 작업의 표면적인 부분에 불과하지만 Redis를 최대한 활용하는 방법에 대한 영감을 얻으실 수 있기를 바랍니다.
관련 권장 사항: redis 데이터베이스 튜토리얼
위 내용은 Redis의 5가지 주요 용도를 알고 있나요?의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!