Redis - glob - 类似模式,排除了子字符串

Mic*_*zyk 5 redis

我想为 redis KEYS/SCAN命令定义以下类似 glob 的模式:

prefix:[^excludedPart]:suffix
Run Code Online (Sandbox Code Playgroud)

以便以下内容匹配:

prefix:any:sufix
Run Code Online (Sandbox Code Playgroud)

但这不会:

prefix:excludedPart:sufix
Run Code Online (Sandbox Code Playgroud)

是否有可能创建这样的模式?
是否可以不仅排除一个字符而且排除更长的子字符串?

在这里搜索但找不到答案。

Ita*_*ber 4

首先 - 切勿在生产中使用KEYS......

其次,你可以用 Lua 来解决这个问题。例如https://github.com/itamarhaber/redis-lua-scripts/blob/master/scanregex.lua

第三,但只有当你真的很无聊时,你才可以尝试开发一个模块来做到这一点。现有的工作涉及如何使用正则表达式来实现阻塞KEYSKEYS

快乐的黑客:)