V2EX = way to explore
V2EX 是一个关于分享和探索的地方
现在注册
已注册用户请  登录
V2EX 提问指南
Morii
V2EX  ›  问与答

请问如何在 Redis 里匹配不以指定字符串为前缀的数据

  •  
  •   Morii · 2023-03-24 15:20:41 +08:00 · 543 次点击
    这是一个创建于 420 天前的主题,其中的信息可能已经有所发展或是发生改变。

    也就是使用 SCAN 命令实现

    SCAN cursor [MATCH pattern] [COUNT count] [TYPE type]

    比如我想匹配 ABC 开头的 KEY 可以这么写:

    SACN 0 MATCH ABC*

    但是我的需求是匹配 不以 ABC 开头的 KEY ,chatGPT 让我这么写

    SACN 0 MATCH ^ABC*

    但是似乎并不生效

    4 条回复    2023-03-27 15:25:59 +08:00
    zjj19950716
        1
    zjj19950716  
       2023-03-24 17:34:23 +08:00
    SACN ? ^(?!ABC)
    julyclyde
        2
    julyclyde  
       2023-03-26 18:54:37 +08:00
    glob-style pattern
    那个并不是 regex ,不支持^符号的

    通常来说如果你有这样的需求,那是设计阶段就已经错了
    Morii
        3
    Morii  
    OP
       2023-03-27 14:58:20 +08:00
    @julyclyde #2

    是的,我是在阿里云同步了一个多个服务共用的 redis ,所以我想把其他服务不需要 key 删掉,想了想 不删除也没啥问题,所以暂时先不搞了,感谢回复
    julyclyde
        4
    julyclyde  
       2023-03-27 15:25:59 +08:00
    @Morii 你 scan 所有的 key ,然后再额外进行一步判断试试看?
    关于   ·   帮助文档   ·   博客   ·   API   ·   FAQ   ·   实用小工具   ·   1877 人在线   最高记录 6679   ·     Select Language
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.5 · 23ms · UTC 00:39 · PVG 08:39 · LAX 17:39 · JFK 20:39
    Developed with CodeLauncher
    ♥ Do have faith in what you're doing.