redis遍历所有key的方法


当前第2页 返回上一页

基于SCAN的这种安全性,建议大家在生产环境都使用SCAN命令来代替KEYS,不过注意,该命令是在2.8.0版本之后加入的,如果你的Redis低于这个版本,则需要升级Redis。

下面用PHP代码演示SCAN命令的使用:

1

2

3

4

5

6

7

8

9

10

11

12

13

14

15

16

17

18

19

20

21

22

23

24

25

26

27

28

29

30

31

32

33

34

35

36

37

38

39

40

41

42

43

44

45

46

47

<?php

  

$redis = new Redis();

  

$redis->connect('127.0.0.1', 6379);

  

  

/* 设置遍历的特性为不重复查找,该情况下扩展只会scan一次,所以可能会返回空集合 */

$redis->setOption(Redis::OPT_SCAN, Redis::SCAN_NORETRY);

  

$it = NULL;

$pattern = '*';

$count = 50;  // 每次遍历50条,注意是遍历50条,遍历出来的50条key还要去匹配你的模式,所以并不等于就能够取出50条key

  

do

{

    $keysArr = $redis->scan($it, $pattern, $count);

  

    if ($keysArr)

    {

        foreach ($keysArr as $key)

        {

            echo $key . "\n";

        }

    }

  

} while ($it > 0);   //每次调用 Scan会自动改变 $it 值,当$it = 0时 这次遍历结束 退出循环

  

  

echo '---------------------------------------------------------------------------------' . "\n";

  

  

/* 设置扩展在一次scan没有查找出记录时 进行重复的scan 直到查询出结果或者遍历结束为止 */

$redis->setOption(Redis::OPT_SCAN, Redis::SCAN_RETRY);

  

$it = NULL;

$pattern = '*';

$count = 50;  // 每次遍历50条,注意是遍历50条,遍历出来的50条key还要去匹配你的模式,所以并不等于就能够取出50条key

  

//这种用法下我们只需要简单判断返回结果是否为空即可, 如果为空说明遍历结束

while ($keysArr = $redis->scan($it, $pattern, $count))

{

    foreach ($keysArr as $key)

    {

        echo $key . "\n";

    }

}

执行结果:

1

2

3

4

5

6

7

8

9

10

11

12

13

14

15

16

17

18

19

20

[root@localhost php]# /usr/local/php/bin/php scan.php

bm

bm2

h1

name

bit

bm1

places

cities

hhl

---------------------------------------------------------------------------------

bm

bm2

h1

name

bit

bm1

places

cities

hhl

注意:如果php执行报错 请升级到较新版本的Redis扩展。

更多redis知识请关注redis入门教程栏目。

以上就是redis遍历所有key的方法的详细内容,更多文章请关注木庄网络博客

返回前面的内容

相关阅读 >>

黑马云课堂nosql之Redis技术视频源码课件分享

Redis中的双端链表实现

Redis能存多少个key

Redis如何实现扩容

Redis为什么性能好

Redis多数据库的使用

Redis添加systemctl服务的具体步骤

麦子学院深入浅出 Redis 视频资料分享

Redis的两种安装部署方式(图文详解)

Redis高频面试题(附答案分析)

更多相关阅读请进入《Redis》频道 >>


数据库系统概念 第6版
书籍

数据库系统概念 第6版

机械工业出版社

本书主要讲述了数据模型、基于对象的数据库和XML、数据存储和查询、事务管理、体系结构等方面的内容。



打赏

取消

感谢您的支持,我会继续努力的!

扫码支持
扫码打赏,您说多少就多少

打开支付宝扫一扫,即可进行扫码打赏哦

分享从这里开始,精彩与您同在

评论

管理员已关闭评论功能...