Can't delete key currently in DragonflyDB via RIOT
nickyulai opened this issue · 0 comments
nickyulai commented
Somehow, I need to migrate Redis data to DragonflyDB. Therefore, I am trying to use the riot source replicate target --mode live command locally, where the source is the Redis server and the target is the DragonflyDB server. When I delete a key in the Redis server in real-time, the corresponding key in DragonflyDB is not deleted. Below is my console test output.
riot command
docker run --network default fieldengineering/riot --host redis -p 6379 --db 1 replicate --host dragonfly -p 6380 --db 1 --mode live
At the same time, monitor changes to Redis keys and values in real time
redis-cli config set notify-keyspace-events KEA
redis-cli --csv psubscribe '__keyspace@1__:*'
Use python to test
from redis import Redis
r1 = Redis.from_url("redis://redis:6379/1") # source
r2 = Redis.from_url("redis://dragonfly:6380/1") # target
r1.set("aaa", 123)
-> True
r1.get("aaa")
-> 123
r2.get("aaa")
-> 123
r1.delete("aaa")
-> 1
r1.get("aaa")
-> None
r2.get("aaa")
-> 123
And there is a del event in Redis server
root@b78eda5b1c0e:/data# redis-cli --csv psubscribe '__keyspace@1__:*'
Reading messages... (press Ctrl-C to quit)
"psubscribe","__keyspace@1__:*",1
"pmessage","__keyspace@1__:*","__keyspace@1__:aaa","set"
"pmessage","__keyspace@1__:*","__keyspace@1__:aaa","del"
There is an increase in the RIOT listener:
[SimpleAsyncTaskExecutor-1] INFO com.redis.riot.redis.Replication$LoggingWriteListener - Wrote aaa
Listening ? % [ = ] 1/? (0:00:26 / ?) .0/s | queue capacity: 10,000[SimpleAsyncTaskExecutor-1] INFO com.redis.riot.redis.Replication$LoggingWriteListener - Wrote aaa
Listening ? % [ = ] 2/? (0:00:30 / ?) .1/s | queue capacity: 10,000
But the result is not correct. Does anyone know what happened or what I am doing wrong in my test?