首页 > 数据库 >Redis为什么会阻塞

Redis为什么会阻塞

时间:2024-08-23 13:51:09浏览次数:14  
标签:为什么 缓存 删除 Redis 阻塞 内存 从库 CPU

Redis的一些阻塞点

BigKey删除,删除数据库,AOF日志同步聚合操作,全量查询操作,从库读取RDB文件。
其中删除BigKey,AOF日志,删除数据库可以异步执行。
聚合操作,全量查询,从库读取RDB文件如果过大的话都是会造成阻塞的。

CPU也会影响Redis

CPU分为多个物理核,一个物理核分为两个逻辑核。同一个物理核的逻辑核共享一二级缓存,同一个CPU的物理核共享三级缓存,CPU间会用总线连接。多核CPU会使Redis命令数据留在原来的核上,而不同的CPU都有机会执行。这样的话明明一个实例,却要被多个CPU缓存,非常耗时,需要让CPU和实例进行绑定。

如果要返回所有数据的时候,可以把一个整体,给分散开来,分成几部分来取出,避免造成阻塞,Keys这个命令也不可以乱用,差集并集可以返回给服务端完成,减少同一个时间所有的键值对同时过期,会引起很严重的阻塞。

Redis内存碎片

Redis明明删除了数据,内存的占用率还是很高。因为Redis删除后会有内存碎片,也有可能是Redis分配是以二进制来分配的,也会有很多内存碎片,Redis提供了自动内存碎片清理。

Redis缓存区是会溢出的

需要避免bigKey操作,从库的话就是避免大RDB,Redis删除改成异步操作,不要让执行太慢,导致缓存进来的多,出去的少。

往期文章

Redis核心技术

Redis主从同步和哨兵

Redis实战

标签:为什么,缓存,删除,Redis,阻塞,内存,从库,CPU
From: https://blog.csdn.net/2301_77664120/article/details/141463992

相关文章

  • Redis实战
    Redis的String类型有什么缺点在花费内存方面,String花费的内存很多。如果存储的是64位有符号整数的话,就是一个8字节Long类型整数。如果是包含字符的话,就会用SDS,也就是简单字符串来存储,SDS中会把存储的数据最后加一个\0,还会存储使用的buf的长度,实际分配的buf的长度。不仅如此,有......
  • 【安全运营】如何以及为什么衡量网络安全
    一、在网络安全方面可以衡量什么?二、为什么要关注KPI?三、安全团队如何衡量网络安全?原创信息安全D1net首席信息安全官需要以他们认为有意义和可行的方式向企业执行团队报告关键的安全性能和风险指标,因为这些指标可以帮助回答与信息安全风险、运行状况、准备工作和业......
  • 高效缓存策略——.NET Core 中基于 Redis 的分布式缓存实现
    引言在构建高性能的应用程序时,缓存是不可或缺的技术之一。通过缓存,我们能够显著减少数据库的压力、提升应用的响应速度。而在分布式系统中,分布式缓存则成为了处理高并发和大数据量的理想选择。本文将以Redis为例,介绍如何在.NETCore中实现分布式缓存,帮助开发者打造高效......
  • Redis学习(一)
    1.通用命令keys*delk1existsk1expipek1ttlk12.String类型String类型的常见命令setk1v1 添加键值对getk1v1 获得键值对对应的值msetk1v1k2v2 一次性设置多个值mgetk1k2k3 一次性获取多个键值对的值incrk1 让k1自增incrbyk12 按步长2自增......
  • 浅谈Redis(一)
    浅谈Redis(一)文章目录浅谈Redis(一)Redis的特点Redis线程模型Redis单线程为什么快Redis持久化方案Redis缓存淘汰策略Redis缓存穿透、击穿和雪崩区别和解决方案Redis是一个开源的内存数据结构存储系统,可以用作数据库、缓存和消息中间件。Redis支持多种数据结构,比如str......
  • 为什么java找工作难?java饱和了吗?
    在开始前我有一些资料,是我根据网友给的问题精心整理了一份「java的资料从专业入门到高级学习路线规划图」提升技术才是王道!限于文章篇幅原因,就不一一展示了,有需要的小伙伴扫码添加小助理获取!!24年初,当下java程序员的需求情况是,零项目经验的求职者难找工作,只能证明自己做过增......
  • 第四章 Python操作redis(操作案例)
    一、python对redis基本操作(1)连接redis#方式1importredisr=redis.Redis(host='127.0.0.1',port=6379)r.set('foo','Bar')print(r.get('foo'))#方式2importredispool=redis.ConnectionPool(host='127.0.0.1',po......
  • 第三章 redis数据类型
    redis数据类型redis可以理解成一个全局的大字典,key就是数据的唯一标识符。根据key对应的值不同,可以划分成5个基本数据类型。redis={"name":"yuan","scors":["100","89","78"],"info":{"name":"rain"......
  • 大厂面试官:你知道Redis如何实现分布式锁么?
    常见面试题,看完基本也没啥问题了Redis如何实现分布式锁分布式锁是用于分布式环境下并发控制的一种机制,用于控制某个资源在同一时刻只能被一个应用所使用。如下图所示:Redis本身可以被多个客户端共享访问,正好就是一个共享存储系统,可以用来保存分布式锁,而且Redis的读写......
  • 【redis数据库】基础入门,五种类型增删改查
    目录1.redis的启动2.redis基本操作3.redis的数据类型4.字符串操作添加修改值获取值5.键相关操作查找键判断键是否存在查看键对应的值类型设置已有键的过期时间查看键过期时间6.哈希操作添加值添加多个值获取字段获取字段对应的值获取多个字段的值获取所有字......