自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(111)
  • 资源 (1)
  • 收藏
  • 关注

原创 SQL同时在线问题的解法

前言很多人看到这类题,一脸懵逼,甚至连题意都看不懂,但是这道题是面试题中的常客,需要格外关注,尤其是互联网大厂喜欢考察,下面以统计某视频app同时在线最大主播数量为例数据准备共三列,第一列主播id、第二列上线时间、第三列下线时间。

2023-01-19 13:44:33 1946 1

原创 Navicat创建Mysql事件(定时任务)

DISABLE ON SLAVE:主从配置的数据库服务器中,在从机上也创建该定时器,但不执行。PRESERVE:当EVENT到期,EVENT会被DISABLE,但该EVENT还是会存在。NOT PRESERVE:当EVENT到期,EVENT会被自动删除。创建Mysql事件(定时任务)如果未开启,首先需要开启事件。ON为开启、OFF为关闭。(一)、打开创建事件界面。一、查看事件是否开启。DISABLE:禁用。

2022-12-21 17:34:29 2911

原创 RedisTemplate 保存数据的键值通过rdm可视化工具查看乱码

最初考虑仅封装一些API满足业务需求,想着一切从简,使用默认配置。最初使用的rdm版本是0.8.3,当key值乱码的时候,无法直接通过工具删除缓存的数据;必须把key值改掉才可以。后来升级了rdm到0.9.3,才能正常删除数据。通过这段代码,可以看到如果全部使用默认配置,最终key值序列化使用的是 JdkSerializationRedisSerializer。查看RedisTemplate源码,keySerializer 就是序列键值使用到的序列化器。1、可以新建一个配置类,覆盖默认的配置。

2022-10-01 08:45:00 866

原创 数据库重构工具 LiquiBase被锁,报错Error creating bean with name ‘liquibase‘ defined in class path resource ....

【代码】数据库重构工具 LiquiBase被锁,报错Error creating bean with name 'liquibase' defined in class path resource ....

2022-08-29 10:36:46 2280

原创 使用stream流对两个集合的数据通过一个字段进行匹配,将一个集合中的数据插入到另一个集合中

在前两天的工作中遇到这样一一个场景:我查询出来了两组List集合的数据,需要将一个集合中得对象的数据赋值给另一个集合对象对应的字段,两个对象中有一个共同的id字段,首相我想到的用for循环加上if判断的方式来完成,但是总觉得这样写不够优雅;然候又想到了通过stream流的方式来实现,而且在复杂的应用场景下或者在数据量大的情况下使用stream流会有更高的效率,因为stream是多线程并行操作的.当然在业务简单而且数据量也不大的情况下还是不同的for循环加if判断效率高一些,比如我接下来的测试数据....

2022-08-26 13:36:51 4450

原创 mysql中首字母大写的函数,如何借助MySQL函数将字符串的首字母大写?

我们需要使用的功能,嵌套和针对这种情况,我们可以使用UPPER()和LOWER()使用SUBSTRING()方法。为了理解它,我们使用来自'emp_tbl'的数据,如下所示。从上面的结果集中我们可以看到名称字符串的第一个字符是小写字母。以下查询将大写字符串的第一个字母-实际上,MySQL中没有单个函数仅将。...

2022-08-12 17:09:01 1480

原创 springBoot报错org.apache.ibatis.binding.BindingException: Invalid bound statement (not found): 解决

在yml文件夹添加#mybatis: mapper-locations: classpath:mapper/*Mapper.xml type-aliases-package: com.payment.consumer.study.pojo

2022-04-13 20:43:45 548

原创 springboot对接支付宝支付接口(详细开发步骤总结)

最近需要对接支付宝的支付接口,官方文档写得内容有点分散,整理了一下发布出来,用作记录,同时也希望对不了解情况的人有所帮助,这里以电脑端的网页支付为例。开发主要分为三个步骤:一、生成私钥公钥。二、建立应用。三、沙箱环境。四、接口开发一、生成私钥公钥生成密钥的官网文档:官网文档官方文档讲得已经很详细,按照步骤来即可,记得保存好公钥与私钥,下面需要用到二、建立应用1.首先进入蚂蚁金服开放平台的首页,通过支付宝账户登录,登录的时候要选择一个身份,这个选自研开发者吧,反正后面可以拓展2.在

