自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

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

原创 jdk1.8HashMap方法剖析

前言​ HashMap是工作中常用的数据结构,网上关于HashMap源码的资料很多,但一直觉得如管中窥豹,对于HashMap的认知一直停留在表面,只知道概念而不知道过程。并且自己在看源码的过程中发现,网上部分博主的文档对源码的解析也是错误的,于是决定自己解读一次源码。正文HashMap属性: //默认初始容量(注意:必须为2的幂) static final int DEFAULT_INITIAL_CAPACITY = 1 << 4; // aka 16 //最大容量

2020-12-30 17:10:14 201

原创 jdk1.8的HashMap源码阅读笔记,缓慢更新。。。

package com.demo;import java.io.IOException;import java.io.InvalidObjectException;import java.io.Serializable;import java.lang.reflect.ParameterizedType;import java.lang.reflect.Type;import java.util.*;import java.util.function.BiConsumer;import j

2020-12-15 00:39:45 226

原创 前后端请求加密(附源码)

开发背景最近公司项目的小程序出现黑客利用抓包工具解析参数并恶意调用接口的情况。虽然我们的服务器安装了HTTPS证书,但是由于小程序的局限性,无法做到客户端对服务端请求的加密。别有用心的人安装抓包工具后可以轻易抓到与我们服务器的请求和返回数据。在研究了HTTPS的原理后,在前后端数据传输前,再次将数据加密一次。设计思路端对端的加/解密过程类似于HTTPS加密,执行加解密过程如下图为什么使用混合加密?非对称加解密算法在加解密大对象的时候性能较差,而对称性加解密性能较好,所以用对称性加密算法加密真实数据

2020-08-15 15:33:52 3240

原创 记录一次阿里云Redis生产数据迁移

迁移背景:原阿里云账号下ECS服务器和云数据库快过期了,客户选择不续费,自行购买新账户,想把生产上的项目和数据全部由A阿里云账户迁移到B阿里云账户。迁移的过程是取用户访问较少的时间段挂维护页,进行停机迁移。项目的迁移比较简单,保持环境一致,将配置改为迁移完数据后的数据库地址。这里讲讲阿里云Redis迁移的过程。阿里云文档里对于Redis迁移的选择描述的很清楚:迁移方案概览一.DTS数据迁移:这是阿里云提供的最稳妥的迁移方式,能使用DTS还是使用DTS迁移。(1)用公网ip自建数据库没有选择的原

2020-08-10 11:14:06 1054

原创 docker-mysql主从同步搭建

通过docker开启镜像docker run -itd --name mysql-master -p 3339:3306 -e MYSQL_ROOT_PASSWORD=root mysqldocker run -itd --name mysql-slave -p 3340:3306 -e MYSQL_ROOT_PASSWORD=root mysql查看两个镜像的ipdocker inspect --format='{{.NetworkSettings.IPAddress}}' mysql-mast

2020-07-13 20:27:55 138

原创 Redis位图以及用户签到功能的实现

前言:最近开发的项目中需要实现一个用户累计签到的功能,看到这个需求的时候第一反应就是利用Redis位图来实现。之前在学习Redis数据结构的时候就有接触到位图,不过位图的应用场景不多,所以一直没有机会使用到。先简单介绍一下Redis的位图吧。位图的原理位图不是特殊的数据结构,它的内容其实就是普通的字符串,也就是 byte 数组。我们可以使用普通的 get/set 直接获取和设置整个位图的内...

2020-05-03 01:35:10 1269

原创 浅谈索引原理和mysql优化

在聊下文之前,先说明一下,平时工作中我只用到过mysql的innodb存储引擎。其他的存储引擎我真没有用过。。。所以讲的内容都是基于innodb存储引擎。索引是什么?在学习索引过程中,我们总会举书籍的目录这一个例子来做为索引的参考理解。基本上每一本书都会有目录,而书籍目录会占据书的篇幅,难道作者是为了凑字数来赚稿费么(突然回想起了大学毕业论文为了凑字数的各种骚操作了。。。)其实目录存在的意义是...

2020-04-23 23:19:48 359 2

原创 浅谈RedisTemplate利用pipeline进行高效率批量操作

一.为什么使用pipeline?了解redis的小伙伴都知道,redis是一个高性能的单线程的key-value数据库。它的执行过程为:(1)发送命令-〉(2)命令排队-〉(3)命令执行-〉(4)返回结果如果我们使用redis进行批量插入数据,正常情况下相当于将以上四个步骤批量执行N次。(1)和(4)称为Round Trip Time(RTT,往返时间)。在一条简单指令中,往往(1)...

2020-04-19 22:53:21 12335 1

原创 基于spring boot+Shiro搭建的前后端分离鉴权架构

一.简介为何选择Shiro?Apache Shiro是一个强大且易用的Java安全框架。开发者使用shiro可以轻松完成身份验证、授权、密码和会话管理。Shiro的主要APIAuthentication:身份认证/登录,验证用户是不是拥有相应的身份;Authorization:授权,即权限验证,验证某个已认证的用户是否拥有某个权限;即判断用户是否能做事情,常见的如:验...

2020-03-21 21:45:15 2167

空空如也

空空如也

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

TA关注的人

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