05 2018 档案

缓存穿透,缓存击穿,缓存雪崩
摘要:前言 设计一个缓存系统,不得不要考虑的问题就是:缓存穿透、缓存击穿与失效时的雪崩效应。 缓存穿透 访问一个不存在的key,缓存不起作用,请求会穿透到DB,流量大时DB会挂掉。 大并发的缓存穿透会导致缓存雪崩。 解决方案 1.布隆过滤 采用布隆过滤器,将所有可能存在的数据哈希到一个足够大的bitmap 阅读全文

posted @ 2018-05-31 15:37 米虫爱喝咖啡 阅读(153) 评论(0) 推荐(0)

缓存的种类
摘要:缓存的作用:加速读写,降低后端负载。 1. LocalCache(独立式): 例如Ehcache、BigMemory Go (1) 缓存和应用在一个JVM中。 (2) 缓存间是不通信的,独立的。 (3) 弱一致性。 2. Standalone(单机): (1) 缓存和应用是独立部署的。 (2) 缓存 阅读全文

posted @ 2018-05-31 15:37 米虫爱喝咖啡 阅读(310) 评论(0) 推荐(0)

ZooKeeper
摘要:Zookeeper 作为一个分布式的服务框架,主要用来解决分布式集群中应用系统的一致性问题,它能提供基于类似于文件系统的目录节点树方式的数据存储, Zookeeper 作用主要是用来维护和监控存储的数据的状态变化,通过监控这些数据状态的变化,从而达到基于数据的集群管理。 1.Znode 像数据结构当 阅读全文

posted @ 2018-05-31 13:52 米虫爱喝咖啡 阅读(123) 评论(0) 推荐(0)

分布式锁
摘要:1、分布式锁的定义 分布式锁,是控制分布式系统之间同步访问共享资源的一种方式。 2、分布式锁的实现有哪些? 1.Memcached分布式锁 利用Memcached的add命令。此命令是原子性操作,只有在key不存在的情况下,才能add成功,也就意味着线程得到了锁。 2.Redis分布式锁 和Memc 阅读全文

posted @ 2018-05-31 11:09 米虫爱喝咖啡 阅读(144) 评论(0) 推荐(0)

sql语句执行顺序
摘要:在SQL语言中,第一个被处理的子句是FROM子句,尽管SELECT语句第一个出现,但是几乎总是最后被处理。 阅读全文

posted @ 2018-05-25 13:56 米虫爱喝咖啡 阅读(114) 评论(0) 推荐(0)

关于集合
摘要:1.ArrayList 是基于数组实现的,因此对指定下标的查找和修改比较快,但是删除和插入操作比较慢,因为需要移动插入或者删除位置后面的元素,并且涉及数组的复制 默认容量10,构造ArrayList时尽量指定容量,减少扩容时带来的数组复制操作 每次添加元素之前会检查是否需要扩容,每次扩容都是增加原有 阅读全文

posted @ 2018-05-25 10:00 米虫爱喝咖啡 阅读(99) 评论(0) 推荐(0)

设计模式--7种单例模式
摘要:定义:一个类只有一个对象实例。 优点:1,在内存中只有一个对象,节省内存空间。 2,避免频繁的创建销毁对象,可以提高性能。 3,避免对共享资源的多重占用。 4,可以全局访问。 1. 饿汉模式 在类加载时就完成了初始化,所以类加载较慢,但获取对象的速度快。 这种方式基于类加载机制避免了多线程的同步问题 阅读全文

posted @ 2018-05-25 09:54 米虫爱喝咖啡 阅读(157) 评论(0) 推荐(0)

