现在我做的是短信网关黑名单过滤机制,我每发一批短信,一批假如1000条,
这1000条数据都会从黑名单库中过一遍,目前我的黑名单是放在redis里,
由于长期的累积, 黑名单数量已经达到了几千万,现在每发一批短信过滤黑名单
的时间基本会耗时1秒到2秒,导致整个发送效率比较慢。对于这种场景下,redis和memcache或者其他缓存数据,更能节约时间提高过滤黑名单的效率。
你的算法本身就有问题,黑名单过滤应该用字典树,而不是简单遍历。
你要知道,常用英文单词起码有10万,而在1MB内存16MHz的286上运行的Word 6.0都有拼写检查功能,而拼写检查的原理和黑名单其实很类似。就是看你输入的单词在词典中有没有。没有就是你输错了。
这种任务286都能胜任。
最起码,放个hash表做黑名单性能也好点。