自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(21)
  • 收藏
  • 关注

原创 9.Redis-企业级解决方案

企业级解决方案缓存预热“宕机”问题排查解决方案总结缓存雪崩数据库服务器崩溃(1)问题排查问题分析解决方案(道)解决方案(术)总结缓存击穿数据库服务器崩溃(2)问题排查问题分析解决方案(术)总结缓存穿透数据库服务器崩溃(3)问题排查问题分析解决方案(术)总结性能指标监控监控指标监控指标监控方式benchmarkmonitorshowlong缓存预热“宕机”服务器启动后迅速宕机问题排查请求数量较高主从之间数据吞吐量较大,数据同步操作频度较高解决方案前置准备工作:日常例行统计数据访问记录,

2020-05-10 00:39:26 332

原创 8.Redis-哨兵模式和集群

哨兵模式哨兵哨兵简介主机“宕机”哨兵哨兵的作用启用哨兵模式配置哨兵哨兵工作原理主从切换阶段一:监控阶段阶段二:通知阶段阶段三:故障转移阶段主从切换总结集群集群简介现状问题集群架构集群作用Redis集群结构设计数据存储设计集群内部通讯设计cluster集群结构搭建搭建方式Cluster配置Cluster节点操作命令redis-trib命令哨兵哨兵简介主机“宕机”哨兵  哨兵(sentinel) 是一个分布式系统,用于对主从结构中的每台服务器进行监控,当出现故障时通过投票机制选择新的 master

2020-05-10 00:07:52 221

原创 7.Redis-主从复制

主从复制主从复制简介互联网“三高”架构你的“Redis”是否高可用多台服务器连接方案主从复制高可用集群主从复制的作用★★★★主从复制工作流程总述阶段一:建立连接阶段工作流程主从连接(slave连接master)主从断开连接(不常用)授权访问阶段二:数据同步阶段工作流程数据同步阶段工作流程★★★数据同步阶段 master 说明数据同步阶段 slave 说明阶段三:命令传播阶段命令传播阶段的部分复制服务器运行ID(runid)复制缓冲区复制缓冲区内部工作原理主从服务器复制偏移量(offset)数据同步+命令传播

2020-05-09 21:53:21 220

原创 6.Redis-高级数据类型

高级数据类型Bitmaps(统计非真即假的数据)案例存储需求Bitmaps类型的基础操作Bitmaps类型的扩展操作业务场景业务分析HyperLogLog(统计不重复的数据)统计独立UV(Unique Visitor 独立访客)基数LogLog算法HyperLogLog类型的基本操作相关说明GEO(距离,范围计算)火热的生活服务类软件GEO 类型的基本操作高级数据操作命令总结Bitmaps(统计非真即假的数据)案例公司的年度总结会  有一个电影网站公司,主营的业务为网上的电影的浏览、下载、会员服务,

2020-05-09 18:08:51 175

原创 5.Redis-事务和删除策略及服务器配置

事务事务简介什么是事务Redis执行指令过程中,多条连续执行的指令被干扰,打断,插队  redis事务就是一个命令执行的队列,将一系列预定义命令包装成一个整体(一个队列)。当执行时,一次性按照添加顺序依次执行,中间不会被打断或者干扰。  一个队列中,一次性、顺序性、排他性的执行一系列命令事务基本操作开启事务multi作用设定事务的开启位置,此指令执行后,后续的所有指令均加入到事务中执行事务exec作用设定事务的结束位置,同时执行事务。与multi成对出现,成对使用

2020-05-09 15:26:47 267

原创 4.Redis-持久化

持久化简介简介意外断电“自动备份”什么是持久化  利用永久性存储介质将数据进行保存,在特定的时间将保存的数据进行恢复的工作机制称为持久化。为什么要进行持久化  防止数据的意外丢失,确保数据安全性持久化过程保存什么将当前数据状态进行保存,快照形式,存储数据结果,存储格式简单,关注点在数据将数据的操作过程进行保存,日志形式,存储操作过程,存储格式复杂,关注点在数据的操作过程...

2020-05-07 21:11:36 207

原创 3.Redis-Jedis和linux环境安装redis

JedisJedis简介编程语言与redisJava语言连接redis服务JedisSpringData RedisLettuceC 、C++ 、C# 、Erlang、Lua 、Objective-C 、Perl 、PHP 、Python 、Ruby 、Scala可视化连接redis客户端Redis Desktop ManagerRedis ClientRedis...

2020-05-07 16:31:45 479

原创 2.Redis-数据类型和通用指令

这里写目录标题数据类型数据存储类型介绍业务数据的特殊性作为缓存使用附加功能Redis 数据类型(5种常用)stringredis 数据存储格式string 类型string 类型数据的基本操作单数据操作与多数据操作的选择之惑string 类型数据的扩展操作业务场景(保持主键增长并且唯一)解决方案string 作为数值操作业务场景(投票)解决方案string 类型数据操作的注意事项string 类型...

2020-05-07 00:04:36 529

原创 1.Redis-入门

Redis 入门NosqlRedis应用下载Nosql  NoSQL:即 Not-Only SQL( 泛指非关系型的数据库),作为关系型数据库的补充。  作用:应对基于海量用户和海量数据前提下的数据处理问题。特征:可扩容,可伸缩大数据量下高性能灵活的数据模型高可用常见 Nosql 数据库:RedismemcacheHBaseMongoDBRedis  概念:...

