使用flushdb的Redis键空间通知
键空间通知对于我最近访问的一个web api来说是必不可少的 发展中 我们在azure中安装了redis。api主要工作,我们使用通知来确定内存缓存上的数据是否需要更新 现在,我们要处理在刷新redis数据库时通知刷新事件以清除本地内存缓存的问题但我们无法通过键空间通知获取flushdb事件。 键空间事件作为“AKE”启用。“AKE”字符串表示所有事件 PS:我们可以通过“设置”事件获得通知,如__keyevent@2__:设置' 订阅代码如下所示使用flushdb的Redis键空间通知,redis,stackexchange.redis,azure-redis-cache,Redis,Stackexchange.redis,Azure Redis Cache,键空间通知对于我最近访问的一个web api来说是必不可少的 发展中 我们在azure中安装了redis。api主要工作,我们使用通知来确定内存缓存上的数据是否需要更新 现在,我们要处理在刷新redis数据库时通知刷新事件以清除本地内存缓存的问题但我们无法通过键空间通知获取flushdb事件。 键空间事件作为“AKE”启用。“AKE”字符串表示所有事件 PS:我们可以通过“设置”事件获得通知,如__keyevent@2__:设置' 订阅代码如下所示 subscriber.Subscribe(
subscriber.Subscribe(
"*",
(channel, value) =>
{
// Some codes here
});
根据,Flushdb没有通知。正如另一个答案所提到的,没有此类通知 毕竟,键空间通知是针对单个键上的事件的通知。每个通知都与一个密钥相关联。对于
keyspace
事件,键名称是通道名称的一部分。对于keyevent
event,密钥名称就是消息
PUBLISH __keyspace@0__:key_name comamnd
PUBLISH __keyevent@0__:command key_name
发送通知的每个命令都必须有一个键作为参数。e、 g.del key
,设置key val
。但是,flushdb
命令没有键作为参数。该命令不影响单个键。相反,它会删除数据库中的所有键。所以没有这样的通知。否则,您对该频道有何期待?所有已移除的密钥?这不是个好主意
但是,您可以为flushdb
flushdb事件
:设置flushdb事件0
subscribe__keyspace@0__:flushdb事件
flushdb
之前设置特殊键:设置flushdb事件1
通过这种方式,您可以获得模拟的
flushdb
通知。我认为您有两种选择