08 2020 档案

摘要:Redis缓存穿透和雪崩 服务的高可用问题! Redis缓存的使用,极大的提升了应用程序的性能和效率,特别是数据查询方面。但同时,它也带来了一 些问题。其中,最要害的问题,就是数据的一致性问题,从严格意义上讲,这个问题无解。如果对数据 的一致性要求很高,那么就不能使用缓存。 另外的一些典型问题就是, 阅读全文
posted @ 2020-08-19 12:04 Maple_XL 阅读(142) 评论(0) 推荐(0)
摘要:哨兵模式 (自动选举老大的模式) 概述 主从切换技术的方法是:当主服务器宕机后,需要手动把一台从服务器切换为主服务器,这就需要人工 干预,费事费力,还会造成一段时间内服务不可用。这不是一种推荐的方式,更多时候,我们优先考虑 哨兵模式。Redis从2.8开始正式提供了Sentinel(哨兵) 架构来解 阅读全文
posted @ 2020-08-19 12:01 Maple_XL 阅读(194) 评论(0) 推荐(0)
摘要:Redis主从复制 概念 主从复制,是指将一台Redis服务器的数据,复制到其他的Redis服务器。前者称为主节点 (master/leader),后者称为从节点(slave/follower);数据的复制是单向的,只能由主节点到从节点。 Master以写为主,Slave 以读为主。 默认情况下,每 阅读全文
posted @ 2020-08-19 11:59 Maple_XL 阅读(139) 评论(0) 推荐(0)
摘要:Redis发布订阅 Redis 发布订阅(pub/sub)是一种消息通信模式:发送者(pub)发送消息,订阅者(sub)接收消息。微信、 微博、关注系统! Redis 客户端可以订阅任意数量的频道。 订阅/发布消息图: 第一个:消息发送者, 第二个:频道 第三个:消息订阅者! 下图展示了频道 cha 阅读全文
posted @ 2020-08-19 11:58 Maple_XL 阅读(136) 评论(0) 推荐(0)
摘要:Redis持久化 Redis 是内存数据库,如果不将内存中的数据库状态保存到磁盘,那么一旦服务器进程退出,服务器中 的数据库状态也会消失。所以 Redis 提供了持久化功能! RDB(Redis DataBase) 什么是RDB 在主从复制中,rdb就是备用了!从机上面! 在指定的时间间隔内将内存中 阅读全文
posted @ 2020-08-19 11:55 Maple_XL 阅读(114) 评论(0) 推荐(0)
摘要:SpringBoot整合 SpringBoot 操作数据:spring-data jpa jdbc mongodb redis! SpringData 也是和 SpringBoot 齐名的项目! 说明: 在 SpringBoot2.x 之后,原来使用的jedis被替换为了lettuce jedis 阅读全文
posted @ 2020-08-19 11:54 Maple_XL 阅读(202) 评论(0) 推荐(0)
摘要:事务 Redis 事务本质:一组命令的集合! 一个事务中的所有命令都会被序列化,在事务执行过程的中,会按 照顺序执行! 一次性、顺序性、排他性!执行一些列的命令! 队列 set set set 执行 Redis事务没有没有隔离级别的概念! 所有的命令在事务中,并没有直接被执行!只有发起执行命令的时候 阅读全文
posted @ 2020-08-19 11:52 Maple_XL 阅读(332) 评论(0) 推荐(0)
摘要:三种特殊数据类型 Geospatial 地理位置 朋友的定位,附近的人,打车距离计算? Redis 的 Geo 在Redis3.2 版本就推出了! 这个功能可以推算地理位置的信息,两地之间的距离,方圆 几里的人! 可以查询一些测试数据:http://www.jsons.cn/lngcode/只有 六 阅读全文
posted @ 2020-08-19 11:50 Maple_XL 阅读(688) 评论(0) 推荐(0)
摘要:五大数据类型 Redis 是一个开源(BSD许可)的,内存中的数据结构存储系统,它可以用作数据库、缓存和消息中间 件MQ。 它支持多种类型的数据结构,如 字符串(strings), 散列(hashes), 列表(lists), 集合 (sets), 有序集合(sorted sets) 与范围查询, 阅读全文
posted @ 2020-08-19 11:49 Maple_XL 阅读(240) 评论(0) 推荐(0)
摘要:测试redis性能 redis-benchmark是一个官方自带的压力测试工具 redis-benchmark命令参数! 图片来自菜鸟教程: redis-benchmark -c 100 -n 100000 基础的知识 redis默认有16个数据库 默认使用的是第0个 可以使用 select 进行切 阅读全文
posted @ 2020-08-19 11:47 Maple_XL 阅读(111) 评论(0) 推荐(0)
摘要:安装redis 下载安装包](https://redis.io/) 解压Redis的安装包 tar -zxvf redis-5.0.8.tar.gz 进入解压后的文件,可以看到redis的配置文件 基本的环境安装 yum install gcc-c++ make make install redis 阅读全文
posted @ 2020-08-19 11:45 Maple_XL 阅读(139) 评论(0) 推荐(0)
摘要:各种锁的理解 1、公平锁、非公平锁 公平锁: 非常公平, 不能够插队,必须先来后到! 非公平锁:非常不公平,可以插队 (默认都是非公平) public ReentrantLock() { sync = new NonfairSync(); } public ReentrantLock(boolean 阅读全文
posted @ 2020-08-05 22:59 Maple_XL 阅读(215) 评论(0) 推荐(0)
摘要:原子引用 带版本号 的原子操作! public class CASDemo { //AtomicStampedReference 注意,如果泛型是一个包装类,注意对象的引用问题 // 正常在业务操作,这里面比较的都是一个个对象 static AtomicStampedReference<Intege 阅读全文
posted @ 2020-08-05 22:57 Maple_XL 阅读(280) 评论(0) 推荐(0)
摘要:理解CAS public class CASDemo { //AtomicStampedReference 注意,如果泛型是一个包装类,注意对象的引用问题 // 正常在业务操作,这里面比较的都是一个个对象 static AtomicStampedReference<Integer> atomicSt 阅读全文
posted @ 2020-08-05 22:55 Maple_XL 阅读(199) 评论(0) 推荐(0)
摘要:彻底玩转单例模式 DCL懒汉式 使用双重检查懒汉式时为什么要使用volatile public class LazyMan { private static LazyMan lazyMan; private LazyMan() { } //双重检测模式的懒汉式单例 public static Laz 阅读全文
posted @ 2020-08-05 22:53 Maple_XL 阅读(198) 评论(0) 推荐(0)
摘要:Volatile Volatile 是 Java 虚拟机提供轻量级的同步机制 1、保证可见性 2、不保证原子性 3、禁止指令重排 1、保证可见性 public class JMMDemo { // 不加 volatile 程序就会死循环! // 加 volatile 可以保证可见性 private 阅读全文
posted @ 2020-08-05 22:50 Maple_XL 阅读(162) 评论(0) 推荐(0)
摘要:JMM 什么是JMM JMM : Java内存模型,不存在的东西,概念!约定! 关于JMM的一些同步的约定: 1、线程解锁前,必须把共享变量立刻刷回主存。 2、线程加锁前,必须读取主存中的最新值到工作内存中! 3、加锁和解锁是同一把锁 线程 工作内存 、主内存 内存划分 内存交互 内存交互操作有8种 阅读全文
posted @ 2020-08-05 22:48 Maple_XL 阅读(172) 评论(0) 推荐(0)
摘要:异步回调 Future 设计的初衷: 对将来的某个事件的结果进行建模 /** * 异步调用: CompletableFuture * // 异步执行 * // 成功回调 * // 失败回调 */ public class Demo01 { public static void main(String 阅读全文
posted @ 2020-08-05 22:46 Maple_XL 阅读(130) 评论(0) 推荐(0)
摘要:ForkJoin ForkJoin 在 JDK 1.7 , 并行执行任务!提高效率。 大数据量! 大数据:Map Reduce (把大任务拆分为小任务) ForkJoin 特点:工作窃取 这个里面维护的都是双端队列 ForkJoinPool /** * 求和计算的任务! * 3000 6000(Fo 阅读全文
posted @ 2020-08-05 22:44 Maple_XL 阅读(97) 评论(0) 推荐(0)
摘要:Stream流式计算 大数据:存储 + 计算 集合、MySQL 本质就是存储东西的; 计算都应该交给流来操作! // 有参,无参构造,get、set、toString方法! @Data @NoArgsConstructor @AllArgsConstructor public class User 阅读全文
posted @ 2020-08-05 22:42 Maple_XL 阅读(219) 评论(0) 推荐(0)
摘要:4大函数式接口 新时代的程序员:lambda表达式、链式编程、函数式接口、Stream流式计算 函数式接口: 只有一个方法的接口 Function接口 源码: @FunctionalInterface public interface Function<T, R> { /** * Applies t 阅读全文
posted @ 2020-08-05 22:40 Maple_XL 阅读(232) 评论(0) 推荐(0)
摘要:线程池 线程池:三大方法、7大参数、4种拒绝策略 线程池的好处: 1、降低资源的消耗 2、提高响应的速度 3、方便管理。 线程复用、可以控制最大并发数、管理线程 线程池:三大方法 // Executors 工具类、3大方法 public class poolTest { public static 阅读全文
posted @ 2020-08-05 22:38 Maple_XL 阅读(97) 评论(0) 推荐(0)
摘要:阻塞队列 四组API public class Test { public static void main(String[] args) throws InterruptedException { test4(); } /** * 抛出异常 */ public static void test1( 阅读全文
posted @ 2020-08-05 22:36 Maple_XL 阅读(119) 评论(0) 推荐(0)
摘要:读写锁 public class ReadWriteLockDemo { public static void main(String[] args) { // MyCache myCache = new MyCache(); MyCacheLock myCache = new MyCacheLoc 阅读全文
posted @ 2020-08-05 22:34 Maple_XL 阅读(100) 评论(0) 推荐(0)
摘要:JUC三大常用辅助类 CountDownLatch // 计数器 public class CountDownLatchDemo { public static void main(String[] args) throws InterruptedException { // 总数是6,必须要执行任 阅读全文
posted @ 2020-08-05 22:32 Maple_XL 阅读(334) 评论(0) 推荐(0)
摘要:Callable接口 1、可以有返回值 2、可以抛出异常 3、方法不同,run()/ call() public class CallableTest { public static void main(String[] args) throws ExecutionException, Interr 阅读全文
posted @ 2020-08-05 22:30 Maple_XL 阅读(160) 评论(0) 推荐(0)
摘要:集合类不安全 List不安全 多线程操作List可能会出现:java.util.ConcurrentModificationException异常 // java.util.ConcurrentModificationException 并发修改异常! public class ListTest { 阅读全文
posted @ 2020-08-05 22:27 Maple_XL 阅读(118) 评论(0) 推荐(0)
摘要:8锁问题 如何判断锁的是谁!永远的知道什么锁,锁到底锁的是谁! /** * 8锁,就是关于锁的8个问题 * 1、标准情况下,两个线程先打印 发短信还是 打电话? 1/发短信 2/打电话 * 1、sendSms延迟4秒,两个线程先打印 发短信还是 打电话? 1/发短信 2/打电话 */ public 阅读全文
posted @ 2020-08-05 22:24 Maple_XL 阅读(118) 评论(0) 推荐(0)
摘要:生产者消费者问题 /** * 线程之间的通信问题:生产者和消费者问题! 等待唤醒,通知唤醒 * 线程交替执行 A B 操作同一个变量 num = 0 * A num+1 * B num-1 */ public class A { public static void main(String[] ar 阅读全文
posted @ 2020-08-05 22:21 Maple_XL 阅读(100) 评论(0) 推荐(0)
摘要:Lock锁 Synchronized @SuppressWarnings("all") public class SaleTicketDemo01 { public static void main(String[] args) { // 并发:多线程操作同一个资源类, 把资源类丢入线程 Ticke 阅读全文
posted @ 2020-08-05 22:19 Maple_XL 阅读(161) 评论(0) 推荐(0)
摘要:线程和进程 进程:一个程序, QQ.exe Music.exe 程序的集合; 一个进程往往可以包含多个线程,至少包含一个 ! Java默认有几个线程? 2个mian、 GC 线程:开了一个进程Typora ,写字,自动保存(线程负责的) 对于Java而言: Thread、Runnable、 Call 阅读全文
posted @ 2020-08-05 22:16 Maple_XL 阅读(142) 评论(0) 推荐(0)
摘要:什么是JUC Java.util工具包、包、分类 业务:普通的线程代码Thread Runnable没有返回值、效率相比入Callable相对较低! 视频参考https://www.bilibili.com/video/BV1B7411L7tE 下一篇:线程和进程 阅读全文
posted @ 2020-08-05 22:13 Maple_XL 阅读(195) 评论(0) 推荐(0)