网站首页 > 技术教程 正文
分布式缓存:在高并发情况下,为了减轻数据库的压力和提高应用系统的性能,在应用系统和数据库之间加了一层缓存。
缓存和数据库的数据一致性问题:
- 数据读取:
- 根据key先从缓存读取
- 若缓存中没有,则从数据库读取
- 读取数据后更新缓存
- 数据插入:
- 根据key更新数据库
- 根据key更新缓存(或者更新缓存)
缓存技术对比【Memcache与Redis】
Redis分布式存储方案:
- 主从:一主多从,一个实例节点充当主节点,其余节点充当从节点,主节点负责写和读取数据,从节点负责从主节点复制数据实现数据冗余,并且只处理读操作。主节点出现故障时,需要手动切换主节点。
- 哨兵:引入监控和故障转移机制。当主节点发生故障时会主动选择新的主节点。
- 集群:分节点对等集群。不在依赖单个节点处理所有的读写操作,将数据分布到多个节点,每个主节点只负责部分数据的存储和处理。
Redis集群分片常见的方式:
- 客户端分片:客户端负责通过key的hash值对应到不同的服务器
- 中间件分片:客户端将请求发送到中间件,借助中间件实现Redis分片路由选择
- 客户端服务端协作分片:客户端采用一致性哈希,服务端提供错误节点的重定向服务
Redis数据分片的方案:
- 范围分片
- 哈希分片
- 一致性哈希分片
Redis数据类型:
Redis持久化:
Redis常见问题
- 缓存雪崩:大部分缓存失效,大量请求访问数据库
- 加锁
- 为key设置不同的失效时间
- 二级缓存
- 缓存穿透:访问不存在的值,直接查询数据库
- 数据库查询结果为空,可以设置一个默认值到缓存,并且设置一个有效期
- 布隆过滤器。将存在的数据哈希到一个足够大的bitmap中,一个一定不存在的值会被这个bitmap拦截掉,从而避免对底层存储系统的压力
布隆过滤器的优点:
- 数据查询效率高
- 占用内存小
- 不需要存储数据元素本身
布隆过滤器的缺点:
- 不能存储数据本身
- 具有一定的误判率
- 不能从布隆过滤器删除元素
- 上一篇: 手机内存不足还卡顿,怎么办?删掉这7个文件夹,瞬间清理出几个G
- 下一篇: 缓冲期限 缓冲期是多长时间
猜你喜欢
- 2024-10-15 CDN与缓存全面详聊,看完之后,大部分程序员收藏了
- 2024-10-15 一文读懂缓存雪崩、缓存击穿、缓存穿透及其解决方案
- 2024-10-15 CPU不具备存储功能,那么缓存到底是什么?有什么用?
- 2024-10-15 缓存穿透及解决方案 缓存穿透及解决方案有哪些
- 2024-10-15 【知识】缓存:一种提高CPU和内存之间数据交换效率的设施
- 2024-10-15 不知道浏览器怎么清除缓存?各种浏览器清理缓存的方法
- 2024-10-15 就这一篇,彻底搞懂高可用缓存架构,总结五大缓存问题解决方案
- 2024-10-15 CPU缓存有有什么用?Intel官方答案来了
- 2024-10-15 缓存穿透、缓存雪崩、缓存失效都是什么?
- 2024-10-15 来说说缓存穿透、缓存击穿、缓存雪崩都是什么?怎么解决?
你 发表评论:
欢迎- 05-05从virsh当中学习QEMU/KVM启动命令
- 05-05Win10 BCD文件损坏怎么修复?(bcd文件损坏win7)
- 05-05亚马逊春节假期期间的店铺管理设置
- 05-051分钟总结常用k8s常用诊断教程(k8s常见故障)
- 05-05VisiPics重复图片查找软件中文汉化教程
- 05-05微服务的发布实现方式1灰度实现(微服务实现原理)
- 05-05轻松掌握Java多线程 - 第二章:线程的生命周期
- 05-05德拉诺之王邪DK报告:PVE向小测试及分析
- 最近发表
- 标签列表
-
- sd分区 (65)
- raid5数据恢复 (81)
- 地址转换 (73)
- 手机存储卡根目录 (55)
- tcp端口 (74)
- project server (59)
- 双击ctrl (55)
- 鼠标 单击变双击 (67)
- debugview (59)
- 字符动画 (65)
- flushdns (57)
- ps复制快捷键 (57)
- 清除系统垃圾代码 (58)
- web服务器的架设 (67)
- 16进制转换 (69)
- xclient (55)
- ps源文件 (67)
- filezilla server (59)
- 句柄无效 (56)
- word页眉页脚设置 (59)
- ansys实例 (56)
- 6 1 3固件 (59)
- sqlserver2000挂起 (59)
- vm虚拟主机 (55)
- config (61)
本文暂时没有评论,来添加一个吧(●'◡'●)