• 欢迎访问 优知学院 请加入我们的架构交流分享群优知学院-架构师进阶
  • 如果您觉得这个博客非常有看点,那么赶紧使用Ctrl+D 收藏 :优知学院 吧!

Redis系列教程(九):Redis的内存回收原理,及内存过期淘汰策略详解

Redis系列教程(九):Redis的内存回收原理,及内存过期淘汰策略详解
Redis内存回收机制 Redis的内存回收主要围绕以下两个方面: 1.Redis过期策略:删除过期时间的key值 2.Redis淘汰策略:内存使用到达maxmemory上限时触发内存淘汰数据 Redis的过期策略和内存淘汰策略不是一件事,实际研发中不要弄混淆了,下面会完整的介绍两者。 Redis过期策……继续阅读 »

陈睿 1年前 (2018-12-21) 3410浏览 1评论 7个赞

Redis系列教程(八):分布式锁的由来、及Redis分布式锁的实现详解

Redis系列教程(八):分布式锁的由来、及Redis分布式锁的实现详解
在很多场景中,我们为了保证数据的最终一致性,需要很多的技术方案来支持,比如分布式事务、分布式锁等。那具体什么是分布式锁,分布式锁应用在哪些业务场景、如何来实现分布式锁呢?今天来探讨分布式锁这个话题。 什么是分布式锁 要介绍分布式锁,首先要提到与分布式锁相对应的是线程锁、进程锁。 1.线程锁 主要用来给方法、代码块加锁。……继续阅读 »

陈睿 1年前 (2018-12-20) 3761浏览 1评论 8个赞

Redis系列教程(七):Redis并发竞争key的解决方案详解

Redis系列教程(七):Redis并发竞争key的解决方案详解
Redis高并发的问题 Redis缓存的高性能有目共睹,应用的场景也是非常广泛,但是在高并发的场景下,也会出现问题: 高并发架构系列:Redis缓存和MySQL数据一致性方案详解 如何解决Redis缓存雪崩、缓存穿透、缓存并发等5大难题 以及今天要谈到的Redis并发竞争问题,这里的并发指的是多个redis的cli……继续阅读 »

陈睿 1年前 (2018-12-19) 3751浏览 0评论 3个赞

Redis系列教程(六):Redis缓存和MySQL数据一致性方案详解

Redis系列教程(六):Redis缓存和MySQL数据一致性方案详解
需求起因 在高并发的业务场景下,数据库大多数情况都是用户并发访问最薄弱的环节。所以,就需要使用redis做一个缓冲操作,让请求先访问到redis,而不是直接访问MySQL等数据库。 这个业务场景,主要是解决读数据从Redis缓存,一般都是按照下图的流程来进行业务操作。 读取缓存步骤一般没有什么问题,……继续阅读 »

陈睿 1年前 (2018-12-17) 5501浏览 8评论 9个赞

Redis系列教程(五):Redis哨兵、复制、集群的设计原理,以及区别

Redis系列教程(五):Redis哨兵、复制、集群的设计原理,以及区别
前一篇文章高并发架构系列:Redis为什么是单线程、及高并发快的3大原因详解谈了Redis高并发快的3个原因,本篇主要谈Redis的高可用,两篇合起来就可以把redis的高并发和高可用搞清楚了。 谈到Redis服务器的高可用,如何保证备份的机器是原始服务器的完整备份呢?这时候就需要哨兵和复制。 哨兵(Sentinel):可以管理多个Redis服务器,它提供……继续阅读 »

陈睿 1年前 (2018-12-14) 4916浏览 1评论 7个赞

Redis系列教程(四):Redis为什么是单线程、及高并发快的3大原因详解

