自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+

程序员小潘

专注于Java后端技术分享!

  • 博客(12)
  • 资源 (1)
  • 收藏
  • 关注

原创 Redis主从复制服务搭建及原理

Redis主从复制服务搭建及原理单机的问题在一台机器上部署单个Redis节点,存在哪些问题?机器故障,数据丢失。容量瓶颈,单台机器内存有限。性能瓶颈无法高可用针对单机存在的问题,Redis也提供了多种集群方案:主从复制哨兵模式集群该篇博客主要针对“主从复制”做一下简单记录。主从复制将节点的角色分为Master和Slave,主机和从机。Master主要负责数据的写...

2019-12-31 21:21:44 3033 1

原创 Redis数据持久化机制及数据恢复

什么是数据持久化?我们知道Redis是基于内存的非关系型数据库,对数据的增删改查操作都直接在内存中进行,再加上Redis不用维护数据之间的“关系”,导致它性能很高,速度很快。但是基于内存有一个问题是:一旦机器断电,内存中的数据会丢失。数据丢失是很严重的问题,所以Redis是支持数据持久化的。数据持久化:将内存中的数据写入到磁盘,数据永久保存。Redis的持久化机制Redis支持两种持久...

2019-12-29 15:50:27 3045

原创 Redis命令总结

在学习Redis,五大数据类型,整理了一下操作命令,以防忘记时方便查阅。Stringstring是redis最基本的类型,一个Key对应一个Value,string类型是二进制安全的,可以包含任何数据,比如jpg图片或者序列化的对象。一个redis中字符串value最多可以是512M。SETSET key value [EX seconds] [PX milliseconds] [NX|...

2019-12-28 21:18:20 2961

原创 Linux下Redis的安装和启动

Redis安装和启动去官网下载自己需要的版本,解压安装:https://redis.io/download。wget http://download.redis.io/releases/redis-5.0.7.tar.gztar -zxvf redis-5.0.7.tar.gzcd redis-5.0.7makemake install默认安装目录: /usr/local/bin。...

2019-12-28 21:16:12 2968

原创 GC分代年龄为什么是15?

在JVM中,对象在Eden区诞生,当内存不够用时触发GC进行对象回收,但不是所有的对象都可以被回收,当一个对象还在被引用时就无法回收,此时JVM会将其移动到“幸存者区”。幸存者区内部又分为“From区”和“To区”,在幸存者区,对象仍然要面临GC,每经历一次GC,对象就要在From区和To区之间来回移动,每移动一次对象的GC年龄就加1,当年龄加到15时(不绝对),JVM会将对象移动到老年区。...

2019-12-26 19:27:20 13698 3

原创 JDK7-HashMap源码解析

为了方便阅读和写注释,笔者将HashMap源码单独拷出来了,推荐大家也这么做,阅读起来更加轻松,Debug也很方便,更重要的是,你可以修改源码来测试。继承关系图阅读源码建议采用自上而下的结构,建议先看Map接口、然后AbstractMap抽象类、最后HashMap。整体结构分层Map接口定义Map具备的功能,使用内部接口Entry来对单个映射关系进行封装,Entry是Map的基本组成单...

2019-12-21 19:21:00 2959

原创 你写的单例真的安全吗?

单例模式单例模式的实现方案有两种:饿汉式、懒汉式。网上很多写法都存在一些问题。饿汉式饥饿法则,优先创建实例,需要时直接返回。优点是代码编写简单,缺点是没有达到懒加载的效果,浪费资源。public class Single { private final static Single SINGLE = new Single(); private Single(){} public ...

2019-12-18 20:41:31 11388

原创 构建器代替构造器

前言静态工厂方法和构造器有一个共同的局限性:当有大量可选参数时,方法的数量会不受控制。当有大量可选参数时,开发者一般采用方法重载的方式来编写构造器,面对大量的构造器调用者往往不知所云,尤其是参数类型相同的情况下,调用者往往要跟到源码里面去看才知道各个参数的意义。面对这种情况,除了提供静态工厂方法和构造器外,开发者往往还会将类设计成JavaBeans模式。提供一个无参的构造方法,创建一个空对...

2019-12-18 20:40:42 2940

原创 用静态工厂方法代替构造器

参考于《Effective Java》前言对于类而言,获得其实例最常见的方式就是提供一个构造器。如果我们不写构造器,编译器会帮我们自动加上一个被public修饰的空构造器。除了提供构造器以外,静态工厂方法也应该被考虑到程序的设计当中。静态工厂方法本质上就是类的一个静态方法,返回值是类的实例对象。通过私有化构造器,无法直接new对象,而是通过运行静态工厂方法获取对象实例。这么做既...

2019-12-18 20:40:17 2935

原创 Spring Boot零配置实现原理及模拟实现

利用Spring Boot可以快速的构建一个Spring应用,尤其是Web应用,Spring Boot内嵌了Tomcat容器,项目开发完成后打包成一个可执行的Jar包直接就能运行,大大减少了项目构建和部署的成本。Spring Boot非常强大,它是如何实现的?过去的步骤在没有用Spring Boot之前,是这么做的:1、在web.xml手动配置Spring配置文件和DispatcherSe...

2019-12-14 22:09:49 3330

原创 Maven基础知识

Maven简介什么是Maven?Maven是跨平台的项目管理工具,使用Java语言开发,可以对Java项目进行项目构建、依赖管理、项目信息管理。理想的项目构建方式清理 -> 编译 -> 测试 -> 报告 -> 打包 -> 部署自动化跨平台可重用标准化为什么使用Maven?不用Maven:手工操作多,编译、测试、打包、部署都要独立操作需要手...

2019-12-14 19:43:21 2927

原创 Solr7服务搭建及简单使用

前言最近在搭一套微服务环境,其中“帖子模块”需要用到Solr的全文检索和高亮查询,服务搭建完毕后决定将Solr的服务搭建过程和查询简单记录一下。之前用Lucene实现过类似的功能,Solr也是基于Lucene的,但Solr是面向企业级的搜索服务,功能更强大。服务搭建下载软件前往Solr官网下载,下载链接。解压并启动现在Solr已经内置了容器,可以单独运行,无需依赖Tomcat。./...

2019-12-11 21:45:44 2951

HashMap.java

JDK7的HashMap源码阅读,几乎给每个方法和属性都加上了中文注释。 可以帮助大家更好的阅读源码,可能有理解不对的地方,望指正。

2019-12-27

空空如也

空空如也

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

TA关注的人 TA的粉丝

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