首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >高效地匹配存储在Redis中的Regex和我的输入

高效地匹配存储在Redis中的Regex和我的输入
EN

Stack Overflow用户
提问于 2015-04-27 07:23:29
回答 1查看 813关注 0票数 0

是否可以有效地存储存储在Redis Set/Hash中的regex模式,并以有效的方式匹配我的输入?

我目前的方法是首先查找需要将输入与之匹配的模式,然后实际执行“preg_ match”。这有点麻烦,效率也不高。有人能帮我提高效率吗?我正在使用predis客户端库。

东西是如何储存在我的红宝石里的:

代码语言:javascript
复制
SADD regex [a-z]+[1-9]+@ prorogue[0-9]+@ ... and so on.  
EN

回答 1

Stack Overflow用户

发布于 2015-04-27 12:55:18

您应该考虑使用Redis的内置Lua脚本功能。Lua提供模式匹配功能(例如string.match),但请注意

与其他几种脚本语言不同,Lua不使用POSIX正则表达式(regexp)进行模式匹配(http://www.lua.org/pil/20.1.html)。

在伪Redis-Lua代码中,这看起来类似于:

代码语言:javascript
复制
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 0
票数 2
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/29889591

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档