阿里云搭建redis cluster
前言因项目中需要集成JedisCluster,特阿里云上部署一套环境就行测试,测试过程中遇到了不少坑,如:JedisCluster 一直连接不上集群,但是终端又能连接上,在此记录一下,供之后使用参考一、下载并安装wget http://download.redis.io/releases/redis-5.0.5.tar.gztar xzf redis-5.0.5.tar.gzcd redis-5.0.5make相关脚本在src下面,主要是redis-server.sh 、redis-cli.sh;若需要指定配置可以用 redis-server redis.conf 启动客户端指定host、ip,reds-cli -h {host} -p {port}二、集群搭建2.1 修改redis.conf配置# 主要是一下配置,其他的配置可以根据需要调整# 启动集群cluster-enabled yescluster-config-file nodes.confcluster-node-timeout 5000# 默认是 127.0.0.1 需要改了,这里为了客户端能够连接上bind 0.0.0. ...
mongodb
前言最近学学mongo,记下相关操作笔记,以备之后复习一、启动官网下载对应的mongo文件在mongo根目录新建数据目录和日志文件mkdir -p data/dbmkdir logtouch mongo.log运行./mongod --dbpath ../data/db --logpath ../data/log/mongo.log客户端连接./mongo --port 27017二、基本操作help 查看命令show dbsuse dbnameshow tablesdb.stats()db.集合名字.find(查询条件).sort(排序条件).pretty()db.集合名字.save(json内容)db.集合名字.insert(json内容)db.serverStatus()db.集合名字.explain().find(查询条件).....三、存储引擎MMAPv1 3.2 之前默认引擎WiredTiger 3.2 之后默认引擎Encrypted 企业版In-Memory 企业版第三方引擎,如RocksDB、TerarkDB四、日志wiredTiger 使用写前日志 write-ah ...
bean-callback
前言测试下,spring bean 生命周期的几种回调函数,初始化方法,销毁方法一、环境<dependencies> <dependency> <groupId>org.springframework</groupId> <artifactId>spring-beans</artifactId> <version>4.3.26.RELEASE</version> </dependency> <dependency> <groupId>org.springframework</groupId> <artifactId>spring-core</artifactId> <version>4.3.26.RELEASE</version> </dependency> <dep ...
线程池
前言多线程原理一个高频面试题,需要了解核心参数,以及参数之间的关系一、ThreadPoolExecutor1、核心参数corePoolSize核心线程数,相当于最小线程数maximumPoolSize最大线程数,线程池最大线程数keepAliveTime线程存活时间BlockingQueue任务队列,当前活跃线程数超过核心线程数的时候,会将提交任务放到队列中等待线程执行RejectedExecutionHandler当无可用线程,且队列容量不足,会选择的放弃策略,默认 AbortPolicy,提供了四种策略AbortPolicy抛出 RejectedExecutionException 异常DiscardPolicy不做任何处理,直接放弃DiscardOldestPolicy丢弃blockqueue 最尾部的那个task,来执行当前的taskCallerRunsPolicy调用主线程执行,不用线程池中的线程ThreadFactory线程工厂,用户创建线程,默认 DefaultThreadFactory2、worker基于AQSprivate final HashSet<Worke ...
SpringInit
前言Spring的加载机制,一直都不是很清楚,本次通过debug,查了相关源码,整理出整体调用链,为日后学习使用本文仅自己学习笔记!AbstractBeanFactory -> DefaultListableBeanFactoryAbstractApplicationContext.refreshobtainFreshBeanFactory DefaultListableBeanFactoryfinishBeanFactoryInitializationAbstractXmlApplicationContextloadDefiniton解析xmlDefaultListableBeanFactory.beanDefinitionMap(beanName, beanDefinition)DefaultSingletonBeanRegistry 是 DefaultListableBeanFactory 父类DefaultSingletonBeanRegistry.singletonObjects(beanName, Object)初始化 applicaionContextAbstrac ...
JUC 包相关学习笔记
前言JUC 包里面有很多内容,AQS是核心,锁和队列的实现都要依赖于AQS。本文纯个人学习笔记,为了加深印象。一、AQSAbstractOwnableSynchronizer 抽象类,只有一个属性当前独占线程private transient Thread exclusiveOwnerThread;AbstractQueuedSynchronizerNode 存储当前线程,FIFO,尾部入队,有前后两个Node引用static final class Node { static final Node SHARED = new Node(); static final Node EXCLUSIVE = null; // 这些表示节点状态 static final int CANCELLED = 1; static final int SIGNAL = -1; static final int CONDITION = -2; static final int PROPAGATE = -3; volatile int wai ...
Collection
前言集合是java基础的最要模块之一,本文列举了相应集合的知识点。主要从非发包和并发包进行整理,为了日后自己学习使用。本地仅自己学习笔记!一、非并发包CollectionListArrayList数组,默认容量10,1.5倍扩容 oldCap + oldCap >> 1LinkedList双向链表Node<E> { E item; Node<E> next; Node<E> prev;}Vector数组,默认容量10,2倍扩容 oldsize + oldsize(前提是不传入 capacityIncrement)操作方法都用synchronized修饰,线程安全StackVector子类,提供先进后出,push依次存入,pop尾部取出,直接把尾部index对应的元素改成nullSetHashSet基于HashMap存储,value为成员变量 private static final Object PRESENT = new Object();也可以使用 LinkedHashMapLinkedHash ...