是否可以有效地存储存储在Redis Set/Hash中的regex模式,并以有效的方式匹配我的输入?
我目前的方法是首先查找需要将输入与之匹配的模式,然后实际执行“preg_ match”。这有点麻烦,效率也不高。有人能帮我提高效率吗?我正在使用predis客户端库。
东西是如何储存在我的红宝石里的:
SADD regex [a-z]+[1-9]+@ prorogue[0-9]+@ ... and so on. 发布于 2015-04-27 12:55:18
您应该考虑使用Redis的内置Lua脚本功能。Lua提供模式匹配功能(例如string.match),但请注意
与其他几种脚本语言不同,Lua不使用POSIX正则表达式(regexp)进行模式匹配(http://www.lua.org/pil/20.1.html)。
在伪Redis-Lua代码中,这看起来类似于:
local re = redis.call("SMEMBERS", KEYS[1])
for _, r in pairs(re) do
if string.match(ARGV[1], r) then
return 1
end
end
return 0https://stackoverflow.com/questions/29889591
复制相似问题