1、实现强一致性
读操作时:
写操作时:
两次删除缓存在更新缓存,是为了预防其他线程查询缓存未命中时再一次写入了缓存。
在第二次删除缓存时,需要延时以下,是由于数据库可能存在主从数据需要同步,但是延时多少时间不好确定,为了解决这个问题,可以用以下读写锁方案实现强一致:
对于读操作:使用redisson的读写锁,获取读锁,读完数据释放锁。其他线程可以共享读操作,对于写是不行的
2025年06月16日
读操作时:
写操作时:
两次删除缓存在更新缓存,是为了预防其他线程查询缓存未命中时再一次写入了缓存。
在第二次删除缓存时,需要延时以下,是由于数据库可能存在主从数据需要同步,但是延时多少时间不好确定,为了解决这个问题,可以用以下读写锁方案实现强一致:
对于读操作:使用redisson的读写锁,获取读锁,读完数据释放锁。其他线程可以共享读操作,对于写是不行的
2025年06月16日
以存储为例,在整个微服务系统中,我们的存储不可能说只是一个单节点。
一是为了提高稳定,单节点宕机情况下,整个存储就面临服务不可用;
二是数据容错,同样单节点数据物理损毁,而多节点情况下,节点有备份,除非互为备份的节点同时损毁。
2025年06月16日
一致性hash算法是,1097麻省理工提出的分布式hashDHT实现算法,极倔internet的热点问题
平衡性 hash结果尽可能的分布到所有的缓存中去,缓冲空间利用率最高
单调性 保持已有的缓存能映射到对应的位置,新加入的缓存能加入新的位置不会映射到旧的位置
分散性 尽量降低分散性的缓存不一致情况发生
负载 负载被粉丝降低负荷
2025年06月16日
在实际的项目开发过程中,我们经常需要将某些变量从代码里面抽离出来,放在配置文件里面,以便更加统一、灵活的管理服务配置信息。比如,数据库、eureka、zookeeper、redis、mq、kafka 等服务组件的连接参数配置,还有我们自定义的项目参数配置变量。
2025年06月16日
一、什么是分库分表?
分库分表是一种数据库拆分技术,目的是解决单库单表数据量过大、访问性能下降的问题。
分库:将数据分散到多个数据库(不同实例)中。
分表:将数据分散到同一个数据库的多个表中。
类似于把一个大仓库(数据库)分成多个小仓库,再把每个小仓库的货架(表)拆分成多个小格子。
2025年06月16日
Redis是一种快速且功能丰富的非关系型数据库,可在内存中存储键值对数据,以提供高速的读写操作。这种数据库在Web应用开发中具有广泛的应用场景,以下是几个主要的例子。
一、缓存
Redis的第一个主要应用场景是作为Web应用中的缓存层。在Web应用中,许多数据库查询或计算密集型操作都可以通过Redis缓存来提高性能。当这些操作被频繁地调用时,Redis可以快速地返回已缓存的结果,避免了昂贵的数据库查询或复杂计算的开销。同时,Redis的内存存储特性也使得其比传统的磁盘缓存更快速和可靠。
2025年06月16日