Redis系列教程(四):Redis为什么是单线程、及高并发快的3大原因详解
Redis的高并发和快速原因 1.redis是基于内存的,内存的读写速度非常快; 2.redis是单线程的,省去了很多上下文切换线程的时间; 3.redis使用多路复用技术,可以处理并发的连接。非阻塞IO 内部实现采用epoll,采用了epoll+自己实现的简单的事件框架。epoll中的读、写、关闭、连接都转化成了事件,然后利用epoll的多路复用特……继续阅读 »

陈睿 1年前 (2018-12-13) 4018浏览 0评论 11个赞

Redis系列教程(三):如何解决Redis缓存雪崩、缓存穿透、缓存并发等5大难题

Redis系列教程(三):如何解决Redis缓存雪崩、缓存穿透、缓存并发等5大难题
Java相关的面试都会问到缓存的问题:史上最全Redis面试49题(含答案):哨兵+复制+事务+集群+持久化等,除此之外还会问到缓存雪崩、缓存穿透、缓存预热、缓存更新、缓存降级等不常见的问题,但却是非常重要的问题,今天谈谈这个话题。 基本看完这两篇,可以对redis有一个比较全面的初步了解,后续我再补充redis相关的实战篇,总结为一个redis系列。 ……继续阅读 »

陈睿 2年前 (2018-12-12) 4986浏览 0评论 8个赞

Redis系列教程(二):详解Redis的存储类型、集群架构、以及应用场景

Redis系列教程(二):详解Redis的存储类型、集群架构、以及应用场景
高并发架构系列 高并发架构系列:数据库主从同步的3种一致性方案实现,及优劣比较 高并发架构系列:Spring Cloud的核心成员、以及架构实现详细介绍 高并发架构系列:服务注册与发现的实现原理、及实现优劣势比较 高并发架构系列:Netty的实现原理、特点与优势、以及适用场景 什么是redis redis是一……继续阅读 »

陈睿 2年前 (2018-11-29) 4012浏览 2评论 8个赞

MySQL数据库主从同步的3种一致性方案实现,及优劣比较