2020-05-06 13:29:57 84

原创 JUC-并发编程-模式

模式终止模式之两阶段终止模式Two Phase Termination  在一个线程 T1 中如何“优雅”终止线程 T2?这里的【优雅】指的是给 T2 一个料理后事的机会。1. 错误思路使用线程对象的 stop() 方法停止线程(已被废弃)stop 方法会真正杀死线程,如果这时线程锁住了共享资源,那么当它被杀死后就再也没有机会释放锁,其它线程将永远无法获取锁使用 System...

2020-05-05 23:52:27 430

原创 JUC-并发编程-应用

并发编程应用限制1. 案例-防止 CPU 占用 100%sleep 实现  在没有利用 cpu 来计算时,不要让 while(true) 空转浪费 cpu,这时可以使用 yield 或 sleep 来让出 cpu 的使用权给其他程序while(true) { try { Thread.sleep(50); } catch (InterruptedException e) { ...

2020-05-05 23:52:12 359

原创 6.JUC-共享模型之工具

1 线程池1. 自定义线程池步骤1:自定义拒绝策略接口@FunctionalInterface // 拒绝策略interface RejectPolicy<T> { void reject(BlockingQueue<T> queue, T task);}步骤2:自定义任务队列class BlockingQueue<T> { // 1...

2020-05-05 23:48:53 613

原创 JUC-并发编程-原理

并发编程原理Monitor 原理synchronized 原理synchronized 原理进阶1. 轻量级锁2. 锁膨胀3. 自旋优化4. 偏向锁偏向状态撤销 - 调用对象 hashCode撤销 - 其它线程使用对象撤销 - 调用 wait/notify批量重偏向批量撤销5. 锁消除wait notify 原理join 原理Monitor 原理Monitor 被翻译为监视器或管程  每个 ...

2020-05-05 23:47:23 1518

原创 5.JUC-共享模型之不可变

1 日期转换的问题问题提出  下面的代码在运行时,由于 SimpleDateFormat 不是线程安全的SimpleDateFormat sdf = new SimpleDateFormat("yyyy-MM-dd");for (int i = 0; i < 10; i++) { new Thread(() -> { try { ...

2020-05-02 23:06:42 182

原创 4.JUC-共享模型之无锁

1 问题提出  有如下需求,保证 account.withdraw 取款方法的线程安全interface Account { // 获取余额 Integer getBalance(); // 取款 void withdraw(Integer amount); /** * 方法内会启动 1000 个线程,每个线程做 -10 元 的操作 ...

2020-05-02 16:36:21 326

原创 3.JUC-共享模型之内存

共享模型之内存1 Java 内存模型2 可见性退不出的循环解决方法可见性 vs 原子性* 原理之 CPU 缓存结构* 模式之两阶段终止 * 模式之 Balking 3 有序性* 原理之指令级并行诡异的结果解决方法* 原理之 volatilehappens-before习题balking 模式习题线程安全单例习题本章小结1 Java 内存模型  JMM 即 Java Memory Model,它...

2020-05-01 14:12:20 269

原创 2.JUC-共享模型之管程

共享模型之管程1. 共享带来的问题小故事老王(操作系统)有一个功能强大的算盘(CPU),现在想把它租出去,赚一点外快小南、小女(线程)来使用这个算盘来进行一些计算,并按照时间给老王支付费用但小南不能一天24小时使用算盘,他经常要小憩一会(sleep),又或是去吃饭上厕所(阻塞 io 操作),有时还需要一根烟,没烟时思路全无(wait)这些情况统称为(阻塞)在这些时候,算盘没利用起...

2020-04-30 00:17:23 609

原创 1.JUC-Java线程

Java线程1. 创建和运行线程方法一,直接使用 Thread方法二,使用 Runnable 配合 Thread原理之Thread与Runnable的关系方法三,FutureTask 配合 Thread

2020-04-27 17:08:45 287

原创 5.JVM-内存模型

内存模型1. Java内存模型很多人将【java内存结构】与[java内存模型】傻傻分不清,[java内存模型】是Java Memory Model (JMM)的意思。 1关于它的权威解释,请参考 链接简单的说,JMM定义了一套在多线程读写共享数据时(成员变量、数组)时,对数据的可见性、有序性、 和原子性的规则和保障1.1 原子性1.2 问题分析1.3 解决方法2. 可见性2.1...

2020-04-25 22:54:27 149

原创 4.JVM-类加载器与字节码技术

类加载和字节码技术1.类文件结构JVM规范,类文件结构1.1 魔数0-3字节,表示它是否是【class】类型的文件0000000 ca fe ba be 00 00 00 34 00 23 0a 00 06 00 15 091.2 版本4-7字节,表示类的版本 00 34(52) 表示是java80000000 ca fe ba be 00 00 00 34 00 23 0a 0...

2020-04-24 23:56:51 344

原创 3.JVM-垃圾回收

垃圾回收1. 判断对象是否可以回收1.1引用计数法  如果两个对象互相引用,计数器都为1,即使他们都没有被使用,都不会被清理。1.2可达性分析算法在Java中,可以作为GC Root 的对象包括下面几种:虚拟机栈(栈帧中的本地变量表)中引用的对象。方法区中类静态属性引用的对象。方法区中常量引用的对象。本地方法栈中JNI(即一般说的Native方法)引用的对象。查看哪些对...

2020-04-20 21:50:42 254

空空如也

空空如也

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

TA关注的人

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