ICode9

精准搜索请尝试: 精确搜索
首页 > 数据库> 文章详细

redis中keys和scan的对比

2022-02-07 11:01:25  阅读:228  来源: 互联网

标签:info 返回 scan keys redis 游标 user


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

标签:info,返回,scan,keys,redis,游标,user
来源: https://www.cnblogs.com/jruing/p/15867225.html

本站声明: 1. iCode9 技术分享网(下文简称本站)提供的所有内容,仅供技术学习、探讨和分享;
2. 关于本站的所有留言、评论、转载及引用,纯属内容发起人的个人观点,与本站观点和立场无关;
3. 关于本站的所有言论和文字,纯属内容发起人的个人观点,与本站观点和立场无关;
4. 本站文章均是网友提供,不完全保证技术分享内容的完整性、准确性、时效性、风险性和版权归属;如您发现该文章侵犯了您的权益,可联系我们第一时间进行删除;
5. 本站为非盈利性的个人网站,所有内容不会用来进行牟利,也不会利用任何形式的广告来间接获益,纯粹是为了广大技术爱好者提供技术内容和技术思想的分享性交流网站。

专注分享技术,共同学习,共同进步。侵权联系[81616952@qq.com]

Copyright (C)ICode9.com, All Rights Reserved.

ICode9版权所有