自定义博客皮肤VIP专享

*博客头图:

格式为PNG、JPG,宽度*高度大于1920*100像素,不超过2MB,主视觉建议放在右侧,请参照线上博客头图

请上传大于1920*100像素的图片!

博客底图:

图片格式为PNG、JPG,不超过1MB,可上下左右平铺至整个背景

栏目图:

图片格式为PNG、JPG,图片宽度*高度为300*38像素,不超过0.5MB

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(69)
  • 收藏
  • 关注

原创 InnoDB引擎下SQL的执行流程

利用io线程在一些特定时机将内存中需要更新的数据读出同时写入磁盘 open+write函数 idb文件。首先将bufferpool中数据的旧值写入undo log中以支持回滚。将更新写入信息放入内存中的 redo log buffer。在innodb查询相关的handler api 组合和调用。在redo log 写入的同时进行binlog的写入操作。然后将更新写入信息 刷入磁盘中redo log。然后将数据写入内存中的buffer pool。索引查询 遍历查询 构建临时表等流程。innodb 主要功能。

2024-08-05 10:15:08 367 1

原创 Redis中BigKey的判定查找建议

假如有hash类型的key,其中有100万对field和value,field是自增id,这个key存在什么问题?存在的问题:string结构底层没有太多内存优化,内存占用较多想要批量获取这些数据比较麻烦。

2024-08-03 11:14:26 452

原创 Redis RDB AOF持久化 主从集群同步原理

bgsave开始时会fork主进程得到子进程 子进程共享主进程的内存数据。完成fork后读取内存数据并写入RDB文件。fork采用copy-on-write。

2024-08-02 21:11:52 701

原创 解决redis 缓存穿透 缓存击穿 小案例

发送不存在的请求 可以添加其他的返回值也可以直接抛出。

2024-08-01 22:13:23 564

原创 基本排序算法

随着排序的进行,子序列的划分逐渐细化,最终当增量(gap)为 1 时,算法退化为普通的插入排序,此时数组已经接近有序,因此插入排序的效率很高。插入排序是一种简单直观的排序算法。插入排序在实现上,通常使用in-place排序(即只需用到O(1)的额外空间的排序),因而在从序列的部分有序状况下,可以提高排序效率。选择排序是一种简单直观的比较排序算法,其基本思想是在未排序序列中找到最小(或最大)元素,存放到排序序列的起始位置,然后再从剩余未排序元素中继续寻找最小(或最大)元素,然后放到已排序序列的末尾。

2024-07-28 16:56:01 408

原创 多线程基础知识

实现callable接口结果原因run start 区别start() 方法当你创建了一个 Thread 对象并调用其 start() 方法时,一个新的线程将被启动。start() 方法内部会调用 Thread 对象的 run() 方法,但是是在一个新的线程中执行的。这意味着调用 start() 后,你的新线程将在其自己的线程栈上执行 run() 方法,而不会阻塞调用它的线程。start() 方法只能被调用一次,否则会抛出 IllegalThreadSt

2024-07-27 22:01:37 366

原创 Collention集合基础知识

首先将参数c转换为Object数组a,然后判断数组a的长度是否为0,如果不为0,则判断参数c的类型是否为ArrayList类型,如果是,则直接将数组a赋值给elementData成员变量;如果不是,则通过Arrays.copyOf方法创建一个新的Object数组,并将数组a的内容复制到新数组中,最后将新数组赋值给elementData成员变量。使用 Arrays.copyOf 方法创建一个新的数组,长度为 newCapacity,并将原数组 elementData 的所有元素复制到新数组中。

2024-07-27 13:46:24 335

原创 微信 登录微信小程序登录java后端代码 demo

之后开发者服务器可以根据用户标识来生成自定义登录态,用于后续业务逻辑中前后端交互时识别用户身份。

2024-07-21 09:32:12 727

原创 day02

【代码】day02。

2024-07-20 21:08:09 89

原创 day01

leetcode day01

2024-07-20 20:58:53 250

原创 Elsaticsearch java基本操作

索引 基本操作package com.orchids.elasticsearch.web.controller;import cn.hutool.core.collection.CollUtil;import cn.hutool.json.JSONUtil;import com.orchids.elasticsearch.web.po.User;import io.swagger.annotations.Api;import io.swagger.annotations.ApiOperatio

2024-07-13 13:55:40 729

原创 Git 基本命令

【代码】Git 基本命令。

2024-07-12 08:47:30 140

原创 docker 基础命令

⼦系统与其他容器或主机的隔离程度。# 查看本地镜像# 搜索# 下载指定镜像(Dockerfile)到本地# 上传指定镜像(Dockerfile)到本地# 删除指定images # -f:强制删除# 保存(导出)镜像⽂件# -o:指定保存的镜像的名字# -或-# 载⼊镜像# -或-

