自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+

风起尘落的博客

共同学习,共同进步

  • 博客(11)
  • 资源 (3)
  • 收藏
  • 关注

转载 Redis的scan命令

熟悉Redis的人都知道,它是单线程的。因此在使用一些时间复杂度为O(N)的命令时要非常谨慎。可能一不小心就会阻塞进程,导致Redis出现卡顿。有时,我们需要针对符合条件的一部分命令进行操作,比如删除以test_开头的key。那么怎么获取到这些key呢?在Redis2.8版本之前,我们可以使用keys命令按照正则匹配得到我们需要的key。但是这个命令有两个缺点:没有limit,我们只能一次性获取所有符合条件的key,如果结果有上百万条,那么等待你的就是“无穷无尽”的字符串输出。 keys命令是遍历

2020-06-30 10:46:15 617

转载 redis内存淘汰策略

Redis作为当前最常用的开源内存数据库,性能十分高,据官方数据表示Redis读的速度是110000次/s,写的速度是81000次/s 。而且Redis支持数据持久化,众多数据结构存储,master-slave模式数据备份等多种功能。但是长期将Redis作为缓存使用,难免会遇到内存空间存储瓶颈,当Redis内存超出物理内存限制时,内存数据就会与磁盘产生频繁交换,使Redis性能急剧下降。此时如何淘汰无用数据释放空间,存储新数据就变得尤为重要了。对此,Redis在生产环境中,采用配置参数maxmemo

2020-06-30 09:29:10 149

原创 ThreadLocal分析

1.ThreadLocal的作用:ThreadLocal是一个线程内部的数据存储类,通过它可以在指定的线程中存储数据,数据存储以后,只有在指定的线程中可以获取到存储的数据,对于其他线程来说则无法取到数据。2.TheadLocal的set方法(存入数据) public void set(T value) { Thread t = Thread.currentThread(); //获取当前线程 ThreadLocalMap map = getMap(t)..

2020-06-29 19:31:07 172

原创 nginx 负载均衡,反向代理配置

1.DNS域名解析:host文件:在Windows中可以通过C:\Windows\System32\drivers\etc\hosts文件来设置。2.外网映射工具:可以让外网访问本地应用程序:常用的外网测试工具有natapp、ngrok3.nginx应用场景: 1、http服务器。Nginx是一个http服务可以独立提供http服务。可以做网页静态服...

2020-06-29 16:05:49 335

原创 git 删除本地未提交的内容

1.将未提交的内容存到堆栈区git stash2.清空堆栈区git stash clear二:其他相关命令将未提交的内容存到堆栈区并且命个名 : git stash save 名字查看堆栈区列表: git stash list把堆栈区最近的一次提交恢复(先进后出): git stash pop删除指定的列表项: git stash drop 名称(类似:stash@{0})...

2020-06-28 17:36:54 2114

原创 git 回滚到某次提交

1. 查看提交日志: git log2. 回滚到某个指定的版本:git reset --hard 版本号(commit后的字符串)

2020-06-28 17:23:13 648

转载 mybatis中的执行器

mybatis在执行期间,主要有四大核心接口对象:执行器Executor,执行器负责整个SQL执行过程的总体控制。参数处理器ParameterHandler,参数处理器负责PreparedStatement入参的具体设置。语句处理器StatementHandler,语句处理器负责和JDBC层具体交互,包括prepare语句,执行语句,以及调用ParameterHandler.parameterize()设置参数。结果集处理器ResultSetHandler,结果处理器负责将JDBC查询结果映射到j

2020-06-15 11:26:55 896

转载 volatile保证可见性和禁止指令重排序的原理

下面这段话摘自《深入理解Java虚拟机》:  “观察加入volatile关键字和没有加入volatile关键字时所生成的汇编代码发现,加入volatile关键字时,会多出一个lock前缀指令”  lock前缀指令实际上相当于一个内存屏障(也成内存栅栏),内存屏障会提供3个功能:  1)它确保指令重排序时不会把其后面的指令排到内存屏障之前的位置,也不会把前面的指令排到内存屏障的后面;即在执行到内存屏障这句指令时,在它前面的操作已经全部完成;  2)它会强制将对缓存的修改操作立即写入主存; 

2020-06-12 15:39:18 1553 1

原创 java 单例模式中双重检查锁 volatile 的作用?

作用:保证有序性,禁止指令重排序。原因: 在执行instance = new Singleton()语句时,一共是有三步操作的。1.堆中分配内存2.将创建的对象放到分配的内存中3.将instance引用指向内存地址。在这三步有可能会产生指令重排序即有两种结果可能产生:123与132。只产生两种结果的原因是存在as-if-serial语义(不管怎么重排序,单线程程序的执行结果不会改变),as-if-serial语义决定了12与13的依赖关系即23肯定在1之后执行,但是23之...

2020-06-12 14:53:40 611

原创 mybatis中将数据库表名或列名当作参数

1.操作方式: 在mybatis xml中使用 ${列名/表名} 而不是 #{列名/表名}说明:${} 只是简单的字符串替换,#{}则是预编译。2.产生问题: 问题:${}会产生sql注入问题。 解决方式: 1.如果只是select 语句 ,可以在service方法中添加@Transactional(readOnly = true) (只读事务),也可以在service方法中限制列名和表名的范围。 2.如果是in...

2020-06-12 11:16:27 2923

转载 ForkJoinPool线程池原理分析

一、引言算法领域有一种基本思想叫做“分治”,所谓“分治”就是将一个难以直接解决的大问题,分割成一些规模较小的子问题,以便各个击破,分而治之。比如:对于一个规模为N的问题,若该问题可以容易地解决,则直接解决;否则将其分解为K个规模较小的子问题,这些子问题互相独立且与原问题性质相同,递归地解这些子问题,然后将各子问题的解合并得到原问题的解,这种算法设计策略叫做分治法。许多基础算法都运用了“分治”的思想,比如二分查找、快速排序等等。基于“分治”的思想,J.U.C在JDK1.7时引入了一套Fork/

2020-06-11 19:24:41 1783

distributed.sql

rbac权限模型的表结构,包括用户表,角色表  用户角色表,权限表,角色权限表。其中用户角色表和角色权限表是两张关联表。

2020-01-20

mysql-5.7.21-linux-glinbc-64下载地址

mysql-5.7.21-linux-glinbc-64,liunx下安装

2019-09-25

基于QT的QQ聊天(实现文件传输,消息记录在数据库的保存)

实习客户端的登录,消息记录在数据库的保存,历史消息记录的查看,文件图像传输

2018-06-26

空空如也

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

TA关注的人

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