阻塞:Redis是典型的单线程架构,如果出现阻塞对我们的应用来说都是噩梦。导致阻塞的场景大致分为内在原因和外在原因。内在原因:不合理的使用API或数据结构、CPU饱和、持久化阻塞等;外在原因:CPU竞争、内存交换...

阻塞:
Redis是典型的单线程架构,如果出现阻塞对我们的应用来说都是噩梦。导致阻塞的场景大致分为内在原因和外在原因。
内在原因:不合理的使用API或数据结构、CPU饱和、持久化阻塞等;
外在原因:CPU竞争、内存交换、网络问题等;
下边就以上两种原因分别分析:
- 内在原因
- API或数据结构使用不合理:
- 对数据量比较大而且命令算法复杂度是O(n)的例如hgetall等执行速度势必很慢,在高并发场景赢避免使用算法复杂度超过O(n)的命令;
- Redis原生提供慢查询统计功能,执行slowlog get {n}可以获取最近n条慢查询命令,默认超过10ms会记录到定长队列中,线上建议设置为1ms。
- 修改低算法度命令,禁用keys、sort等命令;调整大对象:防止一次命令操作过多的数据。(执行redis-cli-h{ip}-p{port} bigkeys 可以扫描出大对象);
- CPU饱和:
- 外在原因
沃梦达教程
本文标题为:Redis拾遗(五)


基础教程推荐
猜你喜欢
- [Redis] redis业务实践 , 这次用哈希 2024-04-24
- docker 安装redis以及删除 2023-09-13
- PostgreSQL limit的神奇作用详解 2023-07-21
- 如何查看PostgreSQL数据库中所有表 2023-07-21
- mysql语法中有哪些可以删除日志的命令 2024-12-16
- 一文快速回顾 Java 操作数据库的方式-JDBC 2024-04-24
- DB2优化(简易版) 2024-01-01
- PHP 分页类(模仿google)-面试题目解答 2024-02-14
- 具有负载均衡功能的MySQL服务器集群部署及实现 2023-12-29
- CAT分布式实时监控系统使用详解 2024-02-14