Where communities thrive


  • Join over 1.5M+ people
  • Join over 100K+ communities
  • Free without limits
  • Create your own community
People
Repo info
Activity
  • 06:16
    Messilimeng opened #1294
  • Mar 04 22:39
    ejose19 edited #1293
  • Mar 04 22:36
    ejose19 synchronize #1293
  • Mar 04 22:36
    ejose19 synchronize #1293
  • Mar 04 22:33
    ejose19 edited #1293
  • Mar 04 22:32
    ejose19 opened #1293
  • Mar 04 22:05
    ejose19 commented #1211
  • Mar 04 22:03
    ejose19 commented #1211
  • Mar 04 19:18
    ctrlaltdylan commented #1204
  • Mar 03 13:56
    ctrlaltdylan commented #1203
  • Mar 02 22:14
    ctrlaltdylan commented #1203
  • Mar 02 22:05
    ctrlaltdylan commented #1204
  • Feb 27 22:13
    azinoviev opened #1292
  • Feb 27 22:07
    azinoviev commented #1197
  • Feb 27 22:00
    azinoviev synchronize #1197
  • Feb 26 05:12
    slaveofcode commented #1203
  • Feb 25 15:06
    EwenQuim closed #1291
  • Feb 25 15:06
    EwenQuim commented #1291
  • Feb 25 15:01
    kbkk edited #1140
  • Feb 25 14:59
    kbkk synchronize #1142
Jason Shin
@JasonShin
ahh...
T_T !!
im dumb
Christian Roy
@roychri
Did you change the command in your docker-compose.yaml ?
Jason Shin
@JasonShin
nope
Christian Roy
@roychri
You have to tell redis to use your new config file
Jason Shin
@JasonShin
yeah right
1) "notify-keyspace-events"
2) "xE"
ok cool
Christian Roy
@roychri
I do not think xE will send the __keyevent@0__:expire event but rather the __keyevent@0__:test event (with the name of your key in the event name).
If you want __keyevent@0__:expire then you should set it to xK I think.
Jason Shin
@JasonShin
I see
Christian Roy
@roychri
But Maybe your right and im mixing them up, tias
Jason Shin
@JasonShin
still, no events
1) "notify-keyspace-events"
2) "xK"
Christian Roy
@roychri
and no events with xE either?
Jason Shin
@JasonShin
nope
I only get a very first
zz null 1 undefined undefined undefined
which means nothing
it's from
redis2.subscribe('__keyevent@0__:expired', (x, y, c, v, b) => {
    console.log('zz', x, y, c, v, b);
  });
^^ testing code
Christian Roy
@roychri
Enable all events (AKE instead of xK) and in another terminal use redis-cli monitor to see the events being sent after you docker-compose restart app...
Jason Shin
@JasonShin
1550539085.729667 [0 192.168.0.3:56496] "info"
1550539085.750826 [0 192.168.0.3:56498] "info"
1550539085.751758 [0 192.168.0.3:56498] "set" "test" "12" "EX" "1"
1550539085.751925 [0 192.168.0.3:56498] "set" "test" "12" "EX" "2"
1550539085.752053 [0 192.168.0.3:56498] "subscribe" "__keyevent@0__:expired"
after that, nothing fires inside the subscribe code
Christian Roy
@roychri
Using redis 2.8.0 or later?
Jason Shin
@JasonShin
yeah
I'm using 5.0.0
Christian Roy
@roychri
I recommend you read this again and see if you missed anything...
https://redis.io/topics/notifications
Jason Shin
@JasonShin
ok I will do that
@roychri a quick question, how do you listen to all these events using cli?
I just want to test this without ioredis
Christian Roy
@roychri
redis-cli monitor will show them I think
Jason Shin
@JasonShin
so when the key expires, what will be logged in redis-cli monitor?
Christian Roy
@roychri
If the notifications are enabled, yes, I think so
Jason Shin
@JasonShin
I've bascially enabled everything notify-keyspace-events AKExes
but still nothing shows up on neither redis-cli monitor and .subscribe('__keyspace@0__:expire', and .subscribe('__keyevent@0__:expire',
Christian Roy
@roychri
AKE would have been enough, since A means all
ok, in another terminal try redis-cli set foo bar and you should see a notification show in monitor
because you have all notificatinos enables, it should fire when the key is set too
Jason Shin
@JasonShin
yup, it shows up
1550540164.681845 [0 127.0.0.1:44188] "set" "foo" "bar"
Christian Roy
@roychri
That's not the event
that's your command
Maybe it does not show up in monitor. Try this:
redis-cli --csv psubscribe '__key*__:*'
Jason Shin
@JasonShin
ohhhhhhhh
it's working
lol
redis.subscribe('__keyevent@0__:expired');
redis.on('message', async (channel, message) => {
    // Handle event
    console.log(channel, message);
  });
Christian Roy
@roychri
oh yeah, that's right. Sorry I did not noticed. I presumed you had read the doc and was using it the way it was described
白一梓
@yunnysunny
If you want to send a batch of commands (e.g. > 5), you can use pipelining to queue the commands in memory and then send them to Redis all at once. This way the performance improves by 50%~300% (See benchmark section).
But where is the benchmark program?