.net core 는 Redis 게시 구독 을 어떻게 사용 합 니까?

2719 단어 .netcoreRedis
Redis 는 성능 이 매우 강 한 메모리 데이터 베이스 로 보통 캐 시 로 사용 되 지만 그 는 캐 시 로 만 사용 할 수 있 는 것 이 아니다.예 를 들 어 유명한 분포 식 프레임 워 크 dubbo 는 Redis 로 서비스 등록 센터 를 만 들 수 있다.다음은.net core 가 Redis 를 사용 하 는 게시/구독 기능 을 소개 합 니 다.
Redis 구독 발표
Redis 게시 구독(pub/sub)은 메시지 통신 모드 입 니 다.발송 자(pub)가 메 시 지 를 보 내 고 구독 자(sub)가 메 시 지 를 받 습 니 다.
Redis 클 라 이언 트 는 임의의 채널 을 구독 할 수 있 습 니 다.
다음 그림 은 채널 채널 채널 1 과 이 채널 을 구독 하 는 세 개의 클 라 이언 트 인 client 2,client 5 와 client 1 의 관 계 를 보 여 준다.

새로운 메시지 가 PUBLISH 명령 을 통 해 채널 채널 채널 1 에 전 송 될 때 이 메 시 지 는 구독 하 는 세 개의 클 라 이언 트 에 게 전 송 됩 니 다.

Redis 명령 사용
우선,subscribe redismessage 명령 을 통 해 두 클 라 이언 트 가 redismessage 채널 을 구독 하도록 합 니 다.

그리고 Redis 클 라 이언 트 를 하나 더 열 고 명령 publish redismessage"메시지 내용"으로 메 시 지 를 발표 합 니 다.

.net core 를 사용 하여 실현
여기 서 제 가 선택 한 연결 구동 은 StackExchange.Redis 입 니 다.여기 서 주의해 야 할 것 은 ServiceStack.Redis 연결 구동 이 점점 상업 화 되 었 고 4.0 이상 버 전 은 모두 제한 이 있 기 때문에 무료 이 고 사용 하기 좋 은 StackExchange.Redis 를 선택 하고 nuget 으로 설치 하면 됩 니 다.
구독 클 라 이언 트 만 들 기

//    
using (ConnectionMultiplexer redis = ConnectionMultiplexer.Connect("127.0.0.1:6379"))
{
  ISubscriber sub = redis.GetSubscriber();

  //     messages    

  sub.Subscribe("messages", (channel, message) => {

    //       
    Console.WriteLine($"[{DateTime.Now:HH:mm:ss}] {message}");
  });
  Console.WriteLine("    messages");
  Console.ReadKey();
}
게시 클 라 이언 트 만 들 기

//    
using (ConnectionMultiplexer redis = ConnectionMultiplexer.Connect("127.0.0.1:6379"))
{
  ISubscriber sub = redis.GetSubscriber();

  Console.WriteLine("       ,  exit  ");

  string input;

  do
  {
    input = Console.ReadLine();
    sub.Publish("messages", input);
  } while (input != "exit");
}
다음은 게시 클 라 이언 트,구독 클 라 이언 트 두 개 를 실행 합 니 다.

데모 다운로드
이상 이 바로 본 고의 모든 내용 입 니 다.여러분 의 학습 에 도움 이 되 고 저 희 를 많이 응원 해 주 셨 으 면 좋 겠 습 니 다.

좋은 웹페이지 즐겨찾기