如何在PHP redis中使用正则表达式查找redis密钥?

在Redis中,我有以下格式的键:
</ p>

  25-1521624987 
25-1521624000
25-1521624900
30-1521624900
30-1521624000
35-1521624100
</ code> </ pre>

我写了以下代码 使用以数字25开头的键提取Redis记录。
</ p>

  $ tokens = $ rdb-&gt; keys(“^ 25  -  *”); 
print_r($ tokens);
</ code> </ pre>

但上面代码得到的结果是一个空数组。
虽然正则表达式在Redis桌面管理器中有效。 / p>

在PHP redis中获取所需结果的正确方法是什么? </ p>
</ div>

展开原文

原文

In Redis, I have keys in the following format :

25-1521624987
25-1521624000
25-1521624900
30-1521624900
30-1521624000
35-1521624100

I have written the following code to extract the Redis records with keys that begin with number 25.

 $tokens = $rdb->keys("^25-*");
 print_r($tokens);

But the result I get with the above code is an empty array.
Although the regex works in Redis Desktop Manager.

What is the correct way to get the required result in PHP redis?

doutuo1908
doutuo1908 我更喜欢Redis文档中的示例(redis.io/commands/keys)-'h*llo匹配hllo和heeeello'
2 年多之前 回复
duanen19871021
duanen19871021 *元字符量化其前面的任何内容。所以,当你说-*你说的是任意数量的破折号。当然,这不符合任何事情。你可能打算^25-。*或更好^25-\d*。
2 年多之前 回复
duanhong4274
duanhong4274 也许^25-\d*
2 年多之前 回复
douxidao3524
douxidao3524 $tokens=$rdb->keys(“25-*”);做到了吗?
2 年多之前 回复

1个回答



来自文档( https://github.com/phpredis/phpredis#keys-getkeys )... </ p>

  $ allKeys = $ redis-&gt; keys  ( '*');  //所有键都匹配。
$ keyWithUserPrefix = $ redis-&gt; keys('user *');
</ code> </ pre>

所以我必须这样做 假设它不使用正则表达式,你应该使用... </ p>

  $ tokens = $ rdb-&gt; keys(“25  -  *”); 
print_r($ 令牌;;
</ code> </ pre>
</ div>

展开原文

原文

From the documentation (https://github.com/phpredis/phpredis#keys-getkeys)...

$allKeys = $redis->keys('*');   // all keys will match this.
$keyWithUserPrefix = $redis->keys('user*');

So with this I would have to assume it is NOT using regex expressions and you should use...

 $tokens = $rdb->keys("25-*");
 print_r($tokens);

doudou8893
doudou8893 我认为有些系统在redis之上构建了自己的层以允许你使用正则表达式,但我认为它们只是读取所有键然后在本地应用正则表达式。
2 年多之前 回复
duange2971
duange2971 谢谢。 您的上述解决方案有效 我想这是文档的错误。 应该提到模式不是正则表达式。 看到模式中的*使我成为一个正则表达式,我尝试了所有类型的正则表达式使其工作。
2 年多之前 回复
Csdn user default icon
上传中...
上传图片
插入图片
抄袭、复制答案,以达到刷声望分或其他目的的行为,在CSDN问答是严格禁止的,一经发现立刻封号。是时候展现真正的技术了!
立即提问
相关内容推荐