2022-04-11 21:41:07 6125

原创 centos7下安装rabbitmq

一、下载rpm包去https://packagecloud.io下载erlang的rpm包 wget --content-disposition https://packagecloud.io/rabbitmq/erlang/packages/el/7/erlang-23.3.4-1.el7.x86_64.rpm/download.rpm 去https://github.com/rabbitmq/rabbitmq-server/releases下载rabbitmq的rabbitmq...

2022-04-06 22:01:53 2138

原创 Mybatis中Mapper foreach循环遍历List、Array参数设置

在做mybatis的mapper.xml文件的时候,我们时常用到这样的情况:动态生成sql语句的查询条件,这个时候我们就可以用mybatis的foreach了foreach元素的属性主要有item,index,collection,open,separator,close。item:集合中元素迭代时的别名,该参数为必选,意思是每次遍历时的别名,这里是什么参数名,下面引用也是引用这个参数名。 index:在list和数组中,index是元素的序号,在map中,index是元素的key,该参数可选

2021-12-09 12:26:09 8269

原创 itextpdf将html转成pdf,包含中文字体以及中文换行

1、maven文件下载 <dependency> <groupId>com.itextpdf</groupId> <artifactId>itextpdf</artifactId> <version>5.5.9</version> </dependency> ...

2021-11-12 21:41:30 2064

原创 springboot+pageoffice实现Word在线编辑

1、下载jar包_卓正软件 - PageOffice官方网站 - 在线编辑Word、Excel的Office文档控件2.将jar包打入maven仓库mvn install:install-file -Dfile=D:\pageoffice4.5.0.3.jar -DgroupId=my.pageoffice -DartifactId=pageoffice -Dversion=1.0 -Dpackaging=jar3、添加依赖<dependency> <g.

2021-11-08 19:37:49 2377

原创 Springboot 实现在线预览,Word文档 doc、xlsx、pdf、txt

前言PDF、TXT 只要资源可访问,根本就不需要进行任何处理,直接访问查看就完事了。也是因为这个PDF可以直接查看(现在浏览器基本支持了),那么我们实现Word文档在线预览,其实也是 把WORD文档 复制一份生成一份供预览的 PDF文件而已。先看看效果:正文这篇实例,实现在线预览WORD文档,分两步:一. 安装OpenOffice二.写点小代码一. 安装OpenOffice不要看到安装东西就觉得麻烦,因为这个安装不需要做任何配置,你只需要下载,选择安装地址,一直下一.

2021-11-08 19:26:06 3426

原创 mysql中将多行数据合并成一行数据

一个字段可能对应多条数据,用mysql实现将多行数据合并成一行数据例如:一个活动id(activeId)对应多个模块名(modelName),按照一般的sql语句:SELECT am.activeId,m.modelName FROM activemodel am JOIN model m ON am.modelId = m.modelId ORDER BY am.activeId查询出的列表为图1所示:     ...

2021-11-07 10:50:15 15247 2

原创 springboot集成ueditor配置自定义上传文件方法到服务器并回显

前言:ueditor百度富文本编辑器,bug是真的多,走一步一个bug啊,折腾了好几天了,下面个把我整好的分享给大家!ueditor+springboot : 上传到项目jar包项目外的服务器文件夹(用的是自己后台的上传方法),并实现图片回显开始:1.先按照这个把ueditor整合到项目中:https://blog.csdn.net/qq_38431927/article/details/98985681接下来就是改配置了2.首先我们springbo...

2021-10-25 20:29:56 517

原创 springboot整合ueditor百度富文本编辑器详细教程

第一步:到官方下载ueditorhttps://ueditor.baidu.com/website/download.html(ueditor下载地址)解压,放到项目目录static下第二步:引入到前端页面中<!DOCTYPE html><html lang="en"><head> <meta charset="UTF-8"> <title>Title</title> <script...

