[REDIS] 레디 스 KEYSPACE 알림 flushdb와
REDIS레디 스 KEYSPACE 알림 flushdb와
키 스페이스 알림 봤는데 최근 웹 API에 대한 필수왔다 개발 중.
우리는 푸른에서 레디 스 설정을 가지고있다. API는 주로 우리가 메모리 캐시의 요구에 데이터를 업데이트 할 수 있는지 알아 내기 위해 알림을 사용하여 작동합니다.
지금, 우리는 레디 스 데이터베이스가 플러시 경우 로컬 메모리 캐시를 지우려면 플러시 이벤트를 통지 처리합니다. 그러나 우리는 KEYSPACE 통지로 flushdb 이벤트를 얻을 수 없습니다. 그리고 키 스페이스 이벤트는 "AKE"로 가능하다. "AKE"문자열 수단 모든 이벤트.
PS : 우리는 같은 '설정'이벤트와 알림을 얻을 수있는 '__keyevent @ 2 __ : 세트'
구독 코드는 다음과 같다.
subscriber.Subscribe(
"*",
(channel, value) =>
{
// Some codes here
});
해결법
-
==============================
1.다른 대답이 언급 한 바와 같이 단지, 그러한 통지가 없습니다.
다른 대답이 언급 한 바와 같이 단지, 그러한 통지가 없습니다.
결국, KEYSPACE 알림 단일 키에 이벤트에 대한 알림입니다. 각 통지는 키와 연결되어 있습니다. 키 스페이스 이벤트의 경우, 키 이름은 채널 이름의 일부입니다. KeyEvent를 이벤트의 경우, 키 이름은 메시지입니다.
PUBLISH __keyspace@0__:key_name comamnd PUBLISH __keyevent@0__:command key_name
각 명령은 통지를 보내는 것은 인수로 키가 있어야합니다. 예를 들면 델 키 설정 키의 발. 그러나, flushdb 명령은 인수로 더 키가 없습니다. 이 명령은 하나의 키에 영향을주지 않습니다. 대신, 데이터베이스에있는 모든 키를 제거합니다. 그래서 그것에 대한 그러한 통지가 없습니다. 그렇지 않으면, 당신은 채널에서 무엇을 기대 하는가? 제거 된 모든 키? 그것은 좋은 생각이 아니다.
그러나 flushdb에 대한 이벤트를 시뮬레이션 할 수 있습니다
이러한 방법으로, 당신은 시뮬레이션 flushdb 통지를 얻을 수 있습니다.
-
==============================
2.레디 스 문서에 따르면, Flushdb에 대한 알림이 없습니다.
레디 스 문서에 따르면, Flushdb에 대한 알림이 없습니다.
-
==============================
3.난 당신이 몇 가지 옵션을 가지고 생각합니다.
난 당신이 몇 가지 옵션을 가지고 생각합니다.
from https://stackoverflow.com/questions/40278931/redis-keyspace-notifications-with-flushdb by cc-by-sa and MIT license
'REDIS' 카테고리의 다른 글
[REDIS] Predis에서 MATCH 옵션 SCAN을 사용하는 방법 (0) | 2020.01.18 |
---|---|
[REDIS] 각 그룹의 Redisearch 집계 반환 상위 5 (0) | 2020.01.18 |
[REDIS] 클러스터 지속적으로 로그 WSA_IO_PENDING를 인쇄 레디 스 (0) | 2020.01.18 |
[REDIS] 레디 스에서 해시의 배열을 저장하는 방법 (0) | 2020.01.18 |
[REDIS] 어떻게 레디 스의 마스터 / 슬레이브 상태를 알고? (0) | 2020.01.18 |