2024-07-11 20:34:54 558

原创 利用redis Zset实现 排行榜功能 配合xxl-job持久化每一个赛季的排行榜

当前赛季排行榜利用redis 中的SortSet 数据结构 获取每个月的 月初 利用xxl-job的定时任务持久化化上一个月的排行榜信息 并删除redis中的数据当排行榜数据量巨大时可以 通过对每一个赛季的历史排行榜水平分表 减小单表的数据量和压力查询历史排行榜 通过持久化的表查询serviceIserviceservieImpl定时任务类配置类xxl配置类其他的类PointsBoardPointsBoardSeason测试当前赛季历史赛季

2024-07-07 15:37:49 998

原创 docker 搭建 redis 集群

2)sentinel给所有其它slave发送slaveof 192.168.150.101 7002 命令,让这些节点成为新master,也就是7002的slave节点,开始从新的master上同步数据。此时,如果有新的数据写入,就会覆盖数组中的旧数据。当我们第一次执行slaveof命令,与master建立主从关系时,发送的replid和offset是自己的,与master肯定不一致。master判断发现slave发送来的replid与自己的不一致,说明这是一个全新的slave,就知道要做全量同步了。

2024-07-06 00:38:14 898

原创 利用redis set 实现点赞案例 zset 对点赞进行排序

图service测试结果使用set中的 size方法统计一条评论的点赞总数使用zset对每一条评论的点赞数进行排序配合定时任务定时更新评论区点赞数controller

2024-07-06 00:36:09 687

原创 利用Redis bitmap 实现签到案例

一个用户签到的情况无非就两种,要么签了,要么没。可以用 0 或者1如果我们按月来统计用户签到信息,签到记录为1,未签到则记录为0,就可以用一个长度为31位的二级制数来表示一个用户一个月的签到情况。这张表中的一条记录是一个用户一次的签到记录。假如一个用户1年签到100次,而网站有100万用户,就会产生1亿条记录。随着用户量增多、时间的推移,这张表中的数据只会越来越多,占用的空间也会越来越大。设计签到功能对应的数据库表。knife4j配置类。

2024-07-05 17:20:12 980

原创 springboot 集成阿里云 OSS

【代码】springboot 集成阿里云 OSS。

2024-06-27 18:31:50 634

原创 Redis面试题

与LFU类似,每次需要内存淘汰时,就会抽样一部分KEY,找出其中逻辑访问次数最小的,将其淘汰。当然,这个过程也要加互斥锁,但由于重建缓存是异步的,而且获取锁失败也无需等待,而是返回旧数据,这样性能几乎不受影响。:缓存击穿往往是由热点Key引起的,当热点Key过期时,大量请求涌入同时查询,发现缓存未命中都会去访问数据库,导致数据库压力激增。需要注意的是,无论是采用哪种方式,在获取互斥锁后一定要再次判断缓存是否命中,做dubbo check. 因为当你获取锁成功时,可能是在你之前有其它线程已经重建缓存了。

2024-06-20 23:01:25 1042

原创 Redis分片集群搭建

Redis分片集群如何判断某个key应该在哪个实例?将16384个插槽分配到不同的实例根据key计算哈希值,对16384取余余数作为插槽,寻找插槽所在实例即可如何将同一类数据固定的保存在同一个Redis实例?Redis计算key的插槽值时会判断key中是否包含{},如果有则基于{}内的字符计算插槽数据的key中可以加入{类型},例如key都以{typeId}为前缀,这样同类型数据计算的插槽一定相同。

2024-06-20 23:00:59 947

原创 docker 搭建 redis 集群

2)sentinel给所有其它slave发送slaveof 192.168.150.101 7002 命令,让这些节点成为新master,也就是7002的slave节点,开始从新的master上同步数据。此时,如果有新的数据写入,就会覆盖数组中的旧数据。当我们第一次执行slaveof命令,与master建立主从关系时,发送的replid和offset是自己的,与master肯定不一致。master判断发现slave发送来的replid与自己的不一致,说明这是一个全新的slave,就知道要做全量同步了。

2024-06-20 08:35:17 1105

原创 RabbitMQ延迟消息

在电商的支付业务中,对于一些库存有限的商品,为了更好的用户体验,通常都会在用户下单时立刻扣减商品库存。例如电影院购票、高铁购票,下单后就会锁定座位资源,其他人无法重复购买。但是这样就存在一个问题,假如用户下单后一直不付款,就会一直占有库存资源,导致其他客户无法正常交易,最终导致商户利益受损!因此,电商中通常的做法就是:对于超过一定时间未支付的订单,应该立刻取消订单并释放占用的库存。

2024-06-19 18:44:11 479

原创 Elasticseach RestClient Api

