- 博客(36)
- 收藏
- 关注
转载 SpringCache整合Redis
之前一篇文章 SpringBoot整合Redis 已经介绍了在SpringBoot中使用redisTemplate手动操作redis数据库的方法了。其实这个时候我们就已经可以拿redis来做项目了,需要缓存服务的地方就引入redisTemplate就行啦。 但是这里有个问题,缓存归根结底不是业务的核心,只是作为功能和效率上的辅助,如果我现在在某个项目中用到缓存的地方...
2019-08-28 10:47:00 289
转载 Redis慢日志
和Mysql一样,Redis也有慢日志,用于记录超过给定时间的命令。可以在redis.conf文件中看到相应的配置: 有两个配置,slowlog-log-slower-than和slowlog-max-len,我这里是改过的,默认值不是这个0和5。 slowlog-log-slower-than设置超过这个时间(微妙)的命令就会被添加到慢日志当中。 slow...
2019-08-27 21:56:00 162
转载 SpringBoot整合Redis
最近在学习redis,把redis单机数据库的基础知识看的差不多了,准备用SpringBoot整合实践一下。 最开始去看spring官网关于spring-data-redis的文档(英文不太好,结合有道看了几个重点的地方,但是上面也没有具体说到这个代码该怎么写)。 Spring Data Redis 然后百度了几篇博文,都看了一遍,大致理清网上作者们的思路。关于...
2019-08-21 16:16:00 142
转载 Redis使用RDB持久化和AOF持久化的区别 - 小白之所见
转载于:https://www.cnblogs.com/alinainai/p/11380168.html
2019-08-19 22:24:00 134
转载 小白安装使用Redis
Redis属于NoSql中的键值数据库,非常适合海量数据读写。 之前用过mongo但是没有用过redis,今天来学习安装redis。 先去官网下载redis安装包 redis官网 redis是c语言编写的,需要make编译一下,安装很简单,可以参考安装包里面的README说明文件 vi README.md 把里面最重要的几步提...
2019-08-17 18:38:00 101
转载 Mysql的Sql语句优化
在Mysql中执行Sql语句经常会遇到有的语句执行时间特别长的情况,出现了这种情况我们就需要静下心分析分析。 首先,我们需要确定系统中哪些语句执行时间比较长。这个可以使用Mysql的慢日志来跟踪。下面给出一段SQL示例: 首先准备一个数据库,这里有现成的数据: https://github.com/grezbo/cn_zipcode 数据准备好了,我们先...
2019-08-03 23:01:00 111
转载 小白使用分布式追踪系统
在一个微服务体系中,对于应用之间的通信、接口调用如何做到跟踪和监控,一直是一个比较难的问题。比如A是做商品服务开发的,而B是做订单服务开发的,B在下单的时候需要调用到商品服务的查询商品库存接口和查询商品明细接口,才能够完成下单流程。现在出现的问题就是下单很慢,要耗时20s。多么恐怖的耗时,我一个用户,真金白银买你的东西,你却半天不让我下单成功,不想卖直说好吧。 看到没有...
2019-07-16 23:25:00 94
转载 小白使用Hystrix
Hystrix是什么东西?百度一下: 没错,hystrix是豪猪的意思,作为SpringCloud微服务系统中保持服务稳定的重要组件,正如它的名字一样,它对整个系统起到了保护的作用。 在许多文章当中把hystrix描述为熔断器,便于我们结合生活来理解。想象一下,你在家使用了很多的大功率的电器,导致电路的压力很大,当达到一个临界值的时候,就会跳闸。而在一个庞大的微服务系...
2019-07-15 23:01:00 115
转载 Java泛型的协变与逆变
泛型擦除 Java的泛型本质上不是真正的泛型,而是利用了类型擦除(type erasure),比如下面的代码就会出现错误: 报的错误是:both methods have same erasure 原因是java在编译的时候会把泛型,上面的<String>和<Integer>都给擦除掉(其实并没有真正的被擦除,javap -l -p...
2019-07-09 16:36:00 103
转载 try-finally的时候try里面带return
最近学习的JVM小册中老师提了个问题: 最开始我觉得是1,结果程序跑出来是0,感到很疑惑,于是查看了下字节码: 从字节码可以看出: 0:定义变量0 1:将0存入本地变量表slot-0 2:加载slot-0到操作数栈 3:将栈顶元素存入本地变量表slot-1 4:对slot-0自增 7-8:加载slot-1到操作数栈并返回 ...
2019-07-04 17:05:00 97
转载 URLEncoder.encode编码空格变+号
今天调用rest接口的时候,使用URLEncoder编码将空格转为了+号,而rest接口方需要将空格转为%20,参照标准 之后用了不少在线的工具测试,有的将空格转为了+号,有的则是转为了%20。看了一篇博文恍然大悟: https://www.jianshu.com/p/4a7eb969235d 因为我要转的字符在URL的参数部分,会被转为+号,而原本的+号则...
2019-07-02 20:12:00 811
转载 匿名内部类和Lambda表达式是一样的吗?
先看一下匿名内部类长什么样子: 1 package com.jvm.demo.test2; 2 3 public class InnerClassTest { 4 5 public static void main(String[] args) { 6 new Thread(new Runnable() { 7 ...
2019-07-01 09:57:00 80
转载 Spring Cloud Config配置git私钥出错
重装了电脑之后,重新生成了ssh key文件id_rsa和id_rsa.pub文件。然后在配置中心的配置了私钥之后启动项目,报错如下:Reason: Property 'spring.cloud.config.server.git.privateKey' is not a valid 仔细查看后发现我的私钥是以BEGIN OPENSSH PRIVATE KEY开头,...
2019-06-27 22:40:00 227
转载 Git本地已有项目关联远程仓库
情况:本地已有项目远程有个仓库目的: 本地项目关联远程仓库首先要把本地项目变成git管理的,也就是建立一个本地仓库,可以在项目目录下面使用git init命令初始化仓库,初始化成功之后会在仓库里面看到一个.git文件.git文件里面记录仓库的历史信息,版本分支等等。然后我们在gitee上新建一个仓库tools去关联它,这里需要把本...
2019-06-25 08:00:00 987
转载 第一次使用HSDB
今天看了几篇大佬关于HSDB使用的文章,自己也依样画葫芦的用来一下,强大的一匹!!!HSDB(Hotspot Debugger),JDK自带的工具,用于查看JVM运行时的状态。HSDB位于C:\Program Files\Java\jdk1.8.0_212\lib里面,接下来启动HSDB:1 java -cp .\sa-jdi.jar sun.jvm.hotspot.HS...
2019-06-22 23:29:00 603
转载 Springboot应用使用Docker部署
首先准备好springboot应用,然后打包,我这里已经准备好了一个jar包然后上传到服务器,准备一个目录用于存放jar包和Dokerfile文件 编写Dokerfile文件 我这里写的很简单,就简单解释一下: FROM:因为跑java程序,所以要依赖到JDK ADD:将本地目录的jar包复制到容器里面 ENTRYPOINT:启动容器之后...
2019-06-03 23:08:00 239
转载 Window10家庭版启动hyper-v虚拟机组件
在安装docker的时候发现如果直接使用docker for windows,对系统的要求是window10专业版或企业版,家庭版本身没有hyper-v,不能支持虚拟化。但是后来我在搜索过程中发现,windows家庭版是可以启动hyper-v的。首先看看系统是否支持虚拟化: 看这里的 虚拟化:启用 然后看看Windows功能里面有没有hyper-v选项: ...
2019-03-25 10:56:00 192
转载 Mysql行转列的简单应用
最近在复习过程中愈发觉得,有些东西久了不用,真的会忘~——~。 将上面的表格转换为下面的表格 我拼sql拼了好久还是没弄出来,还是偶然看到我以前的笔记,才想起有行转列这样的操作(太久没有写过复杂点的sql了)1 SELECT YEAR2 ,3 max( CASE MONTH WHEN '1' THEN amount ...
2019-03-24 21:52:00 73
转载 Java子类初始化调用父类无参构造
实在是服了自己,子类初始化调用父类无参构造这种初学者都应该知道的事,我给忘了。记得当初看书的时候各种概念抄在笔记本上,再上机实践,以为一辈子都不会忘,还是给忘了。这件事说明了两个问题:1.我没有保持专注。2.不管记性好坏都必须要复习。我们知道在Java中,子类初始化的时候(不管是通过有参构造还是无参构造),如果继承有父类,都会先去调用父类的无参构造。...
2019-03-24 21:23:00 341
转载 Kafka发送到分区的message是否是负载均衡的?
首先说结论,是负载均衡的。也就是说,现在有一个producer,向一个主题下面的三个分区发送message,没有指定具体要发送给哪个partition,这种情况,如果是负载均衡的,发送的消息应该均匀分布在三个分区的日志文件中。下面开始验证:首先创建一个带三个分区的topic, my-partitioned-topic。bin\windows\kafka-topi...
2019-03-22 10:27:00 132
转载 SpringCloud使用Feign出现java.lang.ClassNotFoundException: org.springframework.cloud.client.loadbalancer....
废话不多说!!!在SpringCloud项目中配置了Feign来调用restful接口,项目启动的时候报错,报错信息如下:找不到org.springframework.cloud.client.loadbalancer.LoadBalancedRetryFactory,我在IDE中全局搜索了一下,确实找不到这个类。我用的SpringBoot版本是2.0.0.M3,Spr...
2019-03-14 22:25:00 2043
转载 JDBC Mysql 驱动连接异常
在做JDBC连接Mysql的时候遇到了三个异常: 第一个是:mysql8.0 caching_sha2_password这个异常是由于是因为在mysql8.0之前的密码规则是mysql_native_password,而mysql8.0以后使用的密码规则是caching_sha2_password,我的解决办法是重设密码并指定密码规则:ALTER USER 'roo...
2019-03-11 23:05:00 167
转载 Mysql启动失败解决方案 - 个人经验可能不适合所有场景
以前一直用的Mysql5.5,安装程序是一个exe程序,安装完了相应的服务也给我注册好了,然后直接启动连接即可。最近升级到了8.0.15,发现和以前不一样了。8.0.15下载地址安装解压之后目录如下:直接就是安装文件了,所以我们需要做的就是注册服务(我用的是Windows)。bin里面很多.exe程序,我们需要关注的就是mysqld.exe和mysql...
2019-03-11 10:37:00 105
转载 前段时间在微信公众号写的文章
我基本上是每隔两天写一篇blog,一两个周写一篇公众号文章(因为公众号的文章往往篇幅较长,质量高一些)。为了方便查阅,定期将公众号文章的整理一个列表到博客。 面试官提问:你如何理解OSI互联参考模型 面试官提问:人们常说TCP的三次握手是什么意思? 面试官提问:你如何理解做浏览器向服务器发送信息的过程 一些烂大街的面试的问题 22岁了,回顾工作的这两年...
2019-02-20 22:35:00 114
转载 Java线程wait和sleep的区别
Java中调用wait方法或者sleep方法都可以让线程进入waitint或者time-waiting状态,但是它们还是有所不同的:wait是Object中的方法,而sleep则是Thread中的方法。sleep可以在任何地方使用,而wait只可以在synchronized方法或synchronized块中使用。sleep方法只会让出当前线程持有的时间片,而wait方...
2019-02-20 22:13:00 101
转载 获取Java线程返回值的几种方式
在实际开发过程中,我们有时候会遇到主线程调用子线程,要等待子线程返回的结果来进行下一步动作的业务。那么怎么获取子线程返回的值呢,我这里总结了三种方式:主线程等待。Join方法等待。实现Callable接口。 Entity类 1 package com.basic.thread; 2 3 /** 4 * @author zhangxin...
2019-02-20 22:04:00 594
转载 二分查找的变体问题
之前一篇随笔介绍了二分查找的最最基本的实现,该实现要求待查找的数据是有序且不存在重复元素的数组。而今天我们就要介绍二分查找的变体问题,待查找数据是有序但是存在重复元素的数组,主要有以下几个问题:查找第一个等于指定值的元素的位置。查找最后一个等于指定值的元素的位置。查找第一个大于指定值的元素的位置。查找最后一个小于指定值的元素的位置。这个呢,就要比不存在重复...
2019-02-20 10:51:00 74
转载 Java线程Run和Start的区别
先上结论:run只是Thread里面的一个普通方法,start是启动线程的方法。何以见得呢?可以执行下面的代码看看run和start的区别:package com.basic.thread;/** * @author zhangxingrui * @create 2019-02-16 20:12 **/public class TestRunAndStar...
2019-02-16 20:57:00 87
转载 Two Sum - 新手上路
不是计算机相关专业毕业的,从来没用过leetcode,最近在学习数据结构和算法,用leetcode练练手。新手上路,代码如有不妥之处,尽管指出来。今天抽空做的第一个题:Two Sum(最简单的呃呃呃)题目如下: 解决思路: 现有数组nums[p-r],首先将nums从小至大排序,然后将nums[p] + nums[r]与指定值k比较,如果nums[p...
2019-02-15 22:49:00 89
转载 二分查找-最基本的实现-小白初识
二分查找特别好理解,就类似于快排和归并当中用到的分治的思想,每次取中间数与目标数相比较,然后确定是大了还是小了,区间折半。就比如:小红选中了1-100中的某个数字(这个数字是56),要小明来猜,产生如下对话:小明第一次猜测:68小红:大了小明第二次猜测:35小红:小了小明第三次猜测:58小红:大了小明第四次猜测:49小红:小了小明第五...
2019-02-15 22:28:00 83
转载 小白初识 - 基数排序(RadixSort)
基数排序算是桶排序和计数排序的衍生吧,因为基数排序里面会用到这两种其中一种。基数排序针对的待排序元素是要有高低位之分的,比如单词adobe,activiti,activiti就高于adobe,这个是根据ascll码来的。现在我们可以提出一个问题,怎样对字典里面的单词进行排序呢?比如我们现在有如下单词:"Java", "Mongodb", "Redis", "Kafk...
2019-01-30 22:21:00 169
转载 小白初识 - 计数排序(CountingSort)
计数排序,属于桶排序特殊的一种。当要排序n个数据的时候,如果所处的范围不大,我们可以取其中的最大值K,并将数据分散在K个桶里面,每个桶里面的数据都是相同的(这样省去了桶内排序的时间),然后顺序取出就好啦。当然计数排序说起来简单,写起来有些地方不好理解。比如我们现在有2,5,3,0,2,3,0,3这8个数,要对它排序,我们就可以先取到它的最大值5,然后确定范围在0-5...
2019-01-30 21:49:00 98
转载 获取一个数组里面第K大的元素
如何在O(n)内获取一个数组比如{9, 1, 2, 8, 7, 3, 6, 4, 3, 5, 0, 9, 19, 39, 25, 34, 17, 24, 23, 34, 20}里面第K大的元素呢?我们可以使用类似快排的分区方式,将第K大的元素限定在数组的左边或右边,递归求取。我的Java代码实现如下: 1 package com.structure.sort; ...
2019-01-29 23:49:00 154
转载 小白初识 - 快速排序(QuickSort)
我个人觉得快速排序和归并排序有相似之处,都是用到了分治的思想,将大问题拆分成若干个小问题。不同的地方是归并排序是先把大问题拆分好了之后再排序,而快速排序则是一边拆分,一边排序。快速排序的原理就是,针对一个数组,我们任意选取数组中的一个数,将数组中的数与它一一比较,如果小于它呢,就放左边,大于它呢,就放右边。再针对左边和右边的重复上述动作即可,所以也要用到递归。先来看看递归...
2019-01-29 22:59:00 143
转载 小白初识 - 归并排序(MergeSort)
归并排序是一种典型的用分治的思想解决问题的排序方式。它的原理就是:将一个数组从中间分成两半,对分开的两半再分成两半,直到最终分到最小的单位(即单个元素)的时候,将已经分开的数据两两合并,并且在合并的同时进行排序(先分解,再合并)。将一个大的问题分而治之,拆分成若干个小问题,这就是分治的思想。拆分不成问题,但是合并的时候稍微麻烦一些。合并的时候需要对合并的数据挨个儿排序...
2019-01-29 22:24:00 378
空空如也
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人