2014-10-26 104 views
1

我想从我的Redis中删除与SomePrefix *匹配的所有密钥。可能吗 ? 我只看到m_connectionMultiplexer.GetDatabase()。KeyDelete(),但没有在库中的KeyMatch()或GetAllKeys()。删除所有匹配键

最好不要Lua脚本,例如link by Leonid Beschastny

我想使用对应用程序的开发状态的Web应用程序的初始化。

+1

可能的[如何自动删除使用Redis匹配模式的密钥]的副本(http://stackoverflow.com/q/4006324/1202461)。 – 2014-10-26 14:28:38

+0

我知道,但我认为有更容易的使用,而不是lua内stackexchange.redis客户端 – eugeneK 2014-10-26 14:31:57

回答

2

SE.Redis直接模仿服务器公开的功能。服务器没有“删除与此模式匹配的键”功能。它确实有“扫描匹配这种模式的密钥”(通过GetServer().GetKeys(...)),并且它有“删除这个密钥/这些密钥”(通过GetDatabase.KeyDelete(...))。您可以批量迭代匹配键,依次删除每个批次。因为您可以管理请求,所以不会为每批次支付延迟。

作为替代方案实现:通过数字数据库(select)或服务器分区中的数据,并使用flushdb/flush

+0

你一定是在开玩笑,我应该问开发商的这件事情;-) ...谢谢 – eugeneK 2014-10-26 16:43:29

+0

@eugeneK注:我添加了一个替代选项一个编辑。 – 2014-10-26 16:47:07