自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

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

原创 根据freemark模板生成静态html字符串

pom <dependency> <groupId>org.springframework.boot</groupId> <artifactId>spring-boot-starter-freemarker</artifactId> </dependency>生成方法 private String generateHtml(String temp

2021-05-28 09:54:05 209

原创 Springboot集成fastDFS

pom <dependency> <groupId>net.oschina.zcx7878</groupId> <artifactId>fastdfs-client-java</artifactId> </dependency>配置文件xuecheng: fastdfs: connect_timeout_in_seconds: 5

2021-05-28 09:48:15 215

原创 FastDfd安装

tracker 安装1、要安装 gccyum install gcc-c++2、安装 libeventyum -y install libevent3、安装 libeventyum -y install libevent4、安装 libfastcommonlibfastcommon 是 FastDFS 官方提供的,libfastcommon 包含了 FastDFS 运行所需要的一些基础库。将 libfastcommonV1.0.7.tar.gz 拷贝至/usr/local/下cd

2021-05-24 22:37:13 195 1

原创 redis分布式锁

加锁 /** * * @param conn * @param lockName 所名称 * @param acquireTimeout 重试时间 * @param lockTimeout 过期时间 * @return */public String acquireLockWithTimeout( Jedis conn, String lockName, long acquireTimeout, long lockTimeout) {

2020-11-17 21:39:23 264

原创 redis集群实现文章点赞投票

import com.alibaba.fastjson.JSON;import org.springframework.beans.factory.annotation.Autowired;import org.springframework.web.bind.annotation.RequestMapping;import org.springframework.web.bind.annotation.RestController;import redis.clients.jedis.JedisC

2020-11-04 22:22:35 208

原创 No way to dispatch this command to Redis Cluster because keys have different slots.

解决办法 :所有的集合和有序集合key都加一个前缀,是的所有的数据都在一个redis集群的终端。 private static final String prefix = "luffi:lbl"; private static final String KEY_SPLIT = ":"; //用于隔开缓存前缀与缓存键值 //将文章放入时间排列表中 jedisCluster.zadd("{" + prefix + KEY_SPLIT + "}" + "time", Double

2020-11-04 21:16:26 8126 3

原创 redis使用docker搭建集群以及扩容和收容

搭建集群创建redis‐cluster.tmpl配置Redis信息【端口、是否开启集群等】创建 redis-cluster.tmpl 配置Redis信息#端口 port ${PORT} #非保护模式 protected-mode no #启用集群模式 cluster-enabled yes cluster-config-file nodes.conf #超时时间 cluster-node-timeout 5000 #主机ipcluster-announce-ip 192.168.8

2020-10-12 23:27:50 370 1

原创 redis6x单机安装和集群安装踩的坑

单机安装的时候make出现错误1、升级gccyum -y install gcc gcc‐c++ libstdc++‐develyum ‐y install centos‐release‐scl devtoolset‐7 yum ‐y install devtoolset‐9‐gcc devtoolset‐9‐gcc‐c++ devtoolset‐9‐binutils2、切换gcc7scl enable devtoolset‐7 bash安装redis make报错 zmalloc.h:5

2020-10-12 21:52:29 105

原创 敏感词处理算法

public class Minganci { static Map mgcMap = new HashMap<>(); public static void add(String mgcs) { //{"广":{"isEnd":"0,"告":{"isEnd":"1","词":{"isEnd":"1"}}},"告":{"isEnd":"0,"诉":{"isEnd":"1"}}} //广告,广告词,告诉,哈哈 String[]

2020-09-27 17:33:25 637

原创 负载均衡最小连接数

/** * * 1 * 2 3 * 4 5 6 7 *永远去第一个进行访问 访问过后将访问次数+1,然后从新排序 * 排序方式: * 永远之和当前节点的两个子节点进行比较, * 如果访问次数大于左边、小于右边,就和左边的交换位置 * 如果访问次数大于左边也大于右边,那么就和右边交换位置, *

2020-09-24 17:16:41 633

原创 RabbitMq过期时间注意事项

RabbitMq过期时间设置有两种方式,为整个队列设置过期时间和为每个消息设置过期时间为队列设置过期时间Map<String, Object> args = new HashMap<String, Object>();args.put("x-message-ttl", 60000);channel.queueDeclare("myqueue", false, false, false, args);为每个消息设置过期时间byte[] messageBodyBytes =

2020-09-09 18:08:46 478

原创 饥饿线程

定义如果一个线程因为CPU被其他线程全部占有而始终抢不到CPU的运行时间,那么这个线程就是饥饿线程。实例由于线程t1的优先级为9,线程t2的优先级为1(最低),造成t2很难抢到CPU的运行时间。import java.util.concurrent.TimeUnit;import java.util.concurrent.locks.ReentrantReadWriteLock;public class HungryThread{ ReentrantReadWriteLock rea

2020-09-08 20:42:55 271

原创 ThreadLocal原理

概念ThreadLocal并不是用来解决多线程下的共享变量问题,而是提供县城内的线程访问。在多线程环境下,可以保证各个线程之间的变量相互隔离。使用public class ThreadLocalDemo implements Runnable{ private static ThreadLocal<Integer> threadLocal = new ThreadLocal<>(); public void run(){ for (int i =

2020-09-08 09:41:55 129

原创 线程池状态及原理

线程池状态RUNNING:初始化状态是RUNNING.。线程池一单被创建,就处于RUNNING状态,并且线程池中的任务书为0。RUNNING状态下,能接受新的任务,以及对已经添加的任务进行处理。SHUTDOWN:SHUTDOWN状态时,不接受新的任务,但能处理已经添加的任务。代用线程池的shutdown()接口时,线程池有RUNNING->SHUTDOWN。STOP:不接受新任务,不处理已经添加的任务,并且中断正在处理的任务。调用线程池的shutdownNow()接口时,线程池有(RUNNIN

2020-09-07 11:37:05 340

原创 线程状态图

2020-09-07 10:02:07 126

原创 redis 计数器

在监控应用程序的同时,持续地收集信息是一件非常重要的事情。那些影响网站响应速度以及网站所能服务的页面数量的代码改动、新的广告营销活动或者是刚刚接触系统的新用户,都有可能会彻底地改变网站载入页面的数量,并因此而影响网站的各项性能指标。但如果我们平时不记录任何指标数据的话,我们就不可能知道指标发生了变化,也就不可能知道网站的性能是在提高还是在下降。为了收集指标数据并进行监视和分析,我们将构建一个能够持续创建并维护计数器的工具,这个工具创建的每个计数器都有自己的名字(名字里带有网站点击量、销量或者数据库查询字

2020-09-04 16:21:43 3071

原创 AQS(AbstractQuenedSynchronizer)原理及应用

原理AQS使用一个int类型的成员变量state来表示同步状态,当state>0时表示已经获取了锁,当state=0时表示释放了锁,它提供了三个方法(getState()、setState(int newState)、compareAndSetState(int expect,int update))来对同步状态state进行操作AQS通过内置的FIFO同步队列来完成资源获取路线的派对工作,如果当前线程获取同步状态失败时,AQS则会将当前线程信息及等待状态等信息构造成一个节点(Node)并将其

2020-08-21 11:32:17 229

原创 JDK8接口的默认方法和静态方法

众所周知,在接口中定义的普通方法都是抽象方法,方法前面默认都hu会添加public abstract,不能有方法的实现,需要在接口的实现类中对方法进行具体实现。定义接口public interface MyInterface{ String abstractMethod();}接口的实现类public class MyInterfaceImpl implements MyInterface{ public String abstractMethod(){ return "execute

2020-08-07 21:25:13 410

转载 用P3P header解决iframe跨域访问cookie

浏览器的第三方 cookie 限制所谓第三方 cookie,就是说你访问网页 A,却接收到域名 B 的 cookie 设定指令。这可能是由于网页 A 请求或链接了 B 的网页,比如上面提到的 iframe 以及 jsonp。我查到了各个浏览器对于跨域的处理规则,可以看到第三方 cookie ,IE 在默认设置中是做了限制的。不同浏览器的第三方cookie规则IEFireFoxChromeSafariOpera限制第三方coookie是否否否否用户访问的流程

2020-07-22 09:55:30 554

原创 代理模式实现根据文件类型上传到不同的文件服务器

环境springboot2.1.15阿里oos服务器fastdfs服务器文件服务应用小文件 如图片上传到fastdfs上,大文件如视频上传到阿里云oos服务器上分布式文件代理服务器实现实现分析1、FileUpload抽象接口定义了上传方法,分别给他写了两种实现2、AliyunOOSFileUpload主要上传视频文件3、FastDfsFileUpload主要上传图片文件4、FileUploadProxy是 代理对象,主要供用户访问,调用了FileUpload的upload方法,为客

2020-07-19 16:41:55 466

原创 使用zookeeper实现自增主键

导入依赖<properties> <curator.version>4.2.0</curator.version> </properties> <!-- curator ZK 客户端 --> <dependency> <groupId>org.apache.curator</groupId> <artifactId>curator-framework</arti

2020-07-15 21:50:02 1612

转载 查询oracle各个表所占空间大小

select t.segment_name, t.segment_type, sum(t.bytes / 1024 / 1024) AS MBfrom dba_segments twhere t.segment_type=‘TABLE’ and (t.segment_name like ‘%yyy%’ or t.segment_name like ‘%xxx%’)group by OWNER,t.segment_name, t.segment_type order by MB DESC快速清空表数据

2020-06-03 13:47:53 366

转载 Oracle表删除大量数据后查询变慢问题

Oracle 表删除大量数据后,即使表中只有几行记录,但用select count(*) from table 来查询发觉都不会马上出来,原因是该表的空间大了,查询起来很慢。解决的方法是把该表所占用的表空间缩小,或者说释放表空间。alter table XXXX move; 这样处理后就释放了表空间了。但是释放表空间后,表的行号rowid会发生变化,而基于rowid的索引则会变成无效。因此该操作后必须重建索引。否则会 提示“ORA-01502: 索引’SMP.ITEMLOG_MID_IDX’或这类索引的分

2020-06-03 13:46:12 531

转载 oracle表空间不足

Oracle表空间数据文件大小的限制由于Oracle的Rowid使用22位来代表数据块号,因此Oracle表空间数据文件每个数据文件最多只能包含2^22个数据块。也因此数据库表空间的数据文件不是无限增长的,例如:在数据块为8k的情况下,单个数据文件的最大容量为8K*2^22 = 32G同理,数据块为2K,数据文件最大约8G数据块为32,数据文件最大约16*8G故若达到这个最大容量之后,则即便是设置了自增长,也不是无限自增长,此时则需要为这个表空间添加数据文件当表空间不足时(1)设置文件的自

2020-06-03 13:44:22 304

原创 springboot配置druid监控

1、pom <dependency> <groupId>org.springframework.boot</groupId> <artifactId>spring-boot-starter-jdbc</artifactId> </dependency> <dependency> <groupId>org.s

2020-05-20 21:06:32 206

原创 springboot使用外置servlet容器原理

使用外置servlet容器1)、必须创建一个war项目;(利用idea创建好目录结构)2)、将嵌入式的Tomcat指定为provided;<dependency> <groupId>org.springframework.boot</groupId> <artifactId>spring-boot-starter-tomcat</artifactId> <scope>provided</scope>

2020-05-18 15:27:30 184

原创 springboot错误处理原理

配置错误处理路径@ConfigurationProperties( prefix = "server", ignoreUnknownFields = true)public class ServerProperties implements EmbeddedServletContainerCustomizer, EnvironmentAware, Ordered { //错误配置参数 @NestedConfigurationProperty private Error

2020-05-17 17:19:01 444

原创 springboot改变表单提交的方式

使用场景如果新增用post提交表单,修改用put提交表单,而且还想共用同一个页面,就可以使用这种方式html页面<form th:action="@{/user/emp}" method="post"><input type="hidden" name="_method" value="put" th:if="${bean != null}">如果bean存在,说明是修改,input就会起作用,如果是新增页面bean不是null这个input不会被编译。原理sprin

2020-05-16 19:58:26 930

转载 oracle导出表的办法

1.先进行表分析(一定要执行此步,否则查询空表可能不准确)select 'analyze table '||table_name||' compute statistics;' from user_tables;2.再查询哪些表是空的(此步可以省略,直接进行第三步)select table_name from user_tables where NUM_ROWS=0 order by ...

2019-12-04 14:58:58 550

原创 SchedulingConfigurer动态定时

@Configuration@EnableSchedulingpublic class CompleteScheduleConfig implements SchedulingConfigurer { @Mapper interface CornMapper{ @Select("select cron from cron limit 1") ...

2019-11-05 20:10:02 1348 2

原创 JPA API

EntityManagerFactory作用:EntityManagerFactory接口主要用来创建EntityManager实例 方法: createEntityManager():用于创建实体管理器对象实例 createEntityManager(Map map):重载方法,Map参数用于提供EntityManager的属性 isOpen():检查EntityManage...

2019-11-04 09:35:44 166

原创 springboot使用https访问

生成本地证书进入本地jdk安装路径下的bin文件夹找到keytool.exe 在此目录进入cmd输入命令 keytool -genkey -alias tomcat -keyalg RSA -keystore ./server.keystore 按照提示进行操作 输入密钥库口令:123456再次输入新口令:123456您的名字与姓氏是什么? [Unknown...

2019-11-04 09:34:45 322

原创 JPA关联关系

多对一/一对一一般有多的一方来维护关联关系, //映射单向 n-1 的关联关系//使用 @ManyToOne 来映射多对一的关联关系//使用 @JoinColumn 来映射外键.//可使用 @ManyToOne 的 fetch 属性来修改默认的关联属性的加载策略@JoinColumn(name="1的一方的id")@ManyToOne(fetch=FetchType.LAZ...

2019-11-02 12:26:33 209

原创 JPA注解

@Entity@Entity标注的java类为实体类,将映射到指定的数据库中@Table当实体类于映射的数据库表不同名时需要使用@Table标注来说明,常用属性是nama,值为改实体类所对应的的数据库表名@Id@Id标注的属性为数据库的主键列,也可标注在该属性的getter方法之前@GeneratedValue@GeneratedValue用于标注主键的生成策略,通过s...

2019-11-01 19:16:41 157

原创 插入排序

/** * 插入排序法 * 原理 打扑克牌 起牌的时候新上来一张牌,和之前的相比,找到合适的 位置放入 */public class Version { public static void main(String[] args) { for (int k = 0; k < 1000; k++) { int[] arr = Px...

2019-09-21 15:50:50 128

原创 冒泡排序法

import java.util.Arrays;/** * 冒泡排序 */public class Version1 { public static void main(String[] args) { for (int k = 0; k < 1000; k++) { int[] arr = PxUtils.newArr(10);...

2019-09-21 14:04:06 135

原创 选择排序之每次挑出最大值和最小值

public class Version2 { public static void main(String[] args) { //准备数据 int[] arr = newArr(15); int[] arr1 = Arrays.copyOf(arr, arr.length); System.out.println("原素...

2019-09-19 20:55:05 1521

原创 线程池中线程和队列

线程池中的队列分两种,有界队列和无界队列,当使用有界队列的时候,新加入一个任务会先判断核心线程是否有空闲的,如果有,就直接使用线程执行,如果没有,会看看有界队列是否已满,如果未满,则将任务加入有界队列中,等核心线程有空闲的时候再去从队列中获取执行,如果有界队列已满,这个时候就会看看正在运行的线程数是否大于最大线程数,如果不大于,则创建新的线程执行这个任务,如果大于,则执行拒绝策略。当使用无...

2019-09-10 13:56:40 615

原创 redis事务执行

事务提供了一种将多个命令打包,一次性按顺序执行的机制,并且事务在执行期间不会主动中断(服务段在执行完事务中的所有命令之后才会执行其他客户端的其他命令),redis通过MUTIL、DISCARD、EXEC和WATCH四个命令实现事务操作。事务执行:开启事务multi,这个命令唯一做的是将客户端的REDIS_MUTIL选项打开,让客户端从非事务状态进入事务状态写入命令当客户端进入事...

2019-08-11 16:38:20 337

原创 redis的批量操作Pipline

Pipline大量提高了批量写入redis的效率直接上代码使用spring测试配置类 @Bean public JedisPoolConfig JedisPoolConfig() { JedisPoolConfig config = new JedisPoolConfig(); config.setMaxTotal(1000); ...

2019-08-10 19:16:57 185

Python数据科学手册(高清版).pdf

这个是下载好mobi格式然后转成pdf格式的,发出来供大家参考。

2018-08-17

空空如也

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

TA关注的人

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