메시지 큐 MQ로 레디 스

이 저자에서 다운로드 https://download.csdn.net/download/LongtengGensSupreme/12157626 다운로드 패키지가 로컬 파일 디렉토리로 확장 레디 스 : E : \ 소스 \ redisfile \ 레디 스 - x64-3.2.100, 아래와 같이

 

 

 

 

출시를 용이하게하기 위해, 우리는 디렉토리에 새로운 startredis.bat 파일을 생성,

그런 다음 파일을 작성 : 레디 스 서버 redis.windows.conf

이 명령은 redis.window.conf의 내용을 읽어 레디 스-SERVER.EXE 명령을 호출 사실이다

아래에 표시된대로, 레디 스 시작의 성공을 볼 수있을 것이다, 당신은 그냥 좋은 startredis.bat을 만든 파일을 더블 클릭합니다 :

 

 

시작 후에 배치 레디 스 서버. 레디 스 서버를 사용할 수 온다 당신은 테스트 클라이언트 도구를 사용할 수 있습니다

레디 스 아래와 같이 클라이언트를, 현재 레디 스 서버에 연결 동일한 폴더에 레디 스-cli.exe 파일을 클릭, 시작하는 데 사용할 수있는 클라이언트 도구와 함께 제공

 

 

레디 스-CLI에 도시 된 바와 같이 클라이언트가 성공적으로 시작됩니다.

 

우리는 다음과 같은 시험을 수행 클라이언트 인터페이스 입력 설정 키 1의 값 1, 캐리지 리턴 DOS, 클라이언트 디스플레이를 볼 수 있습니다

 

 

클라이언트 표시를 입력 키 1 얻을 입력 :

  

 

이 작품을 통해, 우리는 Windows 환경에 잘 레디 스에 설치 한 우리의 준비가 완료되면, 레디 스 레디 스는 MQ 메시지 큐의 경우로 사용되는 다음의 간단한 사용을 추가

경우에 대해 제품을 구입하려면, 다음 싱글은 - 다음과 같이 "포인트 증가 :

2, 콘솔 프로젝트 RedisMessageQueue에 새 항목이, Nuget는 추가 패키지 관리자를 사용 ServiceStack.Redis을 ,

사용하여 시스템;
 사용 ServiceStack.Redis, 

네임 스페이스 RedisMessageQueue 
{ 
    클래스 프로그램 
    { 
        정적  무효 메인 ( 문자열 []에 args) 
        { 
            Console.WriteLine ( " 메시지 큐 데모 " ); 
            RedisClient redisClient = 새로운 새로운 RedisClient ( " 로컬 호스트 : 6379을 " );
             문자열 SS를 = " 이 redisMQ하다 " ; 
            Console.WriteLine ($ " 메시지 큐 입력 : SS {} " );
            // 생산자, LPush는 데이터를 삽입 RPush 바로 삽입 데이터 왼쪽 
            redisClient.LPush ( " MQ " , System.Text.Encoding.UTF8.GetBytes (SS)를) 

            System.Diagnostics.Process.Start ( @ " F : \ 사람을 \ linjie \ Logteng \ ConsoleApp1 \ 빈 \ 디버그 \ netcoreapp3.1 \ redisClientJiFen.exe " ); 
            System.Threading.Thread.Sleep (TimeSpan.FromSeconds ( 1. ));
             INT 나는 = 0 ;
             문자열 주석 = 널 (null) ;
             그동안 ( true로 ) 
            { 
                주석 = $ "{DateTime.Now.ToString WG ( " yyyMMddHHmmssfffffff " )} " ; 
                Console.WriteLine ($ " 세대 {내가 ++} 주문, 주문 번호 : {주석} " ); 
                Console.WriteLine ( " ....... 주문 처리 .... ............ " ); 
                Console.WriteLine은 ($ " 주문 SN {}를 처리 " ) 
                System.Threading.Thread.Sleep (TimeSpan.FromSeconds ( . 3 ) ) 
                redisClient.LPush ( " MQ " , System.Text.Encoding.UTF8.GetBytes (SS + I ++ )); 
            } 

            //소비자는 권리 RPop 추출 된 데이터는 LPop 페치 된 데이터를 좌측
             // 바이트 [] = 1 바이트 redisClient.RPop ( "MQ를");
             // 문자열 = System.Text.Encoding.UTF8.GetString MR1 (1 바이트)
             // 콘솔. 를 WriteLine은 ($ "는 메시지 큐 콘텐츠 획득 : MR1을 {}"); 


            // LPUSH ----- "RPOP
             // RPUSH -----"LPop
             // 소비자 LPop BRPop BLPOP RPOP
             // 푸시 모델 BRPop BLPop을, 데이터 받아 수동
             // 풀 모델 RPop LPop, 수입 데이터를 획득하기 위해 구상
             // 요약, 일대일 통신 

            // 바이트 [] [] 바이트 = redisClient.BRPop ( "MQ", 60);
             // 바이트 [ ] 바이트 = redisClient.BRPopValue ( "MQ", 60);
             //씨 = 문자열의 System.Text.Encoding.UTF8.GetString은 (바이트);
             // Console.WriteLine는 ($ "는 메시지 큐 콘텐츠 획득 : 미스터 {}"); 


            // 그동안 (true로)
             // {
             //     바이트 [] 바이트 redisClient.RPop = ( "MQ");
             //     IF (= NULL 바이트!)
             //     {
             //         씨 = System.Text.Encoding.UTF8.GetString (바이트)의 문자열;
             //         Console.WriteLine ($ "{씨의 } ");
             //     }
             //     다른
             //     {
             //         Console.WriteLine ($"메시지 큐에 데이터 ")가 없다;
             //    }
             //     System.Threading.Thread.Sleep (TimeSpan.FromSeconds (1));
            // } 
            Console.ReadKey (); 
        } 
    } 
}

3, 통합 프로세스 콘솔 프로젝트 redisClientJiFen를 추가

사용 ServiceStack.Redis 단계;
사용하여 시스템; 

네임 스페이스 redisClientJiFen 
{ 
    클래스 프로그램 
    { 
        정적  무효 메인 ( 문자열 []에 args) 
        { 
            Console.WriteLine ( " 안녕하세요! " ); 
            RedisClient redisClient = 새로운 RedisClient ( " 로컬 호스트 : 6379 " ); 
            Console.WriteLine ($ " RedisClient连接成功" );
            반면 ( ) 
            { 
                바이트[] 바이트 = redisClient.RPop ( " MQ " );
                 IF는 (바이트 =! ) 
                { 
                    문자열 씨 =의 System.Text.Encoding.UTF8.GetString (바이트); 
                    Console.WriteLine는 ($ " 주문 {씨} 통합 프로세스가 완료 " ) 
                } 
                다른 
                { 
                    Console.WriteLine ($ " 데이터가없는 메시지 큐 ' ); 
                } 
                System.Threading.Thread.Sleep (TimeSpan.FromSeconds ( 1. )); 
            } 
        } 
    } 
}

 

(4) 동작의 결과

 

추천

출처www.cnblogs.com/1175429393wljblog/p/12517452.html