- 博客(20)
- 收藏
- 关注
原创 redis-集群-主从复制
比较主流的有三种主从复制哨兵模式分片集群集群的定义:单体redis的并发有限,当需求比较高的时候可以通过部署集群来实现高并发和读写分离,通常是一主多从,主节点写,从节点读。
2024-05-07 16:04:50
210
原创 redis-淘汰策略(8种)
LFU(Least Frequently Used):最少频率使用,统计每个key的访问频率,值越小越先被删除。2 volatile-ttl:对设置了TTL的key,比较key的剩余TTL值,值越小越先被淘汰。1 noeviction(默认):不淘汰任何key,内存满时不写入新的key。6 volatile-lru:对设置了TTL的key基于LRU算法进行淘汰。8 volatile-lfu:对设置了TTL的key基于LFU算法进行淘汰。按照LRU算法对所有key或设置过期时间的key。
2024-05-07 14:19:53
3098
1
原创 redis-缓存三剑客(缓存击穿,缓存穿透,缓存雪崩)
当请求未命中key时,先获取互斥锁(分布式锁),开启新线程进行查询和建立缓存数据,并重新写入逻辑过期时间,再释放锁,请求不需要等待新线程执行结束,直接返回未命中结果。,在每次请求前判断key是否存在,不存在则直接返回。:当请求未命中key时,先获取互斥锁(分布式锁),再通过查询建立缓存数据,写入缓存再释放锁。保证数据强一致,性能差,:在value中添加过期时间标识,通过该参数判断是否过期。1 大量key失效的场景:过期时间随机,分批设置过期时间。通过集群提高服务的可用性,例:哨兵模式,集群模式。
2024-05-01 19:19:03
310
2
原创 Spring-事务
4 在当前类中调用方法,例:test类中 有 a,b两个方法,b添加事务注解,在方法a中调用b方法,事务不会生效,因为在spring在扫描bean到时候,会对使用了注解到类生成一个代理类,在带注解方法被调用时,实际上是代理类调用的,如果在类的内部调用相当于this.b,所有不会生效。propagation-nested:如果当前存在事务,则作为子事务在嵌套事务内执行。propagation-requierd:如果当前没有事务,就新建一个事务,如果已存在一个事务中,则加入到这个事务中,这个是默认选项。
2024-02-29 16:17:58
248
原创 centos8安装mysql8
centos8 安装mysql创建mysql安装包目录mkdir /usr/local/mysql下载wget https://dev.mysql.com/get/Downloads/MySQL-8.0/mysql-8.0.11-linux-glibc2.12-x86_64.tar.gz[root@iZwz9a8j9twstnf1cetq8yZ ~]# cd /usr/local/[root@iZwz9a8j9twstnf1cetq8yZ local]# mkdir mysql[root@iZ
2022-02-16 13:16:47
217
原创 关系型数据库
一、 什么是关系型数据库? 它通过数据、关系和对数据的约束三者组成的数据模型来存放和管理数据,关系型是以关系数学模型来表示的。关系数学模型中以二维表的形式来描述。而一个关系型数据库就是由二维表及其之间的联系所组成的一个数据组织。关系模型的主要组成部分关系:可以理解为二维表中的表明元组:可以理解为一行数据,通常称为数据。属性:可以理解为一列数据,通常称为数据表的元素。域:属性的取值范围,也就是数据库中某一列的取值范围。关键字:一组可以唯一标识元组的属性,例如:主键,由一个或多个组成域:属性的取
2022-02-15 21:45:04
831
原创 原生JDBC--使用-简述
使用JDBC链接数据库缺点:jdbc底层没有连接池,操作数据库需要频繁的创建和关联链接,需要耗费大量的资源,在java中项目一旦需要修改sql,就需要整体编译不利于维护。返回的结果集也需要硬编码。代码编写之前需要引入jar <dependency> <groupId>mysql</groupId> <artifactId>mysql-connector-java</artifactId&
2022-02-14 00:48:27
547
原创 Java-垃圾回收机制
垃圾回收机制目录一.如何定位需要回收的对象1.引用计数算法2.根可达性分析算法二.使用哪种策略回收垃圾?1.标记清除算法(Mark-Sweep)2.标记整理算法(Mark-Compact)3.复制算法(Copying)垃圾收集器1.Serial 串形化(作用于年轻代)使用复制算法,STW2.ParallelScavenge并行(作用于年轻代),采用复制算法STW3.ParNew并行(作用于年轻代)--ParallelScavenge改良版4.CMS(ConcurrentMarkSweep)并发标记清除(
2022-02-13 23:27:17
419
原创 【IDEA】MAC 修改“.vmoptions“导致 IDEA 无法启动 解决方案
场景:Mac安装2021.3版本的idea,修改vmoptions后导致无法启动问题描述:在安装成功后修改vmoptions时文件地址写错导致无法打开,当前想到的解决方案是找到对应的文件将地址修改正确。# 第一步找到包中对应文件路径问题来了,对应文件里面的内容没有被更改。应该是在其他目录ArrayList的构造方法-有参构造(指定元素)ArrayList下的方法动态扩容线程安全ArrayList集合的概念jdk为我们提供的Collection以及Map容器。本篇主要讲解java内部容器类之一Collection下List接口的子类:ArrayList<>()。源码解
2021-07-02 01:55:31
313
1
原创 java-多线程
多线程的几种状态和方法线程和线程安全本篇主要整理了之前关于线程的部分笔记什么是线程首先我们的电脑可以同时(没有感知)运行多个程序,一个程序通常有一个或以上的进程,进程里面又包括一个或以上的线程,线程即是一个具体的执行单元线程的状态(生命周期)新建:创建一个线程,Thread myThread = new Thread();就绪:启动线程,等待通过线程调度获取cpu资源,myThread.start();运行:就绪状态的线程获取了cpu的资源,run();阻塞:– 等待阻塞:wait()
2020-11-20 16:30:55
206
1
原创 git下载,安装
git 下载,安装git:分布式版本管理工具,灵活度高,公共服务器压力小下载进入官网下载 https://www.git-scm.com/download/ 根据自己的系统进行选择默认下载最新版本,根据自己电脑选择32位/64位打开自己下载所在文件夹,点击exe文件开始安装,运行无脑下一步无脑下一步,根据自己需要勾选无脑下一步,咱们使用默认的文本编辑器根据自己需求勾选我选择第二种,他可以通过第三方软件使用,选择https后端传输,默认选项下一步配置终端模拟器与g
2020-06-30 11:01:58
244
原创 动态SQL,单表查询
mybatis动态SQL语句简单的单表增删改查配上动态SQLmapper接口(通过OrderId查询订单,返回集合) List selectByOrderId(Integer orderId);代码块 select id,user_id,user_name,pay_way FROM odc_i_order_ka ...
2018-08-23 18:06:13
392
1
空空如也
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人