- 博客(15)
- 收藏
- 关注
原创 redis查询到已经过期数据原因
1、redis删除过期数据两种策略1、惰性删除。也称被动删除,当数据过期后,并不会马上删除。而是等到有请求访问时,对数据检查,如果数据过期,则删除数据。优点:不需要单独启动额外的扫描线程,减少了CPU资源的损耗。缺点:大量的过期数据滞留内存中,需要主动触发、检查、删除,否则会一直占用内存资源。2、定期删除。每隔一段时间,默认100ms,Redis会随机挑选一定数量的Key,检查是否过期,并将过期的数据删除。2、查询到已经过期数据原因原因一:跟 Redis 的版本有
2022-01-07 13:59:58
1050
原创 Calendar.HOUR_OF_DAY与Calendar.HOUR 使用方式
今天遇到一个问题,使用calendar 类获取某天的结束时间。每次都获取到错误时间。经过查询发现。使用错了设置命令。具体分析如下:24 小时制calendar.set(Calendar.HOUR_OF_DAY, 23);12小时制calendar.set(Calendar.HOUR,11);反思:对于api不能意淫,要了解使用方式。贸然使用毕竟会埋坑,自己小心细致一...
2019-09-17 13:35:07
1938
转载 依赖倒转原则
框架在架构设计上遵循一个重要的设计原则叫“依赖倒转原则”,依赖倒转原则是高层模块不能依赖低层模块,它们应该共同依赖一个抽象,这个抽象由高层模块定义,由低层模块实现。所谓高层模块和低层模块的划分,简单说来就是在调用链上,处于前面的是高层,后面的是低层。我们以典型的Java Web应用举例,用户请求在到达服务器以后,最先处理用户请求的是Java Web容器,比如Tomcat、Jetty这些,通过监...
2019-05-05 17:11:05
266
原创 spring cloud - consumer /producer 端使用
1.所谓消费者,有一定歧义我们可以称之为为 前端A-----------》后端服务(消费者)B-----------》后端服务(提供者)C,这里consumer其实就是一个后端的服务提供者,只是依赖于C,需要调用C的服务consumer:代码地址 https://github.com/peng228/spring-cloud-consumer.gitconsumer 解...
2019-03-03 17:24:35
559
原创 SpringCloud:eureka 注册中心配置
eureka:单节点配置的时候:eureka.client.register-with-eureka=falseeureka.client.fetch-registry=false多借点配置的时候eureka: instance: hostname: peer3 preferIpAddress: false #需要你根据配置没有配置域名选择是不是需要开...
2019-03-03 13:16:05
227
转载 控制反转(IoC)与依赖注入(DI)----转
ShareHubTo be a professional software engineer. 主页|Home 归档|Archives 关于|About 控制反转(IoC)与依赖注入(DI)By 肖汉松 发表于 2015-10-21文章目录1. 前言 2. 什么是控制反转 3. 什么是依赖注入 3.1. 什么是依赖 3.2. 依赖注入 ...
2018-11-12 18:09:33
170
转载 Rocketmq
一、基本概念 Producer,消息生产者,负责产生消息,一般由业务系统负责产生消息。 Consumer,消息消费者,负责消费消息,一般是后台系统负责异步消费。 Push Consumer,Consumer 的一种,应用通常向 Consumer 对象注册一个 Listener 接口,一旦收到消息,Consumer 对象立 刻回调 Listener 接口方法。 P...
2018-10-16 12:51:30
162
原创 python reduce()函数 以及[::]切片函数
reduce(function, iterable[, initializer])样例1:reduce(lambda x,y:x+y, [1,2,3]) lambda x,y:x+y, 函数需要两个参数,第一个为每次迭代执行的结果返回值x,第二个参数为每次传入的 迭代数值y (对应[1,2,3])) 执行后每次相加的结果返给x 相当于 1+...
2018-10-10 11:40:04
273
转载 4-多线程之间通信
http://ifeve.com/thread-signaling/#shared_object1.调用notify() 与 notifyAll() 需要对再锁上面进行调用,也就是需要在同步代码块中调用。一个线程一旦调用了任意对象的wait()方法,就会变为非运行状态,直到另一个线程调用了同一个对象的notify()方法。为了调用wait()或者notify(),线程必须先获得那个对象的锁...
2018-10-08 20:09:48
148
原创 5-线程优先级
1.线程的优先级可以继承 总结:在java 中线程优先级具有继承性,A启动B线程,B线程的优先级是和A线程一样的(理解:很好理解,若不一样A线程难道还要,执行到B线程的地方不在执行,等待优先级高的线程执行完毕再执行当前线程,这样也不合适啊) 样例:public class Thread2 extends Thread { @Override pub...
2018-10-08 20:07:06
174
原创 3-分布式锁的实现
一 、 使用redis 实现分布式锁 使用步骤 1.setnx(lockkey,1) 如果返回 0 说明失败,返回1 说明成功。 2. 使用expire() 设置超时时间,避免死锁 3.执行完代码以后使用 delete 命令删除 key 缺点: 当第一步执行成功以后,这时候如果机器宕机,这样的话 会造成死...
2018-09-13 21:26:50
166
原创 2-interrupt 与 interrupted 与 isInterrupted 介绍
interrupt //只是对线程进行一个标记 并不是真的退出 Thread.interrupted() //线程上面的静态方法 MyThreadSleep myThreadSleep = new MyThreadSleep(); myThreadSleep.start(); myThreadSleep....
2018-09-09 16:50:57
197
转载 Spring 对事物的管理
1. 编程方式的事务声明 Spring也为我们提供了模板类TransactionTemplate进行事务管理 2 .声明式的事务声明 1.基于tx和aop命名空间的xml配置文件 <tx:advice id="advice" transaction-manager="transactionManager"> ...
2018-09-06 19:57:18
184
转载 @Configuration 与 @Bean 注解的使用技巧
心得 :1. //@Configuration注解的spring容器加载方式,用AnnotationConfigApplicationContext替换ClassPathXmlApplicationContext 2.//如果要调用销毁方法必须用子类来声明,而不是ApplicationContext,因为ApplicationContext没有close() ClassPat...
2018-09-06 19:47:23
307
转载 1-JAVA线程池有关
1.为什么需要线程池线程频繁的创建销毁需要占用大在线程使用过程中的时候,线程结束后不会销毁,会将线程用来执行别的任务。 java.uitl.concurrent.ThreadPoolExecutor类是线程池中最核心的一个类,因此如果要透彻地了解Java中的线程池,必须先了解这个类。下面我们来看一下ThreadPoolExecutor类的具体实现源码。 在ThreadPoolEx...
2018-08-23 11:58:06
255
空空如也
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人