自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

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

原创 redi:持久化

待完善…

2021-02-06 23:36:44 66

原创 redis持久化存储

待完善…

2021-02-01 11:53:18 60

原创 深入理解redis:数据类型

待完善…

2021-01-25 09:40:21 66

原创 深入理解redis:整体框架

保存在内存的好处是读写很快,毕竟内存的访问速度一般都在百 ns 级别。但是,潜在的风险是一旦掉电,所有的数据都会丢失。 保存在外存,虽然可以避免数据丢失,但是受限于磁盘的慢速读写(通常在几 ms 级别),键值数据库的整体性能会被拉低。 ...

2021-01-17 23:05:11 109

原创 mysql:事务隔离

在 MySQL 中,事务支持是在引擎层实现的。你现在知道,MySQL 是一个支持多引擎的系统,但并不是所有的引擎都支持事务。比如 MySQL 原生的 MyISAM 引擎就不支持事务,这也是 MyISAM 被 InnoDB 取代的重要原因之一。 隔离性与隔离级别 提到事务,你肯定会想到 ACID(Atomicity、Consistency、Isolation、Durability,即原子性、一致性、隔离性、持久性),今天我们就来说说其中 I,也就是“隔离性”。 SQL 标准的事务隔离级别包括:读未提交(

2021-01-11 10:52:41 33

原创 Mysql学习:数据库锁

根据加锁的范围,MySQL 里面的锁大致可以分成全局锁、表级锁和行锁三类。 1.全局锁 全局锁的典型使用场景是,做全库逻辑备份。 官方自带的逻辑备份工具是 mysqldump。当 mysqldump 使用参数–single-transaction 的时候,导数据之前就会启动一个事务,来确保拿到一致性视图。而由于 MVCC 的支持,这个过程中数据是可以正常更新的。 你一定在疑惑,有了这个功能,为什么还需要 FTWRL 呢?一致性读是好,但前提是引擎要支持这个隔离级别。比如,对于 MyISAM 这种不支

2021-01-04 09:45:14 53

原创 普通索引和唯一索引

这个记录要更新的目标页不在内存中。 这时,InnoDB 的处理流程如下:对于唯一索引来说,需要将数据页读入内存,判断到没有冲突,插入这个值,语句执行结束;对于普通索引来说,则是将更新记录在 change buffer,语句执行就结束了。 普通索引使用change buffer,可以减少内存访问,因此优先选择普通索引。 例外: 因为 merge 的时候是真正进行数据更新的时刻,而 change buffer 的主要目的就是将记录的变更动作缓存下来,所以在一个数据页做 merge 之前,change b

2020-12-21 10:42:58 38

原创 netty学习之:多路复用通讯方式

Netty架构按照Reactor模式设计和实现,它的服务端通信序列图如下: 客户端通信序列图如下: Netty 的IO线程NioEventLoop由于聚合了多路复用器Selector,可以同时并发处理成百上千个 客户端 Channel,由于读写操作都是非阻塞的,这就可以充分提升 IO 线程的运行效率,避免由于 频繁IO阻塞导致的线程挂起。 ...

2020-10-16 17:57:02 367

原创 TCP粘包问题

1. 粘包和拆包 产生TCP粘包和拆包问题的主要原因是,操作系统在发送TCP数据的时候,底层会有一个缓冲区,例如1024个字节大小,如果一次请求发送的数据量比较小,没达到缓冲区大小,TCP则会将多个请求合并为同一个请求进行发送,这就形成了粘包问题;如果一次请求发送的数据量比较大,超过了缓冲区大小,TCP就会将其拆分为多次发送,这就是拆包,也就是将一个大的包拆分为多个小包进行发送。 2.解决方案 (1)固定长度法:客户端在发送数据包的时候,每个包都固定长度,比如1024个字节大小,如果客户端发送的数据长

2020-09-29 17:49:28 122

原创 NIO

阻塞与非阻塞:进程在访问某个资源时,是否等待 阻塞:等待资源准备就绪再返回 非阻塞:不等,直接返回,隔一会过来看看 同步与异步:访问数据时,是否等待IO完成 同步:等待 异步:干别的,等着IO通知 NIO:同步非阻塞IO 请求后干别的,一会来查一下,IO操作需要等待 ...

2020-09-04 18:32:55 90

原创 Redis Cluster模式介绍与部署

一、数据分布 redis cluster采用哈希分区规则:离散度好、数据分布业务无关、无法顺序访问 1.节点取余分区:hask(key)%N,N为节点数量 优点:简单,常用于数据库分库分表 缺点:节点数量变化导致数据重新迁移 2.一致性哈希分区:每个节点分配一个token,构成一个哈希环,根据哈希值在环上找到第一个大于等于该哈希值的token节点 优点:节点的变动只影响相邻节点数据 缺点:节点变动导致数据无法移动,节点越小影响范围越大 3.虚拟槽分区 使用哈希函数把数据映射到固定范围的整数

2020-08-14 18:59:58 239

原创 CopyOnWriteArrayList源码解析

ArrayList ArrayList基于数组方式实现,无容量的限制(会扩容) 添加元素时可能要扩容(所以最好预判一下),删除元素时不会减少容量(若希望减少容量,trimToSize()),删除元素时,将删除掉的位置元素置为null,下次gc就会回收这些元素所占的内存空间。 线程不安全 add(int index, E element):添加元素到数组中指定位置的时候,需要将该位置及其后边所有的元素都整块向后复制一位 get(int index):获取指定位置上的元素时,可以通过索引直接获取(O(1))

2020-07-31 16:21:29 155

原创 ElasticSearch学习笔记三:es kibana操作语句

索引基本操作 1.新建索引 PUT employees 2.新建mapping POST /employees/_doc/_mapping { "properties": { "birth_date": { "type": "date", "format": "yyyy-MM-dd HH:mm:ss" }, "emp_no": { "type": "long" }, "first_name": { "type": "text", "fields": { "keyword":

2020-07-24 18:37:09 357

原创 ElasticSearch学习三:安全相关配置

一:集群身份认证与用户鉴权 elasticsearch默认是没有开启任何安全防范措施的,任何人只要知道了IP和端口就可以访问数据。为此,可以通过x-pack插件开启用户身份认证与鉴权功能。 1.安装x-pack 下载安装包x-pack-6.2.3.zip elasticsearch上安装x-pack 在每个es节点上执行 bin/elasticsearch-plugin install file:x-pack-6.2.3.zip kibana上安装x-pack 在安装kibana的机器上执行

2020-07-17 18:38:02 480

原创 ElasticSearch学习笔记二:基本概念

基本概念 近实时(NRT) Elasticsearch是近实时搜索平台,从索引文档到可搜索到这段时间之间存在少许延迟(通常为一秒钟)。 簇 集群是一个或多个节点(服务器)的集合,这些节点一起保存您的全部数据,并在所有节点之间提供联合索引和搜索功能。集群由唯一名称标识,默认情况下为“ elasticsearch”。该名称很重要,因为如果节点被设置为通过其名称加入群集,则该节点只能是群集的一部分。确保不要在不同的环境中重复使用相同的集群名称,否则最终可能会导致节点加入了错误的集群。 节点 ...

2020-07-12 19:41:29 192

原创 ElasticSearch学习笔记一:安装ES,kibana

一.ES安装部署 1.安装ES linux系统安装 1.下载安装包 curl -L -O https://artifacts.elastic.co/downloads/elasticsearch/elasticsearch-7.8.0-linux-x86_64.tar.gz 2.解压 tar -xzvf elasticsearch-7.8.0-linux-x86_64.tar.gz 3.进入目录 cd elasticsearch-7.8.0 4.启动 ./bin/elasticsearch

2020-07-03 18:45:24 328

空空如也

空空如也

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

TA关注的人

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