- 博客(36)
- 收藏
- 关注
原创 Redis 的持久化机制是什么?各自的优缺点?
RDB是Redis默认的持久化方式。按照一定的时间将内存的数据以快照的形式保存到硬盘中,对应产生的数据文件为dump.rdb。通过配置文件中的save参数来定义快照的周期。AOF持久化(即Append Only File持久化),则是将Redis执行的每次写命令记录到单独的日志文件中,当重启Redis会重新将持久化的日志中文件恢复数据。当两种方式同时开启时,数据恢复Redis会优先选择AOF恢复。RDB:是Redis DataBase缩写快照。
2024-02-03 23:24:31
591
原创 什么是缓存击穿、缓存穿透、缓存雪崩?
是指缓存中没有但数据库中有的数据(一般是缓存时间到期),这时由于并发用户特别多,同时读缓存没读到数据,又同时去数据库去取数据,引起数据库压力瞬间增大,造成过大压力。和缓存雪崩不同的是,缓存击穿指并发查同一条数据,缓存雪崩是不同数据都过期了,很多数据都查不到从而查数据库。是指缓存同一时间大面积的失效,所以,后面的请求都会落到数据库上,造成数据库短时间内承受大量请求而崩掉。是指缓存和数据库中都没有的数据,导致所有的请求都落到数据库上,造成数据库短时间内承受大量请求而崩掉。
2024-02-03 23:19:37
375
原创 Redis的过期键的删除策略
我们都知道,Redis是key-value数据库,我们可以设置Redis中缓存的key的过期时间。Redis的过期策略就是指当Redis中缓存的key过期了,Redis如何处理。Redis中同时使用了惰性过期和定期过期两种过期策略。
2024-02-03 23:11:36
680
原创 Spring如何解决缓存依赖
在Spring框架中,循环依赖是指两个或多个bean之间相互依赖,形成了一个循环引用的情况。如果不加以处理,这种情况会导致应用程序启动失败。从字面上来理解就是A依赖B的同时B也依赖了A,就像下面这样。体现到代码层次就是这个样子@Service@Autowired@Service@Autowired在Spring的体系中,是Spring IoC容器的基础接口,其类实现了//一级缓存,保存完成的Bean对象//三级缓存,保存单例Bean的创建工厂。
2023-11-27 20:14:32
90
原创 RPC 和 HTTP的区别
RPC(Remote Procedure Call)又叫做远程过程调用,该协议允许一台计算机(客户端)通过网络向另一台计算机(服务器)请求服务并得到结果,就好像是在本地调用一个过程或函数一样,而不必关心底层网络技术的细节。实际上它本更像是一种调用方式。HTTP(Hyper Text Transfer Protocol)协议又叫做 超文本传输协议 ,主要是为 Web 浏览器与 Web 服务器之间的通信而设计的。我们用的比较多,平时上网在浏览器上敲个网址就能访问网页,这里用到的就是 HTTP 协议。
2023-11-26 23:27:08
73
1
原创 设计模式-建造者模式
建造者(Builder)模式是一种创建型设计模式,它允许构造复杂对象的步骤被分解,并允许相同的构建过程创建不同的表示。这种模式主要用于减少构造函数的参数数量,避免创建包含大量参数的对象时出现的“参数地狱”。用一句话概括就是建造者模式的目的是为了分离对象的属性与创建过程。
2023-11-23 20:12:38
112
原创 计算机网络中的OSI模型
网络中的七层模型通常指的是OSI(开放式系统互联)模型,这是一个理论上的模型,用来描述不同计算机系统之间通信的标准化过程。OSI模型由国际标准化组织(ISO)在1984年提出,目的是促进不同系统之间的兼容性和标准化。每个层次都有独特的职责和功能。这个模型提供了一种通用的方法,以便不同类型的网络设备和协议可以互相协作。
2023-11-20 22:34:24
93
1
原创 数据库分表分库的原则
这种情况是不建议使用的,因为数据量是逐渐增加的,当数据量增加到一定的程度还需要再进行切分。水平分库理论上切分起来是比较麻烦的,它是指将单张表的数据切分到多个服务器上去,每个服务器具有相应的库与表,只是表中数据集合不同。此时就会按照一定业务逻辑进行垂直切,比如用户相关的表放在一个数据库里,订单相关的表放在一个数据库里。表中的字段较多,一般将不常用的、 数据较大、长度较长的拆分到“扩展表“。这是因为索引一般是B+树结构,数据千万级别的话,B+树的高度会增高,查询就变慢啦。数据量太大的话,SQL的查询就会变慢。
2023-10-30 00:05:20
48
原创 ThreadLocal的简单使用和学习
类访问共享变量时,会在每个线程的本地,都保存一份共享变量的拷贝副本。多线程对共享变量修改时,实际上操作的是这个变量副本,从而保证线性安全。变量,那么访问这个变量的每个线程都会有这个变量的一个本地拷贝,多个线程操作这个变量的时候,实际是在操作自己本地内存里面的变量,从而起到。并发场景下,会存在多个线程同时修改一个共享变量的场景。但是加锁的方式,可能会导致系统变慢。的值时,需要进行加锁操作,可能导致线程竞争和性能下降。为了解决线性安全问题,可以用加锁的方式,比如使用。的作用,避免了并发场景下的线程安全问题。
2023-10-25 20:05:52
59
1
原创 MySQL数据库引擎-InnoDB,MyISAM
数据库引擎(Database Engine)是指数据库管理系统(DBMS)的核心组件,它负责处理数据库的存储、检索和管理数据的任务。数据库引擎通常提供了一种在物理存储介质(如硬盘)上组织和访问数据的方式,以及执行数据库操作的功能。存储管理:数据库引擎管理数据在物理存储介质上的存储方式,包括数据文件的创建、管理和组织结构的定义。它负责将数据持久化地存储在磁盘上,并提供高效的数据访问和检索机制。查询处理器:数据库引擎负责解析和执行用户提交的查询语句。
2023-10-16 19:20:23
72
1
原创 Spring Boot 整合 Dockerfile
ENTRYPOINT与CMD非常类似,不同的是通过docker run执行的命令不会覆盖ENTRYPOINT,而docker run命令中指定的任何参数,都会被当做参数再次传递给ENTRYPOINT。Dockerfile中只允许有一个ENTRYPOINT命令,多指定时会覆盖前面的设置,而只执行最后的ENTRYPOINT指令。使用指令使容器中的一个目录具有持久化存储的功能,该目录可被容器本身使用,也可以共享给其它容器。tag或digest是可选的,如果不使用这两个值时,会使用latest版本的基础镜像。
2023-10-10 20:31:10
169
1
空空如也
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人