이 글은 기계 번역의 미러 문서이며, 원본 기사로 바로 이동하려면 여기를 클릭해 주세요.

보기: 34045|회답: 6

[출처] .NET은 만료 알림을 위해 Redis 캐시를 사용합니다

[링크 복사]
2020-8-22 10:34:59에 게시됨 | | | |
특정 시간 제한 작업을 수행할 때는 결과에 대한 피드백이 필요합니다. 예를 들어, 주문은 만료 후 자동으로 삭제되고, 며칠 후 자동으로 칭찬되며, 미지급 주문은 15분 후에 종료되는 등, 이들은 시간 제한 작업 프레임워크나 폴링 방법을 통해 완료할 수 있습니다. 이 글은 Redis 고급 기능 캐시 만료 이벤트 알림 메커니즘과 .NET/C# 코드를 결합하여 비즈니스 요구사항을 완료합니다.

소개

사용 시나리오: 1. 결제 비즈니스에서는 미지급 주문이 자동으로 종료됩니다 2. 캐시 만료 알림

일반적으로 타이밍 서비스를 이용해 미지급 주문의 자동 종료를 처리할 수 있습니다. 예를 들어, 미지급 및 만료된 주문을 처리하기 위해 매분 인터페이스를 호출하는 식입니다. 하지만 이 경우 컴퓨터 성능을 소모하게 되며, 주문이 없더라도 매분 처리되며, 주문 처리 최대 지연 시간은 59초가 되고, 타이밍 서비스는 항상 이용 가능해야 합니다

그렇다면 지연 처리가 적은 미지급 및 만료된 주문이 있을 때만 Redis의 캐시 만료 메커니즘을 이용해 구독을 푸시할 수 있을까요?

Redis 구독

redis.conf 설정 파일에서 notify-keyspace-events Ex를 수정하세요

컵 자원을 절약하기 위해 이벤트 알림은 기본적으로 켜져 있지 않으며, 기본값은 notify-keyspace-events입니다

# K 키 공간 알림, <db>접두사가 __keyspace@__
# E 키 이벤트 알림, <db>접두사가 __keysevent@__
# g del, expipre, rename 및 기타 일반적인 명령어들, ...
# $string 명령
# 명령 목록
#s 명령어 설정
# h 해시 명령
# Z 명령 명령 설정
# x 만료 이벤트 (키가 만료될 때마다 생성됨)
# e 퇴출 이벤트 (메모리가 가득 찰 상태에서 키가 삭제될 때 생성됨)
# g$lshzxe 별명, 그래서 "AKE"는 모든 사건을 의미한다


notify-keyspace-events "KX"는 키의 무효화 이벤트를 모니터링하고 싶다는 뜻입니다. 매개변수를 AKE 문자열로 설정하면 모든 종류의 알림을 보내야 합니다.

저는 제 컴퓨터에 redis를 서비스로 설치하고, redis.windows.conf 설정 파일을 수정했으며, 효과를 내려면 redis 서비스 구성을 재시작해야 했습니다.

.NET/C# 코드 예시

패키지는 다음과 같습니다:



호출



redis-cli로 캐시를 작성해 봅시다.





사실, redis-cli를 통해 다음 명령을 실행하면 캐시 만료 알림을 구독할 수도 있습니다:




N개의 클라이언트가 캐시 만료 이벤트 알림에 가입하면, redis는 아래 그림과 같이 한 클라이언트가 아니라 N명의 사용자에게 동일한 만료 메시지를 알립니다:



C# 소스 코드 다운로드:

https://down.itsvse.com/item/17856.html

요약

Redis 퍼블/구독은 신뢰할 수 없는 메시지 메커니즘입니다. 정보를 저장하지 않고, 온라인만 전달하며, 승인 확인 메커니즘도 없고 구독 세그먼트만 전달됩니다. 그래서 Keyspace Notifications 역시 신뢰할 수 없는 알림 시스템입니다. 만약 우리 비즈니스가 좋은 신뢰성을 필요로 한다면 이 시스템은 최선의 선택이 아닙니다. 일반적으로 우리는 이를 구현하기 위해 RabbitMQ의 DLX(Dead-Letter-Exchange)를 추천하는데, 이는 지연 큐 기능입니다. 단지 Redis의 솔루션이 구현이 쉽고 운영 비용이 적게 들기 때문입니다. 높은 신뢰성이 필요하지 않은 기업에게는 여전히 매우 편리합니다.




이전의:.NET Core 3.1 설치 중국어 스마트 프롬프트
다음:.NET은 전체 참조 어셈블리를 받지 않습니다
2020-8-29 14:33:18에 게시됨 |
배우기 위해 배우세요
2021-11-30 13:16:47에 게시됨 |
배우세요
2021-11-30 13:21:02에 게시됨 |
Redis 퍼블/구독은 신뢰할 수 없는 메시지 메커니즘입니다. 정보를 저장하지 않고, 온라인만 전달하며, 승인 확인 메커니즘도 없고 구독 세그먼트만 전달됩니다. 그래서 Keyspace Notifications 역시 신뢰할 수 없는 알림 시스템입니다. 만약 우리 비즈니스가 좋은 신뢰성을 필요로 한다면 이 시스템은 최선의 선택이 아닙니다. 일반적으로 우리는 이를 구현하기 위해 RabbitMQ의 DLX(Dead-Letter-Exchange)를 추천하는데, 이는 지연 큐 기능입니다. 단지 Redis의 솔루션이 구현이 쉽고 운영 비용이 적게 들기 때문입니다. 높은 신뢰성이 필요하지 않은 기업에게는 여전히 매우 편리합니다.
2022-2-14 17:42:43에 게시됨 |
봐, 배워
2022-3-2 15:25:00에 게시됨 |
배우세요
2022-7-27 16:40:13에 게시됨 |
배우기 위해 배우세요
면책 조항:
Code Farmer Network에서 발행하는 모든 소프트웨어, 프로그래밍 자료 또는 기사는 학습 및 연구 목적으로만 사용됩니다; 위 내용은 상업적 또는 불법적인 목적으로 사용되지 않으며, 그렇지 않으면 모든 책임이 사용자에게 부담됩니다. 이 사이트의 정보는 인터넷에서 가져온 것이며, 저작권 분쟁은 이 사이트와는 관련이 없습니다. 위 내용은 다운로드 후 24시간 이내에 컴퓨터에서 완전히 삭제해야 합니다. 프로그램이 마음에 드신다면, 진짜 소프트웨어를 지원하고, 등록을 구매하며, 더 나은 진짜 서비스를 받아주세요. 침해가 있을 경우 이메일로 연락해 주시기 바랍니다.

Mail To:help@itsvse.com