[REDIS] StackExchange.Redis와 레디 스의 KEYSPACE 알림
REDISStackExchange.Redis와 레디 스의 KEYSPACE 알림
나는 주위를보고했고 나는 StackExchange.Redis 라이브러리를 사용하여 레디 스에 KEYSPACE 알림에 가입을 수행하는 방법을 찾을 수 없습니다입니다.
내가 채널을 사용하여 pubsub을 발견했습니다, 그러나 이것은 더 많은 서비스 버스 같은 일이다 가능한 테스트를 확인 / 특정에 가입하는 것보다 대기하는 키 이벤트를 레디 스.
그것은 StackExchange.Redis를 사용하여이 레디 스 기능을 활용할 수 있습니까?
해결법
-
==============================
1.사용 사례에는 가정이 없다, 이것은 잘 작동합니다 - 정규 가입자 API는 잘 작동합니다.
사용 사례에는 가정이 없다, 이것은 잘 작동합니다 - 정규 가입자 API는 잘 작동합니다.
그 사람들이 그것을 복제 할 필요가 없습니다 있도록 keyapace 알림의 구문을 캡슐화하는 - 그러나, 나는이 아마도 API에 도우미 메서드의 혜택을, 그리고 아마도 다른 대리인이 서명 할 수 붙박이 기능이 동의 좀 않습니다. 들어 있다는 : 당신이 그것을 잊어되지 않도록 문제를 기록 좋습니다.
우선, 그것은 레디 스의 키 스페이스 이벤트가 활성화되어 있는지 확인하는 것이 중요합니다. 예를 들어, 이벤트 유형 세트의 키를 사용하도록 설정해야합니다. 이것은 구성 SET 명령을 사용하여 수행 할 수 있습니다 :
CONFIG SET notify-keyspace-events KEs
키 스페이스 이벤트가 활성화되면, 그냥 술집 서브 채널에 가입에 관하여 :
using (ConnectionMultiplexer connection = ConnectionMultiplexer.Connect("localhost")) { IDatabase db = connection.GetDatabase(); ISubscriber subscriber = connection.GetSubscriber(); subscriber.Subscribe("__keyspace@0__:*", (channel, value) => { if ((string)channel == "__keyspace@0__:users" && (string)value == "sadd") { // Do stuff if some item is added to a hypothethical "users" set in Redis } } ); }
여기에 키 스페이스 이벤트에 대해 자세히 알아보기.
-
==============================
2.그냥 선택한 답변이 이미 설명 무엇 연장 :
그냥 선택한 답변이 이미 설명 무엇 연장 :
using (ConnectionMultiplexer connection = ConnectionMultiplexer.Connect("localhost")) { IDatabase db = connection.GetDatabase(); ISubscriber subscriber = connection.GetSubscriber(); subscriber.Subscribe($"__keyspace@0__:{channel}", (channel, value) => { // Do whatever channel specific handling you need to do here, in my case I used exact Key name that I wanted expiration event for. } ); }
또 다른 중요한 것은, 내가 KEX 가입했다 (CONFIG SET는 통지 - 키 스페이스 - 이벤트 KEX )가 만료 알림 채널을 기반으로 업데이트를 얻을 수 있습니다.
from https://stackoverflow.com/questions/23180765/redis-keyspace-notifications-with-stackexchange-redis by cc-by-sa and MIT license
'REDIS' 카테고리의 다른 글
[REDIS] 어떻게 스케일 Node.js를 웹 소켓 레디 스 서버에? (0) | 2020.01.05 |
---|---|
[REDIS] C에서 # StackExchange / 센티넬와 레디 스 페일 오버 (0) | 2020.01.05 |
[REDIS] 레디 스에 대량의 인제 스트 (0) | 2020.01.04 |
[REDIS] 어떻게 레디 스에서 /로 설정 / GET pandas.DataFrame에? (0) | 2020.01.04 |
[REDIS] 레디 스에 만료되지 않는 키 찾기 (0) | 2020.01.04 |