- 博客(29)
- 收藏
- 关注
原创 初识布隆过滤器
原文自:大白话布隆过滤器布隆过滤器的应用我们先来看下布隆过滤器的应用场景,让大家知道神奇的布隆过滤器到底能做什么。缓存穿透我们经常会把一部分数据放在Redis等缓存,比如产品详情。这样有查询请求进来,我们可以根据产品Id直接去缓存中取数据,而不用读取数据库,这是提升性能最简单,最普遍,也是最有效的做法。一般的查询请求流程是这样的:先查缓存,有缓存的话直接返回,如果缓存中没有,再去数据库查询...
2019-09-23 17:16:45
150
原创 SpringBoot单文件和多文件上传简单应用
springBoot单文件上传和多文件上传1. 开发工具版本介绍springBoot版本:1.5JDK版本:1.8tomcat版本:7.02. pom配置<parent> <groupId>org.springframework.boot</groupId> <artifactId>spring-boot-starte...
2019-07-25 14:50:08
267
原创 Linux下RabbitMq安装教程
RabbitMQ教程1. 创建rabbitmq的安装目录cd /usr/local/mkdir rabbitmqcd rabbitmq2. Erlang:一种通用的面向并发的编程语言下载erlang:wget http://packages.erlang-solutions.com/erlang-solutions-1.0-1.noarch.rpmrpm-Erlang包:rp...
2019-07-11 20:24:42
293
原创 mysql存储过程循环、事务以及异常处理示例
1. 简单的循环、事务、异常处理示例-- 创建测试表create TABLE test_table( id int(11), vpoints int(11), PRIMARY KEY (id)) ENGINE=INNODB DEFAULT CHARSET=utf8;-- 删除存储过程DROP PROCEDURE IF EXISTS testProcedure;-- 创建存储过...
2019-07-03 14:18:48
1403
转载 TCP的三次握手和四次挥手详解
报文格式图: 序列号seq:占4个字节,用来标记数据段的顺序,TCP把连接中发送的所有数据字节都编上一个序号,第一个字节的编号由本地随机产生;给字节编上序号后,就给每一个报文段指派一个序号;序列号seq就是这个报文段中的第一个字节的数据编号。 确认号ack:占4个字节,期待收到对方下一个报文段的第...
2019-06-19 18:46:35
161
原创 Java单例模式及线程安全问题
单例的目的是为了保证运行时Singleton类只有唯一的一个实例,用于一些较大开销的操作。饿汉方式(线程安全) /** 饿汉方式(线程安全) **/ private Singleton(){} private static final Singleton singleton = new Singleton(); public Singleton getSingleton(){ r...
2019-06-18 11:06:59
246
原创 Kafka核心技术与实战(持续更新中)
01 | 消息引擎系统ABCApache Kafka 是一款开源的消息引擎系统。kafka主要作用是“削峰填谷”,所谓的"削峰填谷"就是指缓冲上下游瞬时突发流量,使其更平滑。特别是对于那种发送能力很强的上游系统,如果没有消息引擎的保护,“脆弱”的下游系统可能会直接被压垮导致全链路服务“雪崩”。但是,一旦有了消息引擎,它能够有效地对抗上游的流量冲击,真正做到将上游的“峰”填满到“谷”中,避免了流...
2019-06-10 16:39:48
2696
原创 Mysql基本操作:DDL、DML、DCL和DQL
DDL数据定义语言 Data Definition Language(定义语言的操作):1,修改表名:alter table 表名 rename 新表名;2,添加表内字段:alter table 表名 add( 列名 列类型);3,删除表内字段:alter table 表名 drop 列名;4, 修改列类型:alter table 表名 modify 列名 列类型;5, 修改列名与列...
2019-05-20 13:52:18
579
原创 MySQL的B+Tree索引
本文摘自:https://blog.csdn.net/hguisu/article/details/7786014 在 MySQL 中,主要有四种类型的索引,分别为: B-Tree 索引, Hash 索引, Fulltext 索引和 R-Tree 索引。我们主要分析B-Tree 索引。 &nbs...
2019-05-16 17:38:37
201
转载 B+树(B+Tree)
本文借鉴:https://blog.csdn.net/hguisu/article/details/7786014 B+树是顺应文件系统的需求而产生的一种B-树的变形树。一棵m 阶的B+树和m 阶的B-树的差异在于:(1)有n 棵子树的节点中含有n 个关键码;(注:B+树...
2019-05-16 17:27:11
219
转载 B-树(B树)(B-tree)
一,B-树就是B树英文名字叫做B-tree,中间的短线是英文连接符,只是翻译的时候将短线翻译成了减号。全称Balance-tree(平衡多路查找树),平衡的意思是左边和右边分布均匀。多路的意思是相对于二叉树而言的,二叉树就是二路查找树,查找...
2019-05-16 15:52:24
779
原创 MySQL实战(持续更新中)
前言本日志的产生主要来源于极客时间平台的《MySQL实战45讲》,作者是林晓斌老师,以下内容主要摘自原文、大牛的评论以及自己的想法及认知,尤其看评论区大牛们的讲解以及建议都是满满的干货,再以下的文章中就不一一艾特指明了,深深的感谢大牛们,同时也感谢极客时间平台和林晓斌老师给我们这个学习的机会。如需转载,请注明作者出处作者:hanshimeng出处:https://blog.csdn.net...
2019-05-08 09:27:40
3910
原创 MySQL缓存查询和清除命令使用
Mysql 查询缓存查询缓存的作用就是当查询接收到一个和之前同样的查询,服务器将会从查询缓存种检索结果,而不是再次分析和执行上次的查询。这样就大大提高了性能,节省时间。配置查询缓存修改配置文件,修改[mysqld]下的query_cache_size和query_cache_type(如果没有则添加)。其中query_cache_size表示缓存的大小,而query_cache_type...
2019-04-25 11:31:46
2173
原创 java运算符 与(&)、非(~)、或(|)、异或(^)
1.十进制转二进制原理:给定的数循环除以2,直到商为0或者1为止。将每一步除的结果的余数记录下来,然后反过来就得到相应的二进制了。比如8转二进制,第一次除以2等于4(余数0),第二次除以2等于2(余数0),第三次除以2等于1(余数0),最后余数1,得到的余数依次是0 0 0 1 ,反过来就是1000,计算机内部表示数的字节长度是固定的,比如8位,16位,32位。所以在高位补齐,java中字节...
2019-04-24 14:53:32
125
原创 Redis分布式锁的实现
Redis分布式锁的正确实现方式 前言分布式锁一般有三种实现方式:1. 数据库乐观锁;2. 基于Redis的分布式锁;3. 基于ZooKeeper的分布式锁。本篇博客将介绍第二种方式,基于Redis实现分布式锁。虽然网上已经有各种介绍Redis分布式锁实现的博客,然而他们的实现却有着各种各样的问题,为了避免误人子弟,本篇博客将详细介绍如何正确地实现Redis分布式锁。可靠性首先,为了...
2019-04-19 17:17:18
160
原创 Java原子操作类AtomicInteger详解
版权声明:如果您觉得此文对您有帮助,请关注我! https://blog.csdn.net/fanrenxiang/article/details/80623884 为什么需要AtomicInteger原子操作类?对于Java中的运算操作,例如自增或自减,若没有进行额外的同步操作,在多线程环境下就是线程不安全的。num++解析为num=num+1,明显,...
2019-04-19 11:46:36
159
原创 Java队列Queue详情
Queue: 基本上,一个队列就是一个先入先出(FIFO)的数据结构Queue接口与List、Set同一级别,都是继承了Collection接口。LinkedList实现了Deque接 口。Queue的实现没有实现阻塞接口的LinkedList: 实现了java.util.Queue接口和java.util.AbstractQueue接口 内置的不阻塞队列: Prio...
2019-04-19 11:19:17
426
原创 java通过映射修改String的值
字符串String被设计成immutable(不可改变)的,String的value值也是final类型,如何改变值呢?package com.hanshimeng.other;import java.lang.reflect.Field;public class Test { public static void main(String[] args) throws Exception ...
2019-04-16 17:44:52
885
原创 java堆,栈,常量池简单易懂
本文来自:longxiaoyan名词解释:1.寄存器:最快的存储区, 由编译器根据需求进行分配,我们在程序中无法控制.2. 栈:存放基本类型的变量数据和对象的引用,但对象本身不存放在栈中,而是存放在堆(new 出来的对象)或者常量池中(字符串常量对象存放在常量池中。)3. 堆:存放所有new出来的对象。4. 静态域:存放静态成员(static定义的)5. 常量池:存放字符串常量和基...
2019-04-16 16:34:36
181
原创 SCDN快捷键设置大全
快捷键撤销:Ctrl/Command + Z重做:Ctrl/Command + Y加粗:Ctrl/Command + B斜体:Ctrl/Command + I标题:Ctrl/Command + Shift + H无序列表:Ctrl/Command + Shift + U有序列表:Ctrl/Command + Shift + O检查列表:Ctrl/Command + Shift + ...
2019-04-15 14:53:54
322
原创 java堆(heap)、栈(stack)、堆栈的区别
1.栈(stack)与堆(heap)都是Java用来在Ram中存放数据的地方。与C++不同,Java自动管理栈和堆,程序员不能直接地设置栈或堆。 2. 栈的优势是,存取速度比堆要快,仅次于直接位于CPU中的寄存器。但缺点是,存在栈中的数据大小与生存期必须是确定的,缺乏灵活性。另外,栈数据可以共 享,详见第3点。堆的优势是可以动态地分配内存大小,生存期也不必事先告诉编译器,Java的垃...
2019-04-15 12:23:46
142
原创 Java核心技术笔记(持续更新中)
一、对java平台的理解1.Write once, run anywhere1、“一次编译、到处运行”说的是Java语言跨平台的特性,Java的跨平台特性与Java虚拟机的存在密不可分,可在不同的环境中运行。比如说Windows平台和Linux平台都有相应的JDK,安装好JDK后也就有了Java语言的运行环境。其实Java语言本身与其他的编程语言没有特别大的差异,并不是说Java语...
2019-04-14 17:52:42
1643
1
原创 CountDownLatch高并发场景示例
package com.hanshimeng.other;import java.util.concurrent.CountDownLatch;import java.util.concurrent.ExecutorService;import java.util.concurrent.Executors;import java.util.concurrent.atomic.Atomic...
2019-04-09 18:00:35
319
原创 Java线程池ExecutorService和CountDownLatch的简单示例
一、导读CountDownLatch可以保证程序在子线程都执行完毕的情况下再执行主线程。使用方法:对CountDownLatch对象设置初值,每个线程执行完后调用countDown方法,计数器减1,当所有线程都执行完毕后,计数器为0,继续执行主线程逻辑。二、代码示例 package com.hanshimeng.other;import java.util.concurrent.Co...
2019-04-09 17:53:38
961
原创 mysql导入数据命令Load data详解及示例
一、语法介绍LOAD DATA [LOW_PRIORITY] [LOCAL] INFILE 'file_name.txt' [REPLACE | IGNORE]INTO TABLE tbl_name[FIELDS [TERMINATED BY '\t'] [OPTIONALLY] ENCLOSED BY ''] [ESCAPED BY '\\' ]][LINES T...
2019-04-06 11:20:41
21199
原创 PC端百度地理围栏、绘制工具以及判断当前坐标是否再围栏中
一、导读围栏:顾明思议就是利用地图的多个经纬度坐标点画出图形;需求:在地图上画出多个不同的围栏,提交保存到围栏列表(坐标列表),获取用户的经纬度坐标判断是否在围栏中;圆形围栏坐标示例:circle:100.228204_26.885269_100;多边形围栏坐标示例:polygon:100.228204_26.885269;100.243726_26.885269;100.242648_2...
2019-04-01 18:07:28
1787
原创 java-数据库分表:根据UUID(字符串)取模定位分表
一、导读对于数据库来说,数据量的增多简单的处理方式就是分库分表以及读写分离的模式,今天的文章只对分表做下描述,采用取模的方式定位分表下标,大家对取模都熟悉吧,例如5%3=2,取模就是取得是余数2,被除数3代表你要分几张表,取模一个很关键的因素就是除数与被除数必须是数字格式,针对数据库自增长的id是没有问题的,但是针对UUID(字符串)生成的id是无法直接取模的,接下来我会用代码给大家讲解下针对U...
2019-03-30 17:32:33
5602
3
原创 Redis-codis与Zookeeper的集群部署
Redis-codis与Zookeeper的集群部署所需文件1.安装zookeeper2.安装配置Codis3.安装配置redis所需文件1. zookeeper-3.4.62. redis-3.0.11.安装zookeeper#解压文件到指定目录/usr/local/下tar xvzf zookeeper-3.4.6.tar.gz -C /usr/local/#创建自己的zook...
2019-03-21 11:07:08
827
空空如也
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人