Redis 运维规范_命令使用规范

梦莱2年前技术文章730

二、命令使用规范

1、keys *

keys * 命令原理是扫描整个 Redis 里面所有 key,该命令执行期间其他发送向 Redis 服务端的命令,都会被阻塞。scan 命令是一个基于游标的迭代器,可以每次少量多次的返回数据。

命令

keys

scan

优点

速度很快

不会造成长时间阻塞

缺点

Redis 单线程,执行期间会阻碍其他命令的执行,导致性能问题

返回结果可能重复,需要客户端去重,整体执行时间可能要比keys命令长

基于 scan 的这种安全性,建议 Redis 版本为 2.8.0 及以上的生产环境,考虑使用 scan 命令来代替 keys 。

2、复杂命令

(1)遍历

例如对于 List 类型,它的两种底层实现结构:双向链表和压缩列表的操作复杂度都是 O(N);如果使用遍历复杂度为O(n),对于大 key 来说就会有时延等性能问题;对于 List 类型,它的 POP/PUSH 效率很高,可以尽量将它主要用于 FIFO 队列场景。

图片2.png

(2)聚合命令

聚合命令需谨慎使用。对于数据的聚合操作应由客户端或者只读实例完成,尽量避免让 Redis 进行 SUNIONSTORE 、SDIFFSTORE 等聚合命令,这些操作会消耗大量 CPU 资源,导致主线程繁忙。如果不可避免要执行这类命令,要保证 N 尽量小。

对于遍历操作建议尽量使用对应的 SCAN 操作(包括 HSCAN,SSCAN, ZSCAN) 代替,避免在 Redis 内部产生费时的全集合遍历操作。

3、高危命令

对于一些高危命令包括keys、 flushdb、flushall 等。主要需要注意以下两点:

(1) 例如执行 FLUSHALL 会直接清空全部数据,FLUSHDB 清空当前库。对于该类命令等执行要慎重。

(2)由于 Redis 对读写请求都为单线程工作,如果执行命令涉及大量操作或耗时较长,都会阻塞主线程导致其它请求无法正常进行。

建议:云上 Redis 可以在控制台上通过设置 #no_loose_disabled-commands 参数来禁用一些可能影响 Redis 服务性能、危害数据安全的命令。

4、大 key 删除

(1) 对于 Redis 4.0 及之后版本,可以通过 UNLINK 命令安全地删除大 Key 甚至特大Key,该命令能够以非阻塞的方式,逐步地清理传入的Key

unlink key 命令:根据 value 选择非阻塞删除,仅将 keys 从 keyspace 元数据中删除,真正的删除会在后续异步操作。

(2)对于 Redis 2.8 之后及 Redis 4.0 之前,可以通过 SCAN 命令读取部分数据,然后进行删除,避免一次性删除大量 key 导致 Redis 阻塞。

5、monitor 命令

Redis 的 MONITOR 命令能够忠实地打印 Redis 中的所有请求,包括时间信息、Client信息、命令以及Key信息。在发生紧急情况时,可以通过短暂执行 MONITOR 命令并将返回信息输入至文件,对文件中请求进行归类分析,找出这段时间中的热 Key 。但 Monitor 本身对 Redis 的性能有一定的影响,若不进行相关问题排查和分析时,不建议开启。


相关文章

EMR 配置 Hive on Spark

EMR 配置 Hive on Spark

Hive3 on spark 集成前置条件hadoop yarn环境正常oracle jdk 1.8版本1、spark2 下载准备https://archive.apache.org/dist/spa...

Spark thriftserver对接cdh hive

Spark thriftserver对接cdh hive

1、背景客户需要使用spark的thriftserver来通过beeline或者jdbc 来使用spark sql环境: spark 3.2.0hive: 2.1.1-cdh6.3.2hadoop:...

Hive3 on spark 集成

Hive3 on spark 集成

前置条件hadoop yarn环境正常oracle jdk 1.8版本1、spark2 下载准备https://archive.apache.org/dist/spark/spark-2.4.5/sp...

CDP实操--配置KNOX SSO(五)

CDP实操--配置KNOX SSO(五)

1.1配置Atlas的SSO身份验证在Knox SSO的topology里配置Knox与LDAP集成认证如下,并重启Knox服务role=authenticationauthentication.na...

企业级大数据安全架构(一)

前言1.企业级大数据平台安全隐患目前企业级大数据平台面临的一些安全隐患,只要将这些安全隐患全部解决之后才可以部署到生产环境去使用,因此安全性是大数据平台必备的能力之一。1.1缺乏统一的访问控制机制大数...

HDFS业务类型与相关架构优化措施

低延迟业务计算密集型业务,低延迟业务,这一类业务通常是对大量NameNode文件目录访问为主的(权限判断,文件存在性,文件信息查询等对NameNode元数据操作为主的)。因此需要针对NameNode的...

发表评论    

◎欢迎参与讨论,请在这里发表您的看法、交流您的观点。