Redis keys 的正则都是骗人的吗?

2018-07-25 11:56:43 +08:00
 corningsun

https://redis.io/commands/keys

demo 里面给了下面几种用法,难道是只支持这几种吗?

()| 这些都不支持吗?

h?llo matches hello, hallo and hxllo
h*llo matches hllo and heeeello
h[ae]llo matches hello and hallo, but not hillo
h[^e]llo matches hallo, hbllo, ... but not hello
h[a-b]llo matches hallo and hbllo

假设有如下 10 个 key, 怎么只获取 a1,a2,a10,a11?

redis> KEYS *
1) "a1"
2) "a2"
3) "a3"
...
10) "a10"
11) "a11"
6563 次点击
所在节点    Redis
12 条回复
vigoss
2018-07-25 12:04:31 +08:00
a[12][012] ....
yangtukun1412
2018-07-25 12:24:53 +08:00
然而这是通配符, 不是正则.
Lonely
2018-07-25 12:40:52 +08:00
楼主这种人直接 block。
agagega
2018-07-25 12:53:58 +08:00
我印象里人家没说这是正则
rrfeng
2018-07-25 12:56:15 +08:00
rename keys ""
wwqgtxx
2018-07-25 13:10:54 +08:00
官方文档哪个地方说了支持正则了…
CC11001100
2018-07-25 13:13:12 +08:00
搜下 redis glob
ynyounuo
2018-07-25 13:13:14 +08:00
> glob-style patterns

> In computer programming, glob patterns specify sets of filenames with wildcard characters.
https://www.wikiwand.com/en/Glob_(programming)
easylee
2018-07-25 13:15:48 +08:00
@Lonely #3

看了你的最近 97 条回复,我还是先一步 block 你吧。
corningsun
2018-07-25 14:14:10 +08:00
@yangtukun1412
@agagega
@wwqgtxx

谢谢,理解错了 模式的意思,以为是正则匹配的。
caola
2018-07-25 15:22:50 +08:00
@corningsun 我从没听说过 redis 有正则,但只有一个通配符,
建议你给加上特定前缀,以后就可以通过前缀+通配符,查询这些数据

你觉得通配符还不能满足,那么建议使用 eval 来传入 lua 代码,来实现特殊的需求,查询的结果会让你满意的
xiangyuecn
2018-07-25 15:56:02 +08:00
听人家建议生产环境慎用 keys

**Warning**
https://redis.io/commands/keys


相对比较少的 key 列表可以存一份到一个 set 里,一次性取出来。。一次性查很多 key 的。。用 scan ?听说的

这是一个专为移动设备优化的页面(即为了让你能够在 Google 搜索结果里秒开这个页面),如果你希望参与 V2EX 社区的讨论,你可以继续到 V2EX 上打开本讨论主题的完整版本。

https://www.v2ex.com/t/473978

V2EX 是创意工作者们的社区,是一个分享自己正在做的有趣事物、交流想法,可以遇见新朋友甚至新机会的地方。

V2EX is a community of developers, designers and creative people.

© 2021 V2EX