• redis中keys和scan的对比


    redis中keys和scan的对比

    两者都是用来返回key的,但是使用场景和方法不同。

    一、keys
    KEYS pattern
    比如:
    keys *
    keys user_info:*

    特点:
    1、在选定的库中,一次性全部返回符合条件的key,如果数据量很大将会等待很久,
    因此,只适合用在可控的量小的键查询,比如几百,几千。
    2、返回的键精确,不会重复,可放心使用。

    二、scan
    SCAN cursor [MATCH pattern] [COUNT count]

    cursor:查询游标,第一次0,后面就是使用返回数组中第一个值,当返回的值为0时则表示遍历完毕。

    MATCH pattern:匹配一个表达式,同上,选填。

    [COUNT count]:指定每次迭代返回元素的最大值的一种提示(默认值为 10),但是在大多数情况下,
    这种提示都是有效的,因此,返回的个数在count左右。

    示例:
    scan 0 MATCH user_info:* COUNT 10
    返回:

    1. "6"
      1. "user_info:85:1114850"
      2. "user_info:88:1114880"
      3. "user_info:16:1081160"
      4. "user_info:84:1114840"
      5. "user_info:77:1114770"
      6. "user_info:83:1114830"
      7. "user_info:79:1114790"
      8. "user_info:74:1114740"
      9. "user_info:72:1114720"
      10. "user_info:69:1114690"
      11. "user_info:86:1114860"
      12. "user_info:78:1114780"

    特点:
    1、随机性较高,没有规律。
    2、唯一能判断遍历结束的标志就是返回结果集的第一个元素,示例中的6,游标只是一个标识,不可比较,
    下次返回的游标可能比现在大或者小,但是只要等于0就确定结束了。
    3、返回的列表存在重复的情况,需要应用程序自己处理。
    4、由于全部遍历完需要一点时间,如果过程中键被操作了,那么影响未知。
    5、返回的数量没有确定的数量

    在数量未知或者数量较大的情况下使用scan遍历来获取所有的key

    转载:https://blog.csdn.net/raoxiaoya/article/details/93639617

  • 相关阅读:
    JSON
    Chromium 修改chrome.exe
    Chromium 修改任务管理器显示的Chromium
    winhttp get请求https
    string wstring 互转
    浏览器指纹在线监测获取网址
    咕了的构造题单总结
    Git 常用命令总结
    C# 网络地址是否有效
    IDEA如何从断点里获取对象所有数据
  • 原文地址:https://www.cnblogs.com/jruing/p/15867225.html
Copyright © 2020-2023  润新知