![](https://img-blog.csdnimg.cn/20201014180756738.png?x-oss-process=image/resize,m_fixed,h_64,w_64)
redis性能优化
文章平均质量分 69
柚子饼干
这个作者很懒,什么都没留下…
展开
-
redis查询慢,你们是如何排查优化的?(总结篇)
1,先进行基准测试,查看redis是否存在查询过慢情况,根据自己的情况而定2、检查网络连接是否出现延迟,数据丢包问题(可能性小3、开启慢查询日志,通过日志可以清楚知道哪些命令比较耗时,同时避免使用复杂O(N) 等命令4、查看是否写入了bigkey,避免写入bigkey5、查看是否出现大量集中的key过期,合适设置过期淘汰机制,监控expired_keys这一项,它代表整个实例到目前为止,累计删除过期 key 的数量,出现过多是进行及时处理。6、设置内存上限 maxmemory值,然后原创 2024-07-13 22:21:39 · 162 阅读 · 0 评论 -
redis查询慢,你们是如何排查优化的?(运维篇8)
你的业务应用,应该使用长连接操作 Redis,避免频繁的短连接。频繁的短连接会导致 Redis 大量时间耗费在连接的建立和释放上,TCP 的三次握手和四次挥手同样也会增加访问延迟。原创 2024-07-13 15:58:47 · 257 阅读 · 0 评论 -
redis查询慢,你们是如何排查优化的?(运维七)
首先,你需要查看 Redis 机器是否开启了内存大页:如果输出选项是 always,就表示目前开启了内存大页机制,我们需要关掉它:其实,操作系统提供的内存大页机制,其优势是,可以在一定程序上降低应用程序申请内存的次数。但是对于 Redis 这种对性能和延迟极其敏感的数据库来说,我们希望 Redis 在每次申请内存时,耗时尽量短,所以我不建议你在 Redis 机器上开启这个机制。原创 2024-07-13 15:55:28 · 345 阅读 · 0 评论 -
redia查询慢,你们是如何排查优化的?(运维篇6)
除了数据持久化会生成 RDB 之外,当主从节点第一次建立数据同步时,主节点也创建子进程生成 RDB,然后发给从节点进行一次全量同步,所以,这个过程也会对 Redis 产生性能影响。而且这个 fork 过程会消耗大量的 CPU 资源,在完成 fork 之前,整个 Redis 实例会被阻塞住,无法处理任何客户端请求。如果此时你的 CPU 资源本来就很紧张,那么 fork 的耗时会更长,甚至达到秒级,这会严重影响 Redis 的性能。,如果这个实例很大,那么这个拷贝的过程也会比较耗时。原创 2024-07-13 15:27:43 · 271 阅读 · 0 评论 -
redis查询慢,你们是如何排查优化的?(运维篇5)
一般最常使用的是 allkeys-lru / volatile-lru 淘汰策略,它们的处理逻辑是,每次从实例中随机取出一批 key(这个数量可配置),然后淘汰一个最少访问的 key,之后把剩下的 key 暂存到一个池子中,继续随机取一批 key,并与之前池子中的 key 比较,再淘汰一个最少访问的 key。而当实例的内存达到了 maxmemory 后,你可能会发现,在此之后每次写入新数据,操作延迟变大了。需要注意的是,Redis 的淘汰数据的逻辑与删除过期 key 的一样,原创 2024-07-13 15:10:25 · 808 阅读 · 0 评论 -
redis查询慢,你们是如何排查优化的?(运维篇4)
如果是出现这种情况,那么你需要排查一下,业务代码中是否存在设置大量如果有大量的 key 在某个固定时间点集中过期,在这个时间点访问 Redis 时,就有可能导致延时变大。原创 2024-07-13 10:51:56 · 782 阅读 · 0 评论 -
redis查询慢,你们是如何查询优化?(运维篇3)
从输出结果我们可以很清晰地看到,每种数据类型所占用的最大内存 / 拥有最多元素的 key 是哪一个,以及每种数据类型在整个实例中的占比和平均大小 / 元素数量。其实,使用这个命令的原理,就是 Redis 在内部执行了 SCAN 命令,遍历整个实例中所有的 key,然后针对 key 的类型,分别执行 STRLEN、LLEN、HLEN、SCARD、ZCARD 命令,来获取 String 类型的长度、容器类型(List、Hash、Set、ZSet)的元素个数。原创 2024-07-13 10:37:01 · 534 阅读 · 0 评论 -
redis查询慢,你们是如何排查优化的(运维篇2)
首先,第一步,你需要去查看一下 Redis 的慢日志(slowlog)。Redis 提供了慢日志命令的统计功能,它记录了有哪些命令在执行时耗时比较久。查看 Redis 慢日志之前,你需要设置慢日志的阈值。例如,设置慢日志的阈值为 5 毫秒,并且保留最近 500 条慢日志记录:设置完成之后,所有执行的命令如果操作耗时超过了 5 毫秒,都会被 Redis 记录下来。此时,你可以执行以下命令,就可以查询到最近记录的慢日志:通过查看慢日志,我们就可以知道在什么时间点,执行了哪些命令比较耗时。原创 2024-07-13 10:08:38 · 415 阅读 · 0 评论 -
redis查询慢,你们是怎么排查的?(运维篇1)
业务服务器到redis服务器之间存在网络线路质量不佳,网络数据包在传输时存在延迟、丢包等情况,优化网络。(这种情况出现概率一般很少)原创 2024-07-13 09:55:55 · 520 阅读 · 0 评论