当前位置: 首页 > news >正文

Java八股文(11-29start)

p1在这里插入图片描述

请添加图片描述
请添加图片描述
请添加图片描述

  • 缓存预热也要预热到布隆过滤器.
  • 过滤不存在的数据请添加图片描述
    请添加图片描述
    请添加图片描述
  1. 布隆过滤器需要存储
    • 添加数据的时候进行预热.
    • 布隆过滤器里面是位图结构,通过多个hash函数获得下标.改为1.
  2. 查询 id进行查询获得对应下标是否为1.可能会出现误判.
    • 判断id是否存在.请添加图片描述
  • 穿透就是查询一个不存在的id.一直查询数据库.

p2请添加图片描述

  • 在构建key的过程中,有大量的需求会压垮db.
  • 需要互斥锁和逻辑过期.请添加图片描述
    请添加图片描述
    请添加图片描述
    请添加图片描述
    请添加图片描述
    区别:1.数据一致性不一样.
  1. 性能差是因为数据都在休眠;性能优秀就是直接返回旧的数据.
    请添加图片描述
    请添加图片描述+ 相当于redis这个门没有了,有很多线程进来db.但是db构建门需要很多时间.

p3

请添加图片描述

请添加图片描述

分布式锁

在这里插入图片描述
在这里插入图片描述

在这里插入图片描述
1.

  • 查询库存
  • 操作库存
  • 加锁
  • 释放锁
  1. synchronized是一个悲观锁.
    在这里插入图片描述
  • synchronized 是基于jvm的.

在这里插入图片描述
在这里插入图片描述

分布式锁在这里插入图片描述

  • 分布式锁是利用了setnx,setnx是在java代码中判断redis有没有这个锁。有的话执行业务代码,没有的话就是获取锁失败。

  • 如果业务超时或者服务宕机了,就会自动释放锁。也可以运行结束释放锁。

  • 业务代码有查询库存,减去库存。
    在这里插入图片描述

  • setnx lock value ex 10

  • 时间的控制最好是时间不够再加时间。
    在这里插入图片描述

  • 线程的时间可以进行设置或者使用看门狗。

  • 看门狗会一直续约。
    在这里插入图片描述

  • tryLock是三个参数的话,10是其他进程等待时间,30是锁自动过期时间,

  • 二个参数的话,10是其他进程等待时间,

  • 一次设置锁,多次获得锁”,从 Redis 的分布式锁的角度来说,通常 Redis 锁是不可重入的,也就是说,如果你一开始获取了锁,那么你只能一次性获取到它。如果你在同一个进程或线程中尝试多次获取锁,它通常会失败,因为 Redis 锁机制并没有内建的“重入”功能。

  • 就是设置一次锁,只可以获得一次锁。redis

  • 在redisson中,可以一次设置,多次获得锁。

在这里插入图片描述

  • 可重入就是在一个线程多次获得到一个锁。
  • redis就是key,value是hash。获得一次锁就是+1.unlock()就是-1.
    在这里插入图片描述

主从一致

在这里插入图片描述
在这里插入图片描述
在这里插入图片描述

  • 主从数据一致性。就是多个redis数据实例。

ZooKeeper锁的强一致性是指在分布式系统中 。

  1. 全局视图:所有节点都对锁的状态有一个全局一致的视图。这意味着,如果一个节点获取了锁,那么所有其他节点都会知道这个锁已经被这个节点获取。
  2. 操作的顺序性:所有对锁的操作(获取、释放)都是按照一个全局顺序进行的。这确保了即使在分布式环境中,操作的执行顺序也是确定的。

数据的一致性:ZooKeeper确保所有节点看到的数据都是最新的,没有过时的数据。这通过ZooKeeper的同步机制实现,它保证在任何时候,所有节点都能看到相同的数据状态。

主从复制,主从同步


http://www.mrgr.cn/news/78709.html

相关文章:

  • 亚远景-ASPICE评估:提升汽车软件开发过程的质量与效率
  • 年会抽奖Html
  • 头歌python实验:网络安全应用实践3-验证码识别
  • cityhash–对字符串的哈希算法
  • 如何利用Java爬虫批量获取商品信息
  • 【C语言】可移植性陷阱与缺陷(七): 除法运算时发生的截断
  • MySQL源码编译
  • baomidou Mabatis plus引入异常
  • 【设计模式系列】解释器模式(十七)
  • 关于使用注册表修改键盘的键位映射
  • 阿里云服务器(centos7.6)部署前后端分离项目
  • 六:安装服务-compute node
  • 1-1 Gerrit实用指南
  • 【LeetCode刷题之路】120:三角形最小路径和的两种解法(动态规划优化)
  • 初识ProtoBuf以及环境搭建(Win和Ubuntu)
  • NGO-CNN-BiGRU-Attention北方苍鹰算法优化卷积双向门控循环单元时间序列预测,含优化前后对比
  • 你能穿过迷雾看清一切吗
  • uni-app 使用笔记
  • 【Oracle】个人收集整理的Oracle常用SQL及命令
  • BUGKU printf
  • otter 扩展
  • Ubuntu 24.04使用docker安装Node-Red
  • 【Ant Design Pro】1. config 配置
  • nginx搭建直播推流服务
  • arkTS:持久化储存UI状态的基本用法(PersistentStorage)
  • SRS搭建直播推流服务