MySQL数据库主从同步的3种一致性方案实现,及优劣比较
数据主从同步的由来 互联网的很多业务,特别是在高并发的场景下,基本都是读远远大于写,如果数据库读和写的压力都同在一台主机上,这显然不太合理。 于是,把一台数据库主机分为单独的一台写主库(主要负责写操作),而把读的数据库压力分配给读的从库,而且读从库可以变为多台,这就是读写分离的典型场景如下: 为了进一步的降低数据库端的压力(高并发的瓶……继续阅读 »

陈睿 2年前 (2018-11-27) 6533浏览 0评论 13个赞

最全MySQL面试60题和答案

最全MySQL面试60题和答案
Mysql中有哪几种锁? 1.表级锁:开销小,加锁快;不会出现死锁;锁定粒度大,发生锁冲突的概率最高,并发度最低。 2.行级锁:开销大,加锁慢;会出现死锁;锁定粒度最小,发生锁冲突的概率最低,并发度也最高。 3. 页面锁:开销和加锁时间界于表锁和行锁之间;会出现死锁;锁定粒度界于表锁和行锁之间,并发度一般。 Mysql中有哪些不……继续阅读 »

陈睿 2年前 (2018-11-15) 9662浏览 1评论 31个赞

阿里P8架构师谈:分布式系统全局唯一ID简介、特点、5种生成方式

阿里P8架构师谈:分布式系统全局唯一ID简介、特点、5种生成方式
什么是分布式系统唯一ID 在复杂分布式系统中,往往需要对大量的数据和消息进行唯一标识。 如在金融、电商、支付、等产品的系统中,数据日渐增长,对数据分库分表后需要有一个唯一ID来标识一条数据或消息,数据库的自增ID显然不能满足需求,此时一个能够生成全局唯一ID的系统是非常必要的。 分布式系统唯一ID的特点 ……继续阅读 »

陈睿 2年前 (2018-10-31) 5165浏览 1评论 8个赞

阿里P8架构师谈:大数据架构设计(文章合集)

阿里P8架构师谈:大数据架构设计(文章合集)
架构师进阶有一块很重要的内容,就是需要掌握大数据的架构设计,主要涵括: MySQL等关系式数据库,需要掌握数据库的索引、慢SQL、以及长事务的优化等。 需要掌握非关系式数据库(NoSQL)的选型,以及使用场景,以及与MySQL等的优劣势比较等。 分布式数据的一致性等问题,以及分布式事务。 考……继续阅读 »

陈睿 2年前 (2018-10-24) 2726浏览 0评论 4个赞

阿里P8架构师谈:MySQL数据库的索引原理、与慢SQL优化的5大原则

阿里P8架构师谈:MySQL数据库的索引原理、与慢SQL优化的5大原则
MySQL凭借着出色的性能、低廉的成本、丰富的资源,已经成为绝大多数互联网公司的首选关系型数据库。虽然性能出色,但所谓“好马配好鞍”,如何能够更好的使用它,已经成为开发工程师的必修课,我们经常会从职位描述上看到诸如“精通MySQL”、“SQL语句优化”、“了解数据库原理”等要求。 我们知道一般的应用系统,读写比例在10:1左右,而且插入操作和一般的更新操作很少……继续阅读 »

陈睿 2年前 (2018-10-13) 4253浏览 3评论 14个赞

阿里P8架构师谈:架构设计之数据库垂直、水平拆分六大原则

阿里P8架构师谈:架构设计之数据库垂直、水平拆分六大原则
数据拆分前其实是要首先做准备工作的,然后才是开始数据拆分,我先讲拆分前需要做的事情: 第一步:采用分布式缓存redis、memcached等降低对数据库的读操作。 第二步:如果缓存使用过后,数据库访问量还是非常大,可以考虑数据库读、写分离原则。 第三步:当我们使用读写分离、缓存后,数据库的压力还是很大的时候,这就需要使用到数据库拆……继续阅读 »

陈睿 2年前 (2018-10-06) 2381浏览 1评论 13个赞

Redis系列教程(一):Redis缓存的设计、性能、应用与数据集群同步

Redis系列教程(一):Redis缓存的设计、性能、应用与数据集群同步
Redis 是完全开源免费的,遵守BSD协议,是一个高性能的key-value数据库。Redis本质上是一个Key-Value类型的内存数据库,很像memcached,整个数据库统统加载在内存当中进行操作,定期通过异步操作把数据库数据flush到硬盘上进行保存。 因为是纯内存操作,Redis的性能非常出色,每秒可以处理超过 10万次读写操作,是已知性能最快的……继续阅读 »

陈睿 2年前 (2018-10-04) 2574浏览 0评论 5个赞

阿里P8架构师谈:MySQL有哪些存储引擎,各自的优缺点,应用场景

阿里P8架构师谈:MySQL有哪些存储引擎,各自的优缺点,应用场景
经常面试都会问到MYSQL有哪些存储引擎,以及各自的优缺点。今天主要分享常见的存储引擎:MyISAM、InnoDB、MERGE、MEMORY(HEAP)、BDB(BerkeleyDB)等,以及最常用的MyISAM与InnoDB两个引擎 ,文章尾部有两者的详细比较。 MySQL常用存储引擎介绍 1.InnoDB 引擎(MySQL5.5以后默认使用) M……继续阅读 »

陈睿 2年前 (2018-09-27) 2683浏览 0评论 2个赞

阿里P8架构师谈:MySQL行锁、表锁、悲观锁、乐观锁的特点与应用

阿里P8架构师谈:MySQL行锁、表锁、悲观锁、乐观锁的特点与应用
我们在操作数据库的时候,可能会由于并发问题而引起的数据的不一致性(数据冲突)。如何保证数据并发访问的一致性、有效性,是所有数据库必须解决的一个问题,锁的冲突也是影响数据库并发访问性能的一个重要因素,从这一角度来说,锁对于数据库而言就显得尤为重要。 MySQL锁概述 相对其他数据库而言,MySQL的锁机制比较简单,其最显著的特点是不同的存储引擎支持不同的锁机制。 ……继续阅读 »

陈睿 2年前 (2018-09-15) 3899浏览 1评论 13个赞

阿里P8架构师谈:MySQL慢查询优化、索引优化、以及表等优化总结

阿里P8架构师谈:MySQL慢查询优化、索引优化、以及表等优化总结
MySQL优化概述 MySQL数据库常见的两个瓶颈是:CPU和I/O的瓶颈。 CPU在饱和的时候一般发生在数据装入内存或从磁盘上读取数据时候。 磁盘I/O瓶颈发生在装入数据远大于内存容量的时候,如果应用分布在网络上,那么查询量相当大的时候那么平瓶颈就会出现在网络上。 我们可以用mpstat, iostat, sar和vmstat来查看系……继续阅读 »

陈睿 2年前 (2018-09-12) 6228浏览 0评论 13个赞

阿里P8架构师谈:MongoDB、Hbase、Redis等NoSQL优劣势、应用场景

阿里P8架构师谈:MongoDB、Hbase、Redis等NoSQL优劣势、应用场景
NoSQL的四大种类 NoSQL数据库在整个数据库领域的江湖地位已经不言而喻。在大数据时代,虽然RDBMS很优秀,但是面对快速增长的数据规模和日渐复杂的数据模型,RDBMS渐渐力不从心,无法应对很多数据库处理任务,这时NoSQL凭借易扩展、大数据量和高性能以及灵活的数据模型成功的在数据库领域站稳了脚跟。 目前大家基本认同将NoSQL数据库分为四大类:键值存储数据库……继续阅读 »

陈睿 2年前 (2018-08-28) 2457浏览 0评论 6个赞

阿里P8架构师谈:NoSQL和SQL的区别,NoSQL的使用场景和选型比较

阿里P8架构师谈:NoSQL和SQL的区别,NoSQL的使用场景和选型比较
什么是NoSQL NoSQL,指的是非关系型的数据库。NoSQL有时也称作Not Only SQL的缩写,是对不同于传统的关系型数据库的数据库管理系统的统称,它具有非关系型、分布式、不提供ACID的数据库设计模式等特征。 NoSQL用于超大规模数据的存储。(例如谷歌或Facebook每天为他们的用户收集万亿比特的数据)。这些类型的数据存储不需要固定的模式,无需多余……继续阅读 »

陈睿 2年前 (2018-08-27) 1973浏览 0评论 1个赞

阿里P8架构师谈:数据库分库分表、读写分离的原理实现,使用场景

阿里P8架构师谈:数据库分库分表、读写分离的原理实现,使用场景
为什么要分库分表和读写分离? 类似淘宝网这样的网站,海量数据的存储和访问成为了系统设计的瓶颈问题,日益增长的业务数据,无疑对数据库造成了相当大的负载,同时对于系统的稳定性和扩展性提出很高的要求。随着时间和业务的发展,数据库中的表会越来越多,表中的数据量也会越来越大,相应地,数据操作的开销也会越来越大;另外,无论怎样升级硬件资源,单台服务器的资源(CPU、磁盘、内存、网络IO、事……继续阅读 »

陈睿 2年前 (2018-08-26) 5571浏览 0评论 4个赞

一篇文章详解大数据技术和应用场景

一篇文章详解大数据技术和应用场景
“ 本文作者 陈睿 ,优知学院创始人 新技术、新趋势往往趋之若鹜却又很难说的透彻,希望这篇文章能让大家完整的理解什么是大数据:该篇包含:大数据、技术、场景应用以及大数据的岗位。 什么是大数据 说起大数据,估计大家都觉得只听过概念,但是具体是什么东西,怎么定义,没有一个标准的东西,因为在我们的印象中好像很多公司都……继续阅读 »

陈睿 2年前 (2018-06-11) 1081浏览 0评论 1个赞