redis的keys命令类似于Mysql的like命令,无非就是模糊匹配相近的字符数据。

KEYS 的速度非常快,但在一个大的数据库中使用它仍然可能造成性能问题,如果你需要从一个数据集中查找特定的 key ,最好还是用 Redis 的集合结构(set)来代替,我们在实际生产环境中请求并发比较多的地方还是最好忽略掉,如果仅仅为我们开发人员所用到的地方,可以偷偷用一下。因为Keys会引发Redis锁,并且增加Redis的CPU占用,情况是很恶劣的,如果数据庞大的话可能需要几秒或更长。

如果有这种需求的话可以自己对键值做索引,比如把各种键值存到不同的set里面,分类建立索引,这样就可以很快的得到数据,但是这样也存在一个明显的缺点,就是浪费宝贵的空间,要知道这可是内存空间啊,所以还是要合理考虑,当然也可以想办法,比如对于有规律的键值,可以存储他们的始末值等等。

虽然redis只提供了五种类型,但是用起来不一定就只有五种,比如string类型,你可以存储任何你自己定义的类型,所以思想不能局限,灵活的设定数据结构。还有就是虽然redis存取很快,但是正常生产环境,redis服务器肯定和web服务器不是在一起,有时候甚至是在不同的地区,所以网络通信延迟就很重要了,所以要减少存取次数,一次存取完成更多的工作,否则你会发现做同样的事redis还没有关系型数据库快,所以redis存的时候一定要有技巧,尽可能减少存取次数。

从redis的官方文档上看,2.8版本之后SCAN命令已经可用,允许使用游标从keyspace中检索键。对比KEYS命令,虽然SCAN无法一次性返回所有匹配结果,但是却规避了阻塞系统这个高风险,从而也让一些操作可以放在主节点上执行。

需要注意的是,SCAN 命令是一个基于游标的迭代器。SCAN 命令每次被调用之后, 都会向用户返回一个新的游标,用户在下次迭代时需要使用这个新游标作为 SCAN 命令的游标参数, 以此来延续之前的迭代过程。同时,使用SCAN,用户还可以使用keyname模式和count选项对命令进行调整。SCAN相关命令还包括SSCAN 命令、HSCAN 命令和 ZSCAN 命令,分别用于集合、哈希键及有续集等。

另一方面,使用redis的时候一定要注意控制key,对于key的命令要制定一个完善的方案,这样才能对redis里面的数据可控,避免出现没用数据长时间占据数据库这种情况,也可以避免上面说的这种查询键值的操作。

还可以看下这篇文章:https://blog.csdn.net/hcmony/article/details/78648368

KEYS 的速度非常快,但在一个大的数据库中使用它仍然可能造成性能问题,如果你需要从一个数据集中查找特定的 key ,你最好还是用 Redis 的集合结构(set)来代替

转载于:https://www.cnblogs.com/wt645631686/p/8358352.html

关于Redis命令keys在性能方面的说明相关推荐

  1. [图文讲解]redis命令keys和scan的区别

    1. Keys 命令 语法 redis KEYS 命令基本语法如下: redis 127.0.0.1:6379> KEYS PATTERN KEYS命令使用很简单,查找以 com 为开头的 ke ...

  2. Redis命令——Keys相关

    from:http://blog.csdn.net/codolio/article/details/6411684 以下为Redis中有关Keys操作的一些命令,内容主要来源于Redis的官方文档.如 ...

  3. Redis命令之HGetAll性能问题解决方案

    最近工作中,系统压测遇到一个性能瓶颈问题,通过最终排查,发现应用接口中使用了大量的Hgetall命令从Redis中查询数据信息,导致Redis单实例OPS达到秒钟7W次,Redis服务器CPU使用率达 ...

  4. Redis的KEYS命令引起宕机事件

    摘要: 使用 Redis 的开发者必看,吸取教训啊! 原文:Redis 的 KEYS 命令引起 RDS 数据库雪崩,RDS 发生两次宕机,造成几百万的资金损失 作者:陈浩翔 Fundebug经授权转载 ...

  5. Redis的KEYS命令引起RDS数据库雪崩,RDS发生两次宕机,造成几百万的资金损失

    文章目录 第一次宕机 事故影响 原因分析 改进方案 第二次宕机 原因分析 改进方案 总结 Redis开发建议 1.冷热数据分离,不要将所有数据全部都放到Redis中 2.不同的业务数据要分开存储 3. ...

  6. Redis命令性能优化及事务使用过程

    场景 假设有这样一个使用场景,依次执行下面的5条命令 命令1:hset mall:sale:freq:ctrl:860000000000001 599055114591 1(hash结构,field表 ...

  7. Redis 数据库keys 命令的模糊查询

    文章目录 Redis 数据库keys 命令的模糊查询 1.支持的通配符 2.* 通配符 3.?通配符 4.[ ]匹配 Redis 数据库keys 命令的模糊查询 1.支持的通配符 第一种:* 第二种: ...

  8. Redis遍历、模糊匹配key的两个命令keys、scan(python使用Redis)

    Redis遍历.模糊匹配key的两个命令keys.scan(python使用Redis) (1)全量遍历–keys命令 获取Redis中的所有键: import redis pool=redis.Co ...

  9. 老大说:谁再用redis 的 keys命令,立刻给我走人

    先看现象 redis-cli keys * | args redis-cli del (error) ERR network error (30.00s) #执行了一条 keys xxxxx* 命令, ...

最新文章

  1. Java学习笔记(5)——泛型
  2. NetBeans优化技巧 提升启动速度
  3. CodeForces - 375D Tree and Queries 树启 + 思维
  4. uniapp 表单页面_uniapp自定义表单模板经验分享
  5. 河北省计算机网络技术专接本考什么,河北计算机专接本考什么
  6. mfc 邮件收发系统_腾讯企业邮箱的系统管理功能?
  7. 整理:周鸿祎谈如何写商业计划书
  8. MySQL之环境变量配置
  9. 可信任的人工智能(三)
  10. DEP bypass
  11. java中三元运算符_java中的三元运算符详解
  12. python spilt()函数
  13. matlab中常微分方法,MATLAB常微分方程
  14. 测试单核cpu和多核cpu执行java多线程任务的效率
  15. 《Android开发艺术探索》图书勘误
  16. Oracle数据库之SQL函数
  17. hdu 4544 优先队列
  18. python定向爬虫_Python-定向爬虫的简单使用
  19. 20201124 fpga程序的下载
  20. MAT的使用(一)使用方法介绍

热门文章

  1. 小牛电动京东众筹活动中的违约行为记录
  2. 如何把Excel的多张表格合成一张
  3. 面向对象编程(OOP)和函数式编程(FP)的思考
  4. 问题 D: 编写函数:比较字符串 之二 (Append Code)
  5. ubuntu18 安装完怎么设置中文输入法?
  6. OpenCV-python学习笔记(三)——histograms直方图
  7. 应力偏张量的物理意义_物理学中张量的由来
  8. echart 高度 不用 不撑满_装修干货:橱柜高度到底要多高才合适?
  9. DeFi收益聚合协议Pickle Finance与APY Vision达成合作
  10. Uniswap 24h交易量约11.2亿美元涨23.91%