你会发现虽然是match_all,但是响应结果中并不会包含索引库中的所有文档,而是仅有10条。这是因为处于安全考虑,elasticsearch设置了默认的查询页数。elasticsearch的数据一般会采用分片存储,也就是把一个索引中的数据分成N份,存储到不同节点上。这种存储方式比较有利于数据扩展,但给分页带来了一些麻烦。比如一个索引库中有100000条数据,分别存储到4个分片,每个分片25000条数据。elasticsearch 默认情况下只返回top10的数据。标签都添加了红色样式。

2024-06-19 18:22:41 1124

原创 Elasticsearch RestclientApi基础用法

【代码】Elasticsearch RestclientApi基础用法。

2024-06-19 10:51:23 531

原创 Elasticsearch docker 安装及基本用法

name | firstName | keyword | 字符串,但是不分词 | | | —— || | lastName | keyword | 字符串,但是不分词 | | | —— || email | | keyword | 字符串,但是不分词 | | | —— || score | | float | 只看数组中元素类型 | | | —— || info | | text | 字符串,但需要分词 | | | IK |,是索引中文档的字段约束信息,类似表的结构约束。

2024-06-18 23:43:02 1245

原创 JAVA 整合 RabbitMQ

JAVA 整合 RabbitMQ。

2024-06-06 11:33:03 898

原创 Linux 下安装docker

本机是centos 7 非root 用户安装 如果是root用户安装则以下所有命令去掉 sudo。

2024-06-05 14:32:56 699

原创 Linux 下 MySQl 安装

注意是linux系统的包 (mysql-8.0.31-1.el7.x86_64.rpm-bundle.tar)最右边下载。

2024-06-04 18:31:26 559

原创 spring boot jwt 实现用户登录完整java

保护所有受保护的接口增加jwt合法性逻辑 custom.interceptor.AuthenticationInterceptor。我们约定,前端登录后,后续请求都将JWT,放置于HTTP请求的Header中,其Header的key为。登录接口需要为登录成功的用户创建并返回JWT,本项目使用开源的JWT工具。创建JWT和工具类 common.utils.JwtUtil。用户登录的校验逻辑分为三个主要步骤,分别是。,配置如下,具体内容可参考。controller逻辑。编写mapper逻辑。

2024-06-04 09:37:47 668

原创 springboot 集成阿里云短信服务实现登录

springboot 集成阿里云短信服务实现登录

2024-06-04 09:14:32 939

原创 redis 事务

开启 multi 开始一个事务入队 将多个命令入队到事务中 接到这些命令不会立即执行 而是放到等待执行的事务中的队列里面执行 由exec命令触发事务。

2024-06-03 22:07:57 597

原创 servlet

servlet 是javaee 规范之一 规范就是接口servlet 是javaweb 的三大组件 三大组件 分别是 servlet 程序 filter 过滤器 listener 监听器servlet 是运行在服务器上的一个java 小程序 它可以接受客户端 发送过来的请求 并响应数据给客户。

2024-06-02 23:01:08 540

原创 Docker学习笔记

【代码】Docker学习笔记。

2024-06-02 23:00:34 915

原创 jwt 实现用户登录完整java

保护所有受保护的接口增加jwt合法性逻辑 custom.interceptor.AuthenticationInterceptor。我们约定,前端登录后,后续请求都将JWT,放置于HTTP请求的Header中,其Header的key为。登录接口需要为登录成功的用户创建并返回JWT,本项目使用开源的JWT工具。创建JWT和工具类 common.utils.JwtUtil。用户登录的校验逻辑分为三个主要步骤,分别是。,配置如下,具体内容可参考。controller逻辑。编写mapper逻辑。

2024-06-02 22:57:30 1065 1

原创 easy-captcha生成验证码

easy-captcha生成验证码。

2024-06-02 22:56:39 230

原创 springboot 自带的定时任务

springboot 自带定时任务

2024-06-02 15:31:18 334 5

原创 springboot 集成minio 实现文件上传

springboot 集成minio 实现文件上传

2024-06-01 12:49:24 467

原创 springboot 项目集成 knife4j

测试测试结果编写配置类 注意 yml文件需要添加测试测试结果编写配置文件测试测试结果

2024-06-01 00:47:22 2378

原创 前端传String字符串 后端使用enun枚举类出现错误

将其注册到WebMvcConfiguration。第二种方法有这一个类就行了。

2024-05-31 23:27:04 854

原创 前端传String字符串 后端使用enun枚举类出现错误

将其注册到WebMvcConfiguration。第二种方法有这一个类就行了。

2024-05-31 22:22:13 686

空空如也

空空如也

TA创建的收藏夹 TA关注的收藏夹

TA关注的人

提示
确定要删除当前文章?
取消 删除