关于SQL 的多表连接问题
摘要:1.多表连接类型 JOIN: 如果表中有至少一个匹配,则返回行 INNER JOIN(内连接):如果表中有至少一个匹配,则返回行 LEFT JOIN(左连接): 即使右表中没有匹配,也从左表返回所有的行 RIGHT JOIN(右连接): 即使左表中没有匹配,也从右表返回所有的行 FULL JOIN( 阅读全文

posted @ 2018-05-25 09:43 米虫爱喝咖啡 阅读(180) 评论(0) 推荐(0)

mysql之sql优化
摘要:mysql 数据库是被广泛应用的关系型数据库,其体积小、支持多处理器、开源并免费的特性使其在 Internet 中小型网站中的使用率尤其高。 一、库表设计 1.1 引擎选择 存储引擎就是指表的类型以及表在计算机上的存储方式。存储引擎的概念是MySQL的特点,Oracle中没有专门的存储引擎的概念,O 阅读全文

posted @ 2018-05-24 14:06 米虫爱喝咖啡 阅读(140) 评论(0) 推荐(0)

设计模式的六大原则
摘要:1.单一职责原则:一个类只负责一项职责 单一职责原则告诉我们实现类要职责单一 2.里氏替换原则:子类可以扩展父类的功能,但却不能改变父类原有的功能 里氏替换原则告诉我们不要破坏继承体系 3.依赖倒置原则:高层模块不应该依赖低层模块,二者都应该依赖其抽象;抽象不应该依赖细节,细节应该依赖抽象 依赖倒置 阅读全文

posted @ 2018-05-24 10:30 米虫爱喝咖啡 阅读(125) 评论(0) 推荐(0)

设计模式--工厂模式
摘要:1.定义 用于创建对象 2.工厂类型 静态工厂模式(简单工厂) 实质是由一个工厂类根据传入的参数,动态决定应该创建哪一个产品类(这些产品类继承自一个父类或接口)的实例 常用的场景 例如部署多种数据库时,只需要在配置文件中设定数据库的类型,每次再根据类型生成实例。 所以简单工厂模式一般应用于多种同类型 阅读全文

posted @ 2018-05-24 09:57 米虫爱喝咖啡 阅读(163) 评论(0) 推荐(0)

spring---AOP设计原理
摘要:1、简介 AOP:Aspect Object Programming 面向切面编程,功能是让关注点和业务代码分离,可自定义切面,将影响了多个类的公共行为抽取出来,封装成一个可重用的模块,然后在运行的时候往业务方法中动态加入"切面类代码"。例如日志,事务处理,权限控制。减少了代码的重复性,降低了模块之 阅读全文

posted @ 2018-05-21 16:07 米虫爱喝咖啡 阅读(322) 评论(0) 推荐(0)

设计模式--代理模式
摘要:1.定义 通过代理对象访问目标对象。好处:在目标对象实现的基础上,增强额外的功能操作,即扩展目标对象的功能。 代理模式的关键点是:代理对象与目标对象.代理对象不仅会调用目标对象,并且可以对目标对象进行扩展。 2.静态代理 特点:需要定义接口或者父类,被代理对象与代理对象一起实现相同的接口或者是继承相 阅读全文

posted @ 2018-05-21 13:37 米虫爱喝咖啡 阅读(142) 评论(0) 推荐(0)

java 多态
摘要:1.面向对象的特征 封装、继承、多态 2.多态代码分析 多态是对象在不同时刻表现出来的多种状态,是一种编译时期状态和运行时期状态不一致的现象。我们在编写或者分析代码时记住如下口诀: 成员变量:编译看左,运行看左(因为无法重写); 成员方法:编译看左,运行看右(因为普通成员方法可以重写,变量不可以); 阅读全文

posted @ 2018-05-20 11:34 米虫爱喝咖啡 阅读(135) 评论(0) 推荐(0)

Java异常
摘要:1.异常类型 1)Throwable 是所有异常的父类,它有两个直接子类 Error 和 Exception。 2)Error 表示系统级的错误,是 java 运行环境内部错误或者硬件问题,不能指望程序来处理这样的问题,除了退出运行外别无选择,它是 java 虚拟机抛出的。 Exception 表示 阅读全文