2021-10-20 19:44:52 788 1

原创 Thymeleaf——动态绑定img的src

th:src="@{/image/goods/{imgName}(imgName=${goods.goods_img})}"

2021-10-20 19:37:08 1361

原创 php面试题-Redis篇

一.为什么使用缓存?1.高性能假设这么个场景,有个操作,一个请求过来,耗时 600ms 操作 mysql查出来一个结果,但是这个结果可能接下来几个小时都不会变了,或者变了也可以不会立即反馈给用户。那么此时咋办?将折腾 600ms 查出来的结果放入缓存里,一个 key 对应一个 value,下次查找时不经过 mysql,直接从缓存里通过一个 key 查出来一个 value,2ms 搞定,性能提升 300 倍。所以对于一些需要复杂操作耗时查出来的结果,确定后面不怎么变化,但是有很多读请求,直接将

2021-08-03 20:11:06 1411 2

原创 php面试题-MySQL篇

一.MySQL有哪几种数据存储引擎?有什么区别? MySQL中通过show ENGINES指令可以看到所有支持的数据库存储引擎。最为常用的就是MyISAM和InnoDB两种。 MyISAM和InnoDB的区别:1.存储文件。MyISAM每个表有两个文件:MYD和MYI。MYD是数据文件,MYI是索引文件。而InnoDB每个表只有一个文件:ibd。 2.InnoDB支持事务,支持行级锁,支持外键。 3.InnoDB支持XA事务 4.InnoDB支持savePoint...

2021-08-02 16:49:48 1556 2

原创 sql四大排名函数

1.ROW_NUMBER()定义:ROW_NUMBER()函数作用就是将select查询到的数据进行排序,每一条数据加一个序号,他不能用做于学生成绩的排名,一般多用于分页查询,比如查询前10个 查询10-100个学生。实例:1.1对学生成绩排序这里number就是每个学生的序号 根据studentScore(分数)进行desc倒序1.2获取第二个同学的成绩信息这里用到的思想就是 分页查询的思想 在原sql外再套一层selectwhere t.number>=1 ...

2021-06-12 14:24:45 2310 1

原创 Redis五种数据类型的应用场景

一、redis与memcache的区别1、redis不仅支持k/v类型的数据,同时还提供了list,set,zset,hash数据结构的存储。2、redis支持集群化,即master-slave模式的主从复制3、redis支持数据的持久化,可将内存数据保存在磁盘中,重启的时候可以再次加载进行使用4、Redis能够替代memcached,让你的缓存从只能存储数据变得能够更新数据,因此你不再需要每次都重新生成数据了。redis底层使用hash表的方式来存储k/v对,保证可以快速查询到相应的key值

2021-05-29 20:41:54 1892

原创 laravel+redis实现接口限流

在Middleware下创建控制器:LimitFlowMiddleware.<?php// 已Laravel框架为例namespace App\Http\Middleware;use Closure;use Illuminate\Http\Request;use Illuminate\Http\Response as SymfonyResponse;use Illuminate\Support\Facades\Response;/** * 流量限制器 * 实现两个功能.

2021-05-26 17:06:55 2214 4

原创 redis+lua创建锁机制类

