일반적으로 제한 사항에 대해 말하면 Redis는 실시간 높은 동시성 요구 사항을 충족하기 위해 메시지 대기열 형태와 포함된 목록으로도 존재합니다. 일반적으로 전자상거래 형태의 데이터 처리 과정에서는 관련 상품의 큐, 핫세일, 권장 정렬 등이 Redis에 저장되는 경우가 많으며, Storm에 의한 Redis 목록 읽기 및 업데이트도 이 과정에 포함됩니다.
Redis는 고성능 키-값 데이터베이스입니다.
Redis에는 다른 키-값 캐싱 제품과 함께 다음 세 가지 기능이 있습니다.
- Redis는 메모리의 데이터를 디스크에 저장하고 다시 시작할 때 사용할 수 있도록 데이터 지속성을 지원합니다.
- Redis는 간단한 키-값 유형 데이터를 지원할 뿐만 아니라 list, set, zset 및 hash와 같은 데이터 구조의 저장도 제공합니다.
- 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가 제공하는 가장 과소평가된 기능 중 하나이지만 매우 강력하고 사용하기 쉽습니다.
아아아아위 내용은 Redis의 기능은 무엇입니까의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!