- 博客(18)
- 资源 (2)
- 收藏
- 关注
原创 网络IO - 阻塞IO
阻塞与同步的区别: 阻塞影响代码继续向后执行; 同步可以不阻塞从任务理解A的完成依赖B的完成,A可以继续做其它的事情(银行办业务,在抽取号之后就可以做其它的事情不用一直站着排队)阻塞的本质服务端package com.zyl.netio.blocking;import java.io.BufferedReader;import java.io.InputStreamReader;import java.net.InetSocketAddress;...
2021-03-23 23:08:28 103
原创 制作redis镜像(实操)
1. 准备工作下载redis的源码包wget https://download.redis.io/releases/redis-6.2.1.tar.gz准备一份redis.conf文件,不准备也可以源码编译完成会有默认的2. 书写Dockerfiletouch Dockerfilevi DockerfileFROM centosRUN ["echo", "start"]# 编译redis工具RUN yum install -y gcc gcc-c++ net-too
2021-03-21 16:02:20 1923
原创 VMware安装CentOS及网络配置
1. 安装VMwarehttp://www.downxia.com/downinfo/325403.html这是我下载的地址,密钥的话可以百度搜索尝试window10需要安装VMware16,否则有可能会蓝屏2. VMware安装CentOS2.1 下载CentOS镜像http://mirrors.aliyun.com/centos/7/isos/x86_64/CentOS-7-x86_64-Minimal-2009.iso该连接为迷你版本2.2 安装镜像点击新建虚拟机.
2021-03-18 22:44:58 163
原创 Zookeeper集群搭建以及分布式锁(实操篇)
Zookeeper集群搭建以及分布式锁Zookeeper是介绍就不探究了,百度即可不再赘述,直接实操1.集群搭建操作系统:Ubuntu 18.04.4 LTSzookeeper版本:3.6.2zookeeper下载地址:https://downloads.apache.org/zookeeper/选择3.6.2目录并下载apache-zookeeper-3.6.2-bin.tar.gz将下载的包复制解压到指定目录,例如进行zookeeper配置进入conf目录并.
2021-02-28 19:05:36 245 1
原创 线程池个人理解和实现
进程和线程 进程可以理解为数据结构和内存空间上的,不具备运行能力;应用程序之所以能够运行OS在创建进程的同时为应用程序创建了一个主线程。 线程可以理解为程序中的一条执行路径,同时线程也是cpu调度的最小单位,没有线程存在进程就会结束OS回收资源。为什么使用线程池 在不使用线程池之前当有多个任务需要处理时,只要有任务进入就需要创建新的线程来执...
2019-10-07 11:53:58 346
原创 NIO简单实现httpserver
http协议简单介绍http(超文本传输协议)是基于tcp/ip底层传输协议实现;http是一种无状态方式,因为浏览器在和服务器进行三次握手之后进行数据的传输和处理之后会将连接断开;http请求构成完整的http请求由请求行,请求头,空行,请求体构成请求头定义了请求方法,路径(文件),协议版本请求头是由一对对的键值对构成空行的作用是用户分割请求体(body)http...
2019-10-07 10:02:20 342
原创 RedisTemplate加载lua脚本实现指定key删除
背景: RedisTemplate中批量删除可以使用redisTemplate.delete(kyes),但是前提需要进行模糊匹配即keys命令。看起来很完美,但是现实总是很残酷,在实际线上项目中不能使用,会产生性能问题会占用大量的cpu使用资源,因为redis单线程;方案: 1,使用scan; 2,使用树状结构,rootkey - subkeys...
2019-03-29 21:55:05 2112 2
原创 Redis实现分布式锁
分布式锁当在分布式模型下,数据只有一份(或有限制),此时需要利用锁的技术控制某一时刻修改数据的进程数。 与单机模式下的锁不仅需要保证进程可见,还需要考虑进程与锁之间的网络问题。(我觉得分布式情况下之所以问题变得复杂,主要就是需要考虑到网络的延时和不可靠。。。一个大坑) 分布式锁还是可以将标记存在内存,只是该内存不是某个进程分配的内存而是公共内存如Redis、Memcach...
2019-03-18 22:33:28 350
原创 代码演示ThreadLocal原理
ThreadLocal仿ThreadLocal源码理解其原理;1.定义自己的ThreadLocal实现import java.util.HashMap;public class MyThreadLocal<T>{ public class MyThreadLocalMap { private HashMap<String, T&...
2019-02-25 22:39:28 133
原创 Spring集成Mybatis
1.添加依赖<?xml version="1.0" encoding="UTF-8"?><project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="
2019-01-15 22:14:17 112
原创 Java中的5种单例
单例核心技术,阻止实例的创建,在java面向对象中创建实例的唯一方法即构造方法,因此将构造方法私有化阻止了外部实例化(通过反射可以进行破解);通过内部静态属性能够保持对象的生命周期即jvm的结束。 饿汉模式/** * 饥饿模式在类加载的时候就进行实例化 * 类的加载过程中会对静态变量进行内存分配(类引用会实例化) * 类的加载天然线程安全,不存在线程安全问题 */publi...
2018-12-20 21:47:29 158
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人