Redis 中可能导致性能问题以及原因

1、线上环境是用 keys 命令

因为 Redis 是单线程的,执行 keys 命令会导致扫描 所有的 key 非常耗时,导致阻塞了其他的命令执行。从而影响性能,一般线上环境会禁止使用该命令

2、aof 备份数据方式配置了 appendfsync always 每次数据改变都同步刷新到磁盘

每写入一条日志就进行一次fsync操作,数据安全性最高,但速度最慢,因为要进行磁盘操作。如果一个时间段内有大量的数据变动操作,会阻塞其他的命令执行。一般线上环境设置为 appendfsync everysec 由后台线程每秒fsync一次,如果 redis 挂了,最多也就丢失一秒内的数据变动。

3、重写 AOF 文件

AOF 在重写的时候会占大量的 CPU 和内存,导致服务 load 过高,出现短暂服务暂停现象,一般线上环境  Master 一般关闭快照和 AOF 的备份方式,而是由单独的 salve 进行备份。

4、Swap引发的延迟

当 Linux 将 Redis 所用的内存分页移至 swap 空间时,将会阻塞 Redis 进程,导致 Redis 出现不正常的延迟。Swap 通常在物理内存不足或一些进程在进行大量I/O操作时发生,应尽可能避免。

其他情况待后续补充

扫码查看 JAVA 相关面试题

猜你喜欢

转载自blog.csdn.net/wab719591157/article/details/80725356
今日推荐