我们有时会在Redis中丢失数据,因此我为Redis实例运行了INFO命令。我很惊讶地看到对数十万的DEL命令的调用,因为我们没有执行DEL命令的代码:
# Commandstats
cmdstat_del:calls=971486,usec=776218,usec_per_call=0.80
我在这篇redis article上读到:
Slaves don't expire keys, instead they wait for masters to expire the keys.
When a master expires a key (or evict it because of LRU),
it synthesizes a DEL command which is transmitted to all the slaves.
我们确实有很多过期密钥,但它没有DEL命令调用次数那么高:
# Stats
expired_keys:56220
这是否就是为什么即使我们的代码没有执行DEL命令也会有如此多的DEL命令调用?