Redis
 sql >> Baza danych >  >> NoSQL >> Redis

Jak otrzymywać zdarzenia wygaśnięcia Redis z węzłem?

W rzeczywistości możliwe jest nasłuchiwanie powiadomienia o zdarzeniu typu „wygasły” przy użyciu subskrybowanego klienta na określonym kanale ('[email protected]__:expired' ) i odsłuchanie jego wiadomości wydarzenie.

nie potrzeba setInterval / setTimeout ani dodatkowych bibliotek

Potwierdzenie koncepcji (działa:przetestowano z NodeJS v.9.4.0 )

const redis = require('redis')
const CONF = {db:3}
var pub, sub
//.: Activate "notify-keyspace-events" for expired type events
pub = redis.createClient(CONF)
pub.send_command('config', ['set','notify-keyspace-events','Ex'], SubscribeExpired)
//.: Subscribe to the "notify-keyspace-events" channel used for expired type events
function SubscribeExpired(e,r){
 sub = redis.createClient(CONF)
 const expired_subKey = '[email protected]'+CONF.db+'__:expired'
 sub.subscribe(expired_subKey,function(){
  console.log(' [i] Subscribed to "'+expired_subKey+'" event channel : '+r)
  sub.on('message',function (chan,msg){console.log('[expired]',msg)})
  TestKey()
 })
}
//.: For example (create a key & set to expire in 10 seconds)
function TestKey(){
 pub.set('testing','redis notify-keyspace-events : expired')
 pub.expire('testing',10)
}


  1. Redis
  2.   
  3. MongoDB
  4.   
  5. Memcached
  6.   
  7. HBase
  8.   
  9. CouchDB
  1. Czy ktoś może wyjaśnić polecenie redis setbit?

  2. Jak monitorować Redisa jako silnik kolejki za pomocą cli podobnego do beanstalkd?

  3. Redis:Aby ustawić limit czasu dla pary klucz-wartość w Set

  4. Przełączanie awaryjne Redis za pomocą StackExchange / Sentinel z C#

  5. Jakie są podstawowe struktury danych używane w Redis?