自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(84)
  • 问答 (1)
  • 收藏
  • 关注

原创 我的个人网站

欢迎访问我的个人博客网站:http://hanhanhanxu.coding.me/或者https://hanhanhanxu.github.io/此博客使用Github+hexo搭建里面讲解了此博客的搭建历程和各种美化方法。还有学习总结,知识汇总等都会备份到里面。欢迎查看。Github:https://github.com/hanhanhanxu...

2019-06-13 21:01:39 261

原创 秒杀测试案例 Java Redis Mysql

秒杀场景下要注意的点一般有:超卖问题、少卖问题、一人一单、事务提交后再解锁。

2023-02-24 10:42:15 2110 1

原创 mysql错误:Can‘t connect to local MySQL server through socket ‘/tmp/mysql.sock‘

每天一个奇怪的小问题,用DBeaver从一个库导出sql文件,成功;然后将sql文件导入另一个库时,报这个错误:Can’t connect to local MySQL server through socket ‘/tmp/mysql.sock’导入不了,百度Google了很多找不到解决方案。我不想创建那个sock文件,突然灵机一动,既然这个是跟本地socket连接有关的,那我不用不就行了吗,我直接用ip连接,不走本地socket。于是我试着新建一个链接,将localhost换成本机ip(192.168

2022-06-30 16:21:41 1482

原创 bazel构建go项目的问题 Generating Descriptor Set proto_library

go小白,bazel完全不懂。电脑:Mac,inter,64位公司有一个go项目,使用bazel构建。我拉下来之后bazel build //…总是出错1、第一个错误:具体内容我忘记了,就是要连接github下载东西,然后报访问错误这个属于网络错误,一般确保能够正常访问github就行,我电脑上装了梯子,然后去代理那边把http、https、sock的几个ip端口拿过来export https_proxy=http://127.0.0.1:33210export http_proxy=http:

2022-05-17 16:29:01 9737

原创 Redis手册

redis是单线程多路IO复用Redis数据结构Redis锁悲观锁:操作之前必然先上锁,这就叫悲观锁。传统关系型数据库中用到很多:行锁,表锁,读锁,写锁,等。乐观锁:谁想操作谁操作,但是操作前必须将拿到的版本号和数据的版本号对比,一致才能操作,不一致说明拿到的数据已经旧了,此次操作不能进行。(适用于多读的场景)抢票:只有一张票,很多人都能抢到,但是只有一个人能支付成功。【1、拿版本号,2、check and set 一致?操作:不能操作】redis是利用check-and-set机制(

2022-02-28 22:44:04 578

原创 对《分布式唯一ID生成器》的解读

我的个人网站:http://riun.xyz本文是对廖雪峰老师分布式唯一ID生成器的解读,因为我第一次读这篇文章时没有读懂,后来结合很多其他文章慢慢的才搞懂所谓的“使用bit储存什么信息“,”在哪些位上储存“,这些话的意思。所以我想要用另外一些尽量简单明了的话语去解释这些东西,相当于耳边辅导一样。读本文之前建议先通读一遍廖雪峰老师的文章。零、预备知识1字节=8位1byte = 8bitjava中int类型是4byte,也就是32bit00000000 00000000 00000000 0.

2021-12-16 10:28:08 876

原创 唯一字符串

我的个人网站:http://riun.xyz简介:唯一字符串SerialNumber,适合做requestId等,唯一标记请求。组成:类似这种:1Fkr3ybMcMEjDuFf6w,18位。前9位是根据当前纳秒时间转换生成,后9位是随机所有数字字母生成。速度:生成1000000(一百万)个平均需要600毫秒。优点:不是最快的, 但不加锁,速度已经很优秀,且基本保证永不重复;简单,不需读取其他信息。缺点:长度大,字母多,若需储存则占用较大空间。不包含时间信息,不可携带业务含义。package.

2021-12-16 10:27:20 447

原创 web应用中一种统一返回体的设计

我的个人网站:http://riun.xyzJDK1.8,SpringBoot2.6.01、依赖<?xml version="1.0" encoding="UTF-8"?><project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://maven.apach.

2021-12-16 10:26:54 781

原创 建造者模式

我的个人网站:http://riun.xyz简单的记录下lombok中的建造者模式及使用。不对该模式本身发表意见看法。一、Lombok中的建造者添加@Builder注解后,可直接使用建造者模式创建对象并为其属性赋值。package com.example.demo.pojo;import lombok.AllArgsConstructor;import lombok.Builder;import lombok.Data;import lombok.NoArgsConstructo.

2021-12-16 10:26:17 373

原创 ab压测工具

我的个人网站:http://riun.xyz1、安装yum install httpd-tools2、查看命令ab -v主要参数介绍:-n:请求总量-c:并发请求量-T:content-type,可以是application/json等-H:请求头,-p:文件,该文件存放的请求内容3、压测命令举例ab -n 100 -c 50 -p 123.txt -T application/x-www-form-urlencoded -H “name:xxx” -k -r http://l.

2021-12-16 10:25:39 1097

原创 minio迁移记录

我的个人网站:http://riun.xyz前情提要:A云服务器到期了,刚好赶上B云服务器便宜就买了,然后把A云服务器上的Minio迁移到B云服务器上。一、首先,要迁移的话必须在B云服务器上也有一个Minio服务,所以先在B云服务器上面搭建一下minio服务:http://riun.xyz/work/116 。(不想重新下载时也可以在B云服务器上使用scp root@#{ip}:/bin/minio /bin/命令将minio远程拷贝过来)二、使用rclone工具迁移前提:保证两台服务器时.

2021-12-16 10:25:05 2459

原创 《三体》小问题——燃烧绳子计时

我的个人网站:http://riun.xyz问题一:一根粗细不均匀的绳子,从一头点燃,要烧一个小时烧尽。那如何用它计时15分钟?首先一根绳子是没法计时15分钟的。正确的问题是这样:问题二:有两根不同且都是粗细不均匀的绳子,都是一小时烧完,怎样计时15分钟和45分钟?(上述问题中其他外部环境保持一致,比如氧气浓度,绳子组成物质等等)我们先说问题一为什么没法计时15分钟。首先取绳子的1/4烧,肯定是不对的????,因为绳子是不均匀的。其次,正常分析起来,这个问题很容易陷入一个想当然的思路:一

2021-12-16 10:24:10 2714 1

原创 快速判断奇偶数

我的个人网站:http://riun.xyz利用位运算快速判断奇偶数,老是忘,mark一下。 public static void main(String[] args) { int num = 5346561; if ((num & 1) == 1) { System.out.println("奇数"); } else { System.out.println("偶数"); .

2021-12-16 10:22:49 914

原创 File与FileInputStream奇怪的问题

SpringBoot项目,resources目录下有一个配置文件cfca-config.properties,在代码中可以使用绝对路径和类路径去获取文件。很奇怪的是:如果只new File,那么传进去什么路径都可以;但若是new FileInputStream,那就只能传入绝对路径,传入相对路径就会报“ java.io.FileNotFoundException: classpath:cfca-config.properties (系统找不到指定的文件。)”的异常。下面代码,将第二行屏蔽掉,正常运行

2021-12-16 10:21:31 1213

原创 Non-resolvable import POM: Failure to find

idea启动项目报错Non-resolvable import POM: Failure to find显示不能在maven仓库中找到某某jar包,可是我是在公司使用的公司的私服啊,于是就怀疑是maven配置出了问题。去File Setting Maven看,果然又恢复了默认的C盘下的,而不是我自己设置的maven路径,改为自己设置的maven路径再次启动,成功!...

2021-09-01 12:37:35 6851 1

原创 JUC全部

多线程编程步骤:[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-aBSlu9KL-1630340015888)(http://minio.riun.xyz/riun1/2021-08-26_10iuN4SVXbPv4rxa6y.jpg)]线程间通信:synchronized加锁,Object的wait睡觉 notifyAll唤醒(synchronized执行完自动释放锁)Lock加锁,Condition的await睡觉 signalAll唤醒用 notify()通知时

2021-08-31 00:14:46 115

原创 REDIS - 集群(四)

本文首发于我的个人网站:http://riun.xyz/本文介绍了使用redis如何搭建集群环境。集群是指多个提供相同服务的机器联合在一起构成一个可用性更高的服务体系。可用性高指的是某台机器因故宕机后不会影响或较小的影响整体,从而能够为外部提供持续稳定的服务。以下基于redis-6.2.1版本,系统为centos7 64位官方文档:http://www.redis.cn/documentation.htmlredis集群是基于主从的集群,集群中各个节点有主节点有它的从节点。1、集群搭建

2021-08-22 22:53:18 218

原创 REDIS - 主从复制(三)

本文首发于我的个人网站:http://riun.xyz/本文介绍了使用redis时如何搭建主从环境。主从复制是指多个redis服务联合起来,有的作为主服务,有的作为从服务;从服务从主服务获取数据,且主服务能读写,从服务只能读。以下基于redis-6.2.1版本,系统为centos7 64位官方文档:http://www.redis.cn/documentation.html1、创建配置文件进入myredis目录,创建一个配置文件,写入必要内容,然后拷贝出另外两份,并修改内容。cd /myr

2021-08-22 22:52:12 453

原创 REDIS - 持久化(二)

本文首发于我的个人网站:http://riun.xyz/本文介绍了redis的数据持久化方案,即数据如何在重启服务后仍能获取到。以下基于redis-6.2.1版本,系统为centos7 64位官方文档:http://www.redis.cn/documentation.html0、whatredis持久化是指将存在内存中的数据持久化到本地文件系统中。为什么需要这样做?当redis服务端关闭时,数据不能丢失(不要问为什么不能丢失),下次启动redis时要恢复上次内存中的数据。这就需要将内存中数

2021-08-22 22:51:10 122

原创 REDIS - 安装和基本命令(一)

本文首发于我的个人网站:http://riun.xyz/本文介绍了redis在linux系统下的安装和使用时的基本命令、基本配置。以下基于redis-6.2.1版本,系统为centos7 64位官方文档:http://www.redis.cn/documentation.html大纲:[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-ZNXYBs9a-1629643734286)(http://minio.riun.xyz/riun1/2021-08-17_WFGo

2021-08-22 22:49:40 176

原创 java输出集合List

List<SimpWorkVo> list = workRepository.getIndex();System.out.println(Arrays.toString(list.toArray(new SimpWorkVo[0])));[SimpWorkVo(wid=1, wtitle=锁, wintro=2020-01-13 12:46:21.0, createTime=null), SimpWorkVo(wid=2, wtitle=Integer类, wintro=2020-01-

2021-07-01 17:06:55 2464

原创 idea回退按钮显示

View–>Appearance–>Toolbar鼠标悬浮可查看快捷键:Ctrl + Alt + 向左箭头

2021-04-09 17:04:39 848

原创 java连接impala

我的个人网站:http://riun.xyz本文内容:使用java在SpringBoot框架下连接impala,并执行sql语句。版本:Java8spring-boot-starter-parent 1.5.2.RELEASE (不要问我为什么用1.5版本,我也不想用。。)依赖:<dependency> <groupId>org.springframework.boot</groupId> <artifactId>sprin

2020-09-28 18:00:15 2263 2

原创 Spring中ResponseBodyAdvice的设计错误

转载请注明作者及来源以下文章首发于我的个人网站:http://riun.xyz/work/101简介在日常web编程中我们经常需要统一返回值,Spring为我们提供了一个接口叫做ResponseBodyAdvice,我们可以使用它来统一controllre层中的返回值。本文从使用开始讲起,再到某个场景ResponseBodyAdvice设计错误的地方以下基于:jdk1.8、spring-boot-starter-parent 2.3.3.RELEASE使用这里介绍的是我的使用方法.

2020-09-11 20:04:26 1790

原创 2019版本idea设置背景图片

个人网站:http://riun.xyzFile – Settings – Appearance&Behavior – Appearance – Background Image选择图片,点击OK点击OK即可效果:

2020-07-16 11:33:46 1569

原创 C++中赋值符号的隐式转换,为什么能将普通变量赋值给不同类型的对象?

我的个人网站:http://riun.xyz问题是:在C++中定义一个类A,A a定义一个对象,然后可以通过 a = 5这样的代码进行赋值。搞不明白为什么,于是做了几个实验去窥探其中的原理。一、实验【实验1】#include<iostream>using namespace std;class A{public: int val; int t; A(int n = 0) { cout << "构造函数int n" << endl; va

2020-06-29 16:41:23 400

原创 对于赋值操作符=与值/引用类型的理解,赋值操作符,值类型与引用类型

个人网站:http://riun.xyzint x = 1;User u = new User();如果突然让我看这两句代码,并让我解释,我一定会说”定义一个int类型的变量x,把1赋给x;定义一个User类型的变量u,然后在堆区开辟(申请,创建)一块内存空间存放User(),接着将内存空间的地址值赋给u“。但是仔细想想,同样是赋值符号 =,为什么一个是赋值(内存空间中存的值),一个是赋地址值(内存空间的地址)呢?原来我忽略了一个地方,new是一个”函数“,它创建内存空间,并返回所创建内存空

2020-06-24 11:28:13 221

原创 ajax进行post请求提交表单后刷新页面会带上参数信息

我的个人网站:http://riun.xyz场景:页面form表单不做提交,在提交按钮input里添加点击事件,调用js方法,js方法里面使用ajax进行post提交,提交后处理结果,正常的话就刷新页面,刷新页面时页面地址栏会带上参数信息。解决:将提交按钮的input的type='submit’改为type=‘button’...

2020-06-19 14:35:14 1273 1

原创 poi读取Excel文件,读取csv文件,我的开源工具类

我的个人网站:http://riun.xyza前言程序中经常使用代码读取Excel或Csv文件,每次都要写繁琐的读取代码,于是我就写了一个工具类去读取文件,并将结果储存为常用的格式。方便我们快速的拿到结果进行入库或其他处理。不再将精力浪费在处理文件上。下面我将全面介绍此工具类。预备知识csv文件,一种文本文件格式,以行为单位储存数据。每行中的数据以逗号分隔,可以以excel方式打开。poi,一种java读取excel文件的工具。可以对行,或特定的单元格进行读取。使用案例:读取Excel文

2020-06-18 23:10:12 5915

原创 JAVA中String的split方法

我的个人网站:http://riun.xyz以下源码版本:JDK1.8简介Java 中 String 的 split 方法可以将字符串根据指定的间隔进行切割,例如字符串 str = “1,23,4,5” 经过 str.split(",") 切割后得到的返回值是一个字符串数组 String[] = [1, 23, 4, , 5],这种处理方式可以适配大多数场景。问题今天写一个读取csv文件的时候,发现一个小问题。【csv,一种文本文件格式,每行中的数据以逗号分隔,在windows平台可以使用

2020-06-18 15:40:48 4163

原创 vue打包后的dist整合到SpringBoot中

我的个人网站:http://riun.xyz1、修改vuejs的config/index.js,在里面找到assetsPublicPath,改为/dist/,记住,是build:{}这里的,不是上面dev:{}的。2、执行npm run build,会出现一个dist文件夹在vuejs项目目录里。3、把这个dist文件夹copy到springboot的resources/static/,是整个dist连文件夹一起copy过来。如下图4、SpringBoot项目只需要parent依赖和web依赖

2020-06-17 21:52:53 9468 6

原创 ECS云服务器重启SpringBoot服务脚本

我的个人网站:http://riun.xyz将SpringBoot项目部署到云服务器上后 ,如果每次都人工ps -ef | grep java 去停掉端口,再开启服务,查日志,太麻烦了,可以写一个shell脚本去执行。vim start.sh#!/bin/bashecho 'Start App...'nohup java -jar -server -Xmx1024m -Xms512m /root/myblog.jar --server.port=80 --spring.profiles.act

2020-06-16 14:17:53 194

原创 docker rmi删除不掉镜像的解决方法

我的个人网站:http://riun.xyzdocker删除不了镜像:docker rmi 45c94aceead5Error response from daemon: conflict: unable to delete 45c94aceead5 (must be forced) - image is being used by stopped container 55881c13e4e4说明docker容器正在启动,不能删除,所以要先停掉容器,而停掉容器不是简单的stop或者kill,要

2020-06-16 13:57:53 4078

原创 node和npm介绍 安装及配置

我的个人网站:http://riun.xyz1、简介Node.js 就是运行在服务端的 JavaScript。Node.js 是一个基于 Chrome V8 引擎的 JavaScript 运行环境。npm的作用就是对Node.js依赖的包进行管理,也可以理解为用来安装/卸载Node.js需要装的东西2、安装node安装链接自行百度。安装后在cmd窗口输入 node -v 和 npm -v 能分别看到版本号。3、配置3.1、配置镜像仓库安装完后我们先设置一下下载镜像,这一步骤的目的是方便下

2020-06-13 18:06:02 415

原创 vscode中使用docker容器开发更改数据库链接后还是使用老的数据库连接

我的个人网站:http://riun.xyzvscode中使用docker容器开发的问题工具:vscode安装插件:remote container语言:python使用vscode进行容器化开发时,一些配置信息通常放在项目根目录的.env文件中,在代码中使用DB_URL = sha_decode(os.environ.get('HX_DATABASE'))获取相关配置并使用。下面是一个.env文件示例。REDIS_IMAGE=redis:3.2-alpinePATA_IMAGE=ip/b

2020-06-12 15:08:00 432

原创 @Deprecated注解的功能

我的个人网站:http://riun.xyz@Deprecated注解标注在一个方法上,就是说这个方法已经被弃用了,不再推荐使用,已有新的方法代替此方法。但是你即使调用这个方法,还是可以运行的,他只是不推荐你使用此方法,当你使用此方法时,回有删除线在调用的方法名上。而为什么不直接删除弃用的方法,只是给他添加一个相当于“标识弃用”的注解呢?因为不确定项目的其他地方是否使用了此方法,也不能确定后续是不是就一定不用这个方法了,所以不能直接删除。...

2020-06-04 15:51:31 355

原创 OAuth及授权码机制介绍

我的个人网站:http://riun.xyz简介OAuth2.0 是授权机制,用来授权第三方应用,获取用户数据。比如在某些博客网站下方的评论区,经常看到需要使用github登陆然后才能评论,这就使用了OAuth的授权机制。这里我们把博客网站叫做【第三方应用】,把github叫做【用户数据所有者】,把使用github登陆然后才能跳转到博客网站进行评论叫做【授权】。 用户想要在博客网站的评论区进行评论,那我首先得要知道你是谁才能让你评论吧,但是我又没有你的数据,而且我只是需要知道你是谁,显示你的信息

2020-06-03 14:22:20 400

原创 SpringBoot不同场景输出日志

我的个人网站:http://riun.xyz在本机和服务器上向控制台和文件输出不同级别的日志。版本:spring-boot-starter-parent:2.2.6.RELEASE依赖: <dependency> <groupId>org.springframework.boot</groupId> <artifactId>spring-boot-starter</artifa

2020-06-02 15:50:52 363

原创 SpringBoot中的小美好

以下内容首发于我的个人博客网站:http://riun.xyz添加favicon.ico图标在src/main/resources下的static文件夹中放入新的ico即可自动替换,只要保持文件名为【favicon.ico】。需要注意的是如果使用了WebMvcConfigurer(或者相同功能的拦截器)的话,需要加上**.ico以防止拦截器拦截ico文件的访问。registry.addInterceptor(authInterceptor()).addPathPatterns("/**")

2020-05-31 11:23:06 150

原创 话说DNS及域名&ip

以下内容首发于我的个人博客网站:http://riun.xyz本篇主要解决两个问题:1、DNS究竟是什么?2、查询一个域名的ip会经过几次DNS服务器?阅读本篇的前置知识是大致知道访问一个url会先去DNS服务器根据域名解析出ip地址,然后才能正确的访问到对应的服务器。DNS究竟是什么?DNS (Domain Name System 的缩写)域名系统服务。他们是一台台服务器(你可以将其想成电脑),作用是根据域名查询出ip地址(这个过程我们叫做DNS解析),以及控制因特网的电子邮件的发送

2020-05-29 22:37:12 275

空空如也

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

TA关注的人

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