自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

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

原创 redis相关问题------缓存穿透,缓存雪崩,缓存击穿

1.简单概述简单概述和解决方案:1.缓存穿透产生的场景:每次请求redis缓存中不存在的key值,使得每次都要去查询数据库,当碰到恶意请求这些不存在的key值时,就会产生缓存穿透的现象,失去缓存的意义。解决方案1.将查询redis中不存在的数据,当查询数据库返回不存在时,将value置为空(不能解决恶意攻击)2.布隆过滤器2.缓存雪崩产生的场景:在高并发的情况下,redis中数据同时失效,使得大量并发直接访问数据库,对数据库产生压力,甚至压垮数据库解决方案:1.设置不同的失效时间,也可以

2020-06-27 19:32:12 830

原创 git配置公私秘钥-小乌龟TortoiseGit

1.大致步骤简述1.需要将公钥放到gitLab上,私钥自己保存2.使用puttygen.exe来生成秘钥对3.在gitLab上设置中配置SSH公钥(一串ssh-rsa开头的)2.标题详细步骤1.生产公私秘钥安装好git后,右键打开bash命令窗口(或者到git安装bin目录下双击打开bash.exe) 使用以下命令行1.进入到.ssh目录 cd ~/.ssh 2. 生成公钥,此过程需要输入密码,回车跳过,打印一个矩形框即成功 ssh-keygen -t rsa -C "xxx

2021-09-28 14:50:08 6619

原创 JavaWeb-实现限制单个账号多处登录