posted @ 2018-05-20 10:01 米虫爱喝咖啡 阅读(139) 评论(0) 推荐(0)

java socket编程
摘要:server端: client端: 阅读全文

posted @ 2018-05-19 16:25 米虫爱喝咖啡 阅读(96) 评论(0) 推荐(0)

Java 基本数据类型错题集
摘要:1.关于类型转换问题 对于注释 1 来说,在 s1+1 运算时会自动提升表达式的类型为 int,所以将 int 赋予给 short 类型的变量 s1 会出现类型转换错误(无法编译,IDE 提示错误),除非主动加上强转。 对于注释 2 来说 += 是 java 语法规定的运算符,所以 java 编译器 阅读全文

posted @ 2018-05-18 13:33 米虫爱喝咖啡 阅读(152) 评论(0) 推荐(0)

svn检出maven项目的步骤
摘要:1.作为工作空间项目,检出父项目, 2.将父项目转成maven工程 3.右点击父项目,导入已存在的maven项目 阅读全文

posted @ 2018-05-17 10:56 米虫爱喝咖啡 阅读(166) 评论(0) 推荐(0)

mysql 优化
摘要:1.表设计优化 1、选取最适用的字段属性 在创建表的时候,将表中字段的宽度设得尽可能小。不仅可以减少存储开销。还可以加快查询速度。 2、使用索引 优点: 1)通过创建唯一性索引,可以保证数据库表中每一行数据的唯一性。 2)可以大大加快 数据的检索速度,这也是创建索引的最主要的原因。 3)可以加速表和 阅读全文

posted @ 2018-05-14 15:34 米虫爱喝咖啡 阅读(99) 评论(0) 推荐(0)

二叉查找树(BST)、红黑树、B-树、B+树
摘要:二叉查找树(BST)具备什么特性呢? 平衡二叉查找树(AVL)具备什么特性呢? 红黑树具备什么特性呢? 保证了从根到叶的最长路径不会超过最短路径的2倍。 如何让树保持红黑色特性:1)变色 2)旋转 红黑树的应用:TreeMap,TreeSet,Java8 B-树就是B树。 问题一:数据库索引为什么要 阅读全文

posted @ 2018-05-11 14:56 米虫爱喝咖啡 阅读(308) 评论(0) 推荐(0)

HashMap,ConcurrentHashMap 原理分析
摘要:基于Java1.7的 HashMap原理 1.基于哈希原理,存储key-value键值对(Entry)的集合。在JDK1.8以前数据结构是一个数组+链表,在JDK1.8以后是一个数组+链表+红黑树。(key,value,hash,next) 2.put方法原理:1)通过哈希函数计算key,得到哈希值 阅读全文

posted @ 2018-05-11 13:58 米虫爱喝咖啡 阅读(186) 评论(0) 推荐(0)

Java集合源码分析--HashMap
摘要:转载自 http://www.cnblogs.com/zhangyinhua/p/7698642.html#_label0 一,关于HashMap API定义 二,HashMap 的属性 初始容量:哈希表中桶的数量 加载因子:哈希表在其容量自动增加之前可以达到多满的一种尺度 当哈希表中条目数超出了当 阅读全文

posted @ 2018-05-10 14:38 米虫爱喝咖啡 阅读(172) 评论(0) 推荐(0)

分布式事务
摘要:1、事务 事务是作为单个逻辑单元执行的一组操作,要么全部成功,要么全部失败。 事务包含四个特性:原子性,一致性,隔离性,持久性。 2、分布式事务 单数据源的一致性依靠单机事务来保证,多数据源的一致性就要依靠分布式事务。 分布式事务用于分布式系统中保证不同节点之间的数据一致性。 3、分布式事务的实现 阅读全文

posted @ 2018-05-09 15:21 米虫爱喝咖啡 阅读(170) 评论(0) 推荐(0)

导航