<?phpnamespace App\Http\Controllers\lock;use App\Http\Controllers\Controller;class LockController extends Controller{ private $redis; private $lockId; //记录加锁客户端的id public function __construct($redis) { $this->redis .

2021-05-12 19:26:48 1726

原创 基于Docker的Redis容器主从复制搭建

一. 一主机两从机1.首先创建Redis容器:2.配置两个从机的配置文件redis.conf:replicaof ip地址 端口号masterauth 主机密码3.测试查看info replication主机输入后显示:从机输入后显示:在主机输入数据:在从机查看数据:二.薪火相传式连接1.命令连接在第一个从机输入:slaveof 182.92.0.84 6382在第二个从机输入:slaveof 182.92.0.8

2021-04-29 20:47:16 1889 1

原创 Redis事务

Redis事务可以一次执行多个命令,本质是一组命令的集合。一个事务中的所有命令都会序列化,按顺序地串行化执行而不会被其他命令插入,不许加塞。可以在一个队列中,一次性、顺序性、排他性的执行一系列命令。三阶段:开启:以MULTI开始事务。 入队:将多个命令入队到事务中,接到这些命令并不会立即执行,而是放到等待执行的事务队列里面。 执行:由EXEC命令触发事务。常见执行结果:1.正常执行2.放弃事务:3.全体连...

2021-04-28 18:38:49 1742

原创 Redis持久化-aof

1.修改配置文件:redis.confappendonly yes //开启aofappendfilename "appendonly.aof" //aof备份保存的文件名2.重启redissystemctl restart redis3.redis 添加数据[root@hadoop102 myredis]# redis-cli127.0.0.1:6379> key *(empty list or set)127.0.0.

2021-04-27 23:51:37 1791

原创 Redis持久化-rdb

1.修改配置文件:redis.confsave 120 10 //在120秒内对数据超过10次操作就备份dbfilename dump.rdb //备份的数据文件名dir /var/lib/redis //备份的文件路径2.重启redissystemctl restart redis3.进入备份文件目录删除备份文件rm -rf dump.rdb4.redis 添加数据产生新的dump.rdb[root@hadoop102 myredis]

2021-04-27 21:30:13 1801

原创 缓存穿透、缓存击穿、缓存雪崩区别和解决方案

一、缓存处理流程前台请求,后台先从缓存中取数据,取到直接返回结果,取不到时从数据库中取,数据库取到更新缓存,并返回结果,数据库也没取到,那直接返回空结果。 二、缓存穿透描述: 缓存穿透是指缓存和数据库中都没有的数据,而用户不断发起请求,如发起为id为“-1”的数据或id为特别大不存在的数据。这时的用户很可能是攻击者,攻击会导致数据库压力...

2021-04-23 22:42:54 1797

原创 基于 Docker 的 MySQL容器主从复制搭建

创建MySQL容器:ifconfig查看ip:Master 服务器地址是172.17.0.2,Slave 服务器地址是172.17.0.3,MySQL 的端口号都为3306。2. 配置主服务器(Master)首先,进入到 Master 服务器。docker exec -it mysql bashsystemctl status mysql这个命令是查看 mysql 服务的状态,可以看到当前服务器正在运行当中,版本是 5.6.35。搭建主从复制时,最好保持版本的一...

2021-04-22 22:45:18 1765

原创 MySQL批量插入数据

1.随机生成字符串、int DELIMITER $$ CREATE FUNCTION rand_string(n INT) RETURNS VARCHAR(255) BEGIN DECLARE chars_str VARCHAR(100) DEFAULT 'abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPPQRSTUVWXYZ'; DECLARE return_str VARCHAR(255) DEFAULT ''; DECLARE i INT DE

2021-04-22 13:01:36 1742

原创 h5扫描pc端二维码登录

我们采用前后端分离的方法来实现这个功能(暂不考虑二维码过期、该二维码登录过一次等复杂情况,只实现扫码登录功能)。首先梳理一下要准备的PHP接口,一共有3个:让前端页获取唯一的QRUUID(唯一字符串就可以)生成一个二维码用的接口。APP端扫描到QRUUID后去请求的接口,功能是把用户和这个QRUUID绑定(可以传User_id或者token什么的,具体看需求)。前端在获取到第一个的接口返回的QRUUID后去轮询请求的接口,功能是...

2021-04-21 13:05:53 2404

原创 MySQL的读锁和写锁

MyISAM在执行查询语句(SELECT)前,会自动给涉及的所有表加读锁,在执行增删改操作前,会自动给涉及的表加写锁。MySQL的表级锁有两种模式: 表共享读锁(Table Read Lock) 表独占写锁(Table Write Lock)结论: 所有对MyISAM表进行操作,会有一下情况: 1、对MyISAM表的读操作(加读锁),不会阻塞其他进程对同一表的读请求,但会阻塞对同一表的写请求,只有当读锁释放后,才会执行其他进程的写操作...

2021-04-18 17:44:29 1934

原创 MySQL视图

MySQL 视图(View)是一种虚拟存在的表,同真实表一样,视图也由列和行构成,但视图并不实际存在于数据库中。行和列的数据来自于定义视图的查询中所使用的表,并且还是在使用视图时动态生成的。数据库中只存放了视图的定义,并没有存放视图中的数据,这些数据都存放在定义视图查询所引用的真实表中。使用视图查询数据时,数据库会从真实表中取出对应的数据。因此,视图中的数据是依赖于真实表中的数据的。一旦真实表中的数据发生改变,显示在视图中的数据也会发生改变。视图可以从原有的表上选取对用户有用的信息,那些对用户没用,或

2021-03-30 11:07:31 3188

原创 Mysql复制表结构、表数据的方法

1、复制表结构及数据到新表(不包含主键、索引、分区等)CREATE TABLE 新表 SELECT * FROM 旧表或 CREATE TABLE 新表 AS SELECT * FROM 旧表这种方法将旧表基本结构和数据复制到新表。不过这种方法的一个最不好的地方就是新表中没有了旧表的主键、索引、Extra(auto_increment,字符集编码及排序)、注释、分区等属性 以及触发器、外键等。2、只复制表结构到新表CREATE TABLE 新表 SELECT * FROM 旧表

2021-03-30 10:44:27 2777 1

原创 mysql中常用的三种插入数据的语句

insert into表示插入数据,数据库会检查主键,如果出现重复会报错;# replace into表示插入替换数据,需求表中有PrimaryKey,或者unique索引,如果数据库已经存在数据,则用新数据替换,如果没有数据效果则和insert into一样;# insert ignore表示,如果中已经存在相同的记录,则忽略当前新数据;insert ignore into actor values("3","ED","CHASE","2006-02-15 12:34:33");...

2021-03-29 22:31:46 1842

原创 mysql 索引

一.alter方法: 添加主键 ALTER TABLE tbl_name ADD PRIMARY KEY (col_list);// 该语句添加一个主键,这意味着索引值必须是唯一的,且不能为NULL。 添加唯一索引 ALTER TABLE tbl_name ADD UNIQUE index_name (col_list);// 这条语句创建索引的值必须是唯一的。 添加普通索引 ALTER TABLE tbl_name ADD INDEX i..

2021-03-29 17:42:15 1683

原创 MYSQL 让两个字段拼接查询

使用concat_ws关键字进行查询。例:select CONCAT_WS("我是分隔符",username,passwd) as result FROM userdata ;

2021-03-29 16:31:40 1721

原创 MySQL中实现rank排名查询

MySQL中,手写rank示例:先创建一个tablle,并放入一些数据,如: age升序排列(age相同时,排名继续增加),示例: 注:这里的(SELECT @curRank := 0) q 的作用是:在同一个select语句中给变量cu...

2021-03-28 22:12:58 1903

原创 tp5更改在标签栏显示的网站图标

随便选择一张你喜欢的图片,然后命名改为favicon.ico。将其替换原来tp5框架public下的favicon.ico。然后在网页html文件head标签内加上上图href表示favicon.ico的路径。更改后如下图:

2021-03-20 13:05:48 1976 1

原创 如何配置apache使不同域名转到不同端口?

在配置文件的最下方添加(以下是例子,大家可以根据自己的情况进行配置,下面是我个人的一种配置,还有其他的配置方法,此处就省略了,以后有空再做其他的介绍)<VirtualHost *:80>ServerName 你的域名aServerAlias 你的域名aProxyPreserveHost OnProxyRequests OffProxyPass / http://你的服务器ip:8001/ProxyPassReverse / http://你的服务器ip:8001/</VirtualH...

2021-03-18 21:38:06 1749

PHP开发高可用高安全App后端

PHP开发高可用高安全App后端

2021-03-22

空空如也

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

TA关注的人

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