在网上有很多解决限制登录的方法,包括SpringSecurity也有解决的方案,今天记录一下使用JavaWeb的实现知识点思路如下:演示具体实现:1.维护一个map集合public class LoginUserMap { private static Map<String, String> loginUserMap = new ConcurrentHashMap<String, String>(); /** * set方法 *

2020-11-10 16:48:10 1639

原创 冒泡排序&快速排序(代码)

public class SortTest {// public static void main(String[] args) {// //冒泡排序 从小到大// int[] arr = {8, 5, 6, 7, 2, 9, 0, 1, 3, 9, 8, 5, 6, 7, 2, 9, 0, 1, 3, 9, 5};// int[] ints = SortTest.sortMethod(arr);// for (int anInt :

2020-08-06 22:57:16 1071

原创 Jwt令牌总结

1.Jwt令牌介绍2.基于私钥生成jwt令牌3.基于公钥解析jwt令牌4.应用场景1.Jwt令牌介绍Jwt令牌主要由三部分组成头部,负载,签名,每个部分用点隔开头部主要包含令牌类型和使用的加密算法载荷主要存放信息,可以解码还原签名:签名=头部+载荷+签名头部和载荷都采用Base64Url编码和签名进行(用**.**进行)拼接生成签名2.基于私钥生成Jwt令牌准备私钥,公钥放入resource文件下,基于私钥携带数据生成jwt令牌public class Create

2020-07-28 20:21:24 551

原创 nginx的限流和网关gatway限流

1.场景描述例如网站首页采取二级缓存操作,减少对数据库和redis的压力,但是遇到恶意请求还是不能有效的缓解压力,限流就能起到保护措施的作用了2.nginx限流nginx提供了两种限流方案:控制请求速率控制并发连接数3.控制速率nginx常用控制速率的方式之一就是采用漏桶算法3.1漏桶算法实现控制速率限流概述: 漏桶算法思想就是水(请求)滴入漏桶漏桶里,漏桶以一定速率出水(响应速率),当水滴入的速率过大时会溢出漏桶(访问速率大于响应速率),然后就拒绝请求,漏桶算法能强转限制数据的传输速

2020-07-22 13:43:15 1539

原创 nginx+lua+redis实现缓存总结

环境配置1.在linux上安装nginx,lua,redis,本案例指定nginx的配置文件根目录为root 权限为root目的就是将来要使用lua脚本的时候 直接可以加载在root下的lua脚本。(lua脚本存放在root下)修改/openresty/nginx/conf/nginx.conf,#user nobody; 配置文件第一行原来为这样, 现改为下面的配置 user root root;1.分析步骤步骤一:缓存lua脚本实现缓存预热(将mysql里的数据查询出来存入redis)

2020-07-21 23:10:47 1696

原创 关于nginx服务器的应用

前言想总结一篇关于nginx的简单认识提到nginx必须提到他的三大功能1.负载均衡nginx作为负载均衡器使用可以接受所有请求,按照配置的负载均衡策略,并将请求分发给tomcat集群服务器2.反向代理nginx可以作为反向代理服务器使用,可以根据访问的url解析,判断请求发给哪个具体的请求服务器3.静态资源服务器当nginx作为静态资源服务器,静态资源放在nginx的/nginx/html文件夹下,相比使用tomcat,nginx作为静态服务器效率更高—未完待续...

2020-07-21 16:50:59 147

原创 lua的语法和简单使用

1.lua的简介Lua是一种轻量型的脚本语言,用标准的C语言编写,目的就是以灵活的方式嵌入应用程序中,从而为应用程序提供灵活的拓展和定制功能。具有的特性:支持面向过程编程和函数式编程语言内置匹配,闭包-常应用于游戏开发,web应用脚本基本语法1.注释--单行注释--[[ 多行注释 --]] 2.关键字基本和java一样,值得一提的是nil关键字 表示无效值nil --无效值3.变量--全局变量: a=1 --局部变量: local a=14.数据

2020-07-21 16:30:04 226

原创 Redis相关问题--主从复制

1.主从复制1.这是一个典型的读写分离的模式,redis支持主从复制的模式。该模式下主要分为两点:主节点和从节点,一个主节点和多种从节点构成。如图原则:主节点(Master)会同步子节点(slave),而字节点不会同步到主节点,子节点启动时会连接主节点同步数据我们可以通过主节点处理写操作,子节点提供读操作,这样就有效的减少了单个及其的并发访问数量实现方法:要实现主从复制这种模式非常简单,主节点不用做任何修改,直接启动服务即可。从节点需要修改redis.conf配置文件,加入配置:slaveof

2020-06-27 21:12:38 161

原创 设计模式-工厂模式

工厂模式的三种形式1.简单工厂2.工厂方法3.抽象工厂1.简单工厂(静态工厂)什么是工厂?集中生产,对外提供生产产品的地方简单工厂只需要向工厂传递进来一个类型,就返回一个对象总结:1.把创建跟使用分离   对应客户端来说只是想要使用对象调用方法,不关心对象如何创建2.便于统一管理方便维护3.解耦   创建对象有变动,不会影响对象使用的逻辑4.获取对象的方式可以更加形象、具体通过getxxx实例能直观的展示我们要获取的

2020-06-26 22:12:51 95

原创 设计模式-单例模式(5种创建方式)

1.概述:所谓单例,就是整个程序有且仅有一个实例.该类负责创建自己的对象,同时确保只有一个对象被创建,常用于工具类的实现和创建对象需要消耗资源特点:构造器私有持有自己的属性对外提供获取实例的静态方法2.创建单例的5种方式饿汉模式懒汉模式静态内部类枚举1.饿汉模式:当程序启动或类被加载的时候,实例就就被创建。public class SingleBean{ //构造私有 private SingleBean(){} private static SingleBean sin

2020-06-23 13:01:48 346

原创 浅谈枚举认识及原理(Enum)

**前言:**最近学习到Java枚举,在网上搜索了一圈发现都有很多种理解,在这里借鉴他人对枚举的介绍再总结自己的 一些浅见1.枚举介绍首先,枚举是 jdk1.5引入的新特性,枚举是一种规范,它规范了参数的形式.说白了就是,枚举可以定义的一些常量和实例,规范参数的形式,好比定义一个常量类(规范参数的取值范围)举个例子:定义一个季节枚举,里面定义春夏秋冬的常量,当使用季节类型作为参数时,若使用该季节枚举作为参数,就限制了用户的参数输入,只能是春夏秋冬。更通俗的理解就是:你想要的类型和常量,我都给你限定

2020-06-16 21:10:33 1308

原创 hashCode(),equal(),==的理解

1.hashCode()和equal()区别:1.equal()相等的两个对象他们的hashCode()肯定相等,也就是用equal()对比是绝对可靠的。2.hashCode()相等的两个对象他们的equal()不一定相等,也就是hashCode()不是绝对可靠的。3.效率比较因为重写的equal()里一般比较的比较全面比较复杂,这样效率就比较低,而利用hashCode()进行对比,则只要生成一个hash值进行比较就可以了,效率很高,那么hashCode()既然效率这么高为什么还要equal()

2020-06-15 15:03:26 218

原创 报错: HTTP Status 500 java.lang.NoClassDefFoundError: org/springframework/jdbc/core/RowMapper_

#HTTP Status 500 java.lang.NoClassDefFoundError: org/springframework/jdbc/core/RowMapper_

2020-03-16 21:06:54 338

空空如也

空空如也

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

TA关注的人

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