当前位置:  开发笔记 > 编程语言 > 正文

ServiceStack.Redis SearchKeys

如何解决《ServiceStack.RedisSearchKeys》经验,为你挑选了1个好方法。

ServiceStack.Redis在C#上使用客户端.

我使用模式b :: RecId :: 1使用以下模式a :: name :: 1类型2的 1,100万条记录添加了大约500万个type1记录.

现在我使用redis类型的客户端作为client = redis.As.我想检索type2的所有键.我使用以下模式:

var keys = client.SearchKeys("b::RecID::*");

但是需要永久(大约3-5分钟)来检索密钥.

有没有更快,更有效的方法来做到这一点?



1> Marc Gravell..:

您应该努力避免扫描密钥空间.KYES实际上是一个服务器塞子,但即使你有SCAN可用:不要这样做.现在,你可以选择保留的您有可用的东西按键设置某个地方,但没有SRANGE等-在第2,你不得不使用SMEMBERS,它仍然会需要返回数百万条记录-但至少它们都将可用.在以后的服务器版本中,您可以访问SCAN(think :) KEYSSSCAN(think :) SMEMBERS,但最终您只需要数百万行,而这些行永远不会自由.

如果可能,您可以通过使用主/从对来减轻影响,并在从站上运行昂贵的操作.至少其他客户端可以在您杀死服务器时执行某些操作.

推荐阅读
李桂平2402851397
这个屌丝很懒,什么也没留下!
DevBox开发工具箱 | 专业的在线开发工具网站    京公网安备 11010802040832号  |  京ICP备19059560号-6
Copyright © 1998 - 2020 DevBox.CN. All Rights Reserved devBox.cn 开发工具箱 版权所有