自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+

晨曦

兴趣使然

  • 博客(15)
  • 收藏
  • 关注

原创 Elasticsearch7.x单机安装部署启动

1.下载Elasticsearch欢迎使用Markdown编辑器你好! 这是你第一次使用 Markdown编辑器 所展示的欢迎页。如果你想学习如何使用Markdown编辑器, 可以仔细阅读这篇文章,了解一下Markdown的基本语法知识。新的改变我们对Markdown编辑器进行了一些功能拓展与语法支持,除了标准的Markdown编辑器功能,我们增加了如下几点新功能,帮助你用它写博客:全新的界面设计 ,将会带来全新的写作体验;在创作中心设置你喜爱的代码高亮样式,Markdown 将代码片显示选择

2020-07-11 00:09:43 1507

原创 Nginx并发处理机制

一般情况下并发处理机制有三种:多进程、多线程与异步机制(异步非阻塞)。Nginx的进程分为两类:master进程和worker进程。每个master进程可以生成多个worker进程,所以是多进程的。每个worker进程可以同时处理多个用户请求,每个用户请求会由一个线程来处理,所以是多线程的。worker进程采用的是epoll多路复用机制来对后端服务器进行处理的。当后端服务器返回结果后,后端服务器就会回调epoll多路复用器,由多路复用器对相应的worker进程进行通知。此时,worker进程就会挂起当前

2020-11-17 22:45:05 802

原创 多路复用器(select、poll、epoll)

基本知识先了解“多线程/多线程连接处理模型”在该模型下,一个用户连接请求会由一个内核进程处理,而一个内核进程会创建一个应用程序进程,即app进程来处理连接请求。应用程序在调用IO时,采用的是BIO通讯方式,即应用程序进程在未获取到IO响应之前是处于阻塞状态。该模型的优点是,内核进程不存在对app进程的竞争,一个内核进程对应一个app进程。但弊端也就显而易见了。需要创建过多的app进程,而该创建过程十分消耗系统资源。且一个系统的进程数量是有上限的,所以该模型不能处理高并发的情况。多路复用连接处理模型

2020-11-16 21:44:38 1169

原创 零拷贝(Zero Copy)

基础零拷贝指的是,从一个存储区域到另一个存储区域的copy任务没有CPU参与。零拷贝通常用于网络文件传输,以减少CPU消耗和内存带宽占用,减少用户空间与CPU内核空间的拷贝过程,减少用户上下文与CPU内核上下文间的切换,提高系统效率。用户空间指的是用户可操作的内存缓存区域,CPU内核空间是指仅CPU可操作的寄存器缓存以及内存缓存区域。用户上下文指的是用户状态环境,CPU内核上下文指的是CPU内核状态环境。零拷贝需要DMA控制器的协助。DMA(Direct Memory Access)直接内存存取,是

2020-11-15 23:07:57 320

原创 常见的缓存问题

数据读1.缓存穿透一般的缓存系统,都是按照key去缓存查询,如果不存在对应的value,就应该去后端系统查找(DB等)。如果key对应的value是一定不存在的,并且对该key并发请求量很大,就会对后端系统造成很大的压力。也就是说,对不存在的key进行高并发访问,导致数据库压力瞬间增大,这就叫缓存穿透。解决方案:对查询结果为空的情况也进行缓存,缓存时间设置短一点,或者该key对应的数据insert了之后清理缓存。2.缓存雪崩当服缓存服务器重启或者大量缓存集中在某一个时间段失效,这样失效的时候,

2020-10-12 22:56:45 192

原创 redis主从复制

规则主对外从对内,主可写从不可写主挂,从不可为主主从配置主redis无需配置从redis修改redis.conf# slaveof <masterip> <masterport># 表示当前【从服务器】对应的【主服务器】的IP是192.168.10.135,端口是6379。slaveof 127.0.0.1 6379实现原理redis的主从同步,分为全量同步和增量同步只有从redis服务器第一次连接上主机是全量同步断线重连有可能触发全量同步也有可能是增量同步

2020-09-30 00:12:49 69

原创 redis持久化

redis是一个内存数据库,为了保证数据的持久性,提供了两种方案RDB方式(默认)RDB方式是通过快照(snapshotting)完成的,当符合一定条件时会自动将内存中的数据进行快照并持久化到硬盘。触发快照的时机1.符合自定义配置的快照规则2.执行save或者bgsave命令3.执行flushall命令4.执行主从复制操作(第一次)设置快照规则save多少秒内 数据变了多少save “”:不使用RDB存储redis默认RDB配置:save 900 1:表示15分钟(900秒)内至少

2020-09-29 23:58:52 854

原创 redis缓存策略

最大缓存在redis中允许用户设置最大使用内存大小maxmemory,默认为0,没有指定最大缓存,如果有新数据添加,超过最大内存,则会使redsi崩溃,所以一定要设置。当当redis内存数据集大小上升到一定大小的时候,就会实行数据淘汰策略。淘汰策略redis淘汰策略配置::maxmemory-policy voltile-lru,支持热配置redis提供6种数据淘汰策略:1.volatile-lru:从已设置过期时间的数据集(server.db[i].expires)中挑选最近最少使用的数据淘汰

2020-09-28 21:54:11 152

原创 redis底层数据结构

redis内存模型redis内存统计127.0.0.1:6379> info memory# Memory#redis分配的内存总量,包括虚拟内存(字节)used_memory:727400used_memory_human:710.35K#占操作系统的内存,不包括虚拟内存(字节)used_memory_rss:686368used_memory_rss_human:670.28Kused_memory_peak:727400used_memory_peak_human:710.

2020-09-28 00:55:30 221

原创 redis事务简介

1.redis的事务通过multi、exec、discard、watch和unwatch这四个命令完成2.redis的单个命令都是原子性的,所以这里需要事务性的对象是命令集合3.redis将命令集合序列化并确保处于同一事物的命令集合连续且不被打断的执行4.redis不支持回滚操作5.reidsi是单进程单线程的,所以不会出现线程并发事务命令multi用户标记事务块的开始redis会将后续的命令逐个放入队列中,然后使用exec命令原子化的执行命令序列。exec在一个事务中执行所以先前放入队

2020-09-26 23:02:30 85

原创 Java使用redis事务以及watch实现乐观锁秒杀

import org.springframework.util.CollectionUtils;import redis.clients.jedis.Jedis;import redis.clients.jedis.Transaction;import java.util.List;import java.util.concurrent.ExecutorService;import java.util.concurrent.Executors;public class RedisOptimi

2020-09-26 22:16:03 750

原创 redis6安装

1.安装gccyum -y install centos-release-sclyum -y install devtoolset-9-gcc devtoolset-9-gcc-c++ devtoolset-9-binutilssource /opt/rh/devtoolset-9/enableecho “source /opt/rh/devtoolset-9/enable” >>/etc/profile2.下载rediswget http://download.redis.io/r

2020-09-08 00:24:08 483

原创 MySQL存储引擎(Pluggable Storage Engines),InnoDB和MyISAM存储引擎区别

MySQL存储引擎InnoDB和MyISAM存储引擎区别存储引擎的选择:InnoDB:支持事务处理,支持外键,支持崩溃修复能力和并发控制。如果需要对事务的完整性要求比较高(比如银行),要求实现并发控制(比如售票),那选择InnoDB有很大的优势。如果需要频繁的更新、删除操作的数据库,也可以选择InnoDB,因为支持事务的提交(commit)和回滚(rollback)。MyISAM:插入数据快,空间和内存使用比较低。如果表主要是用于插入新记录和读出记录,那么选择MyISAM能实现处理高效率。如果应

2020-09-02 00:17:48 219

原创 MySQL索引原理介绍

索引介绍索引是什么官方介绍索引是帮助MySQL高效获取数据的数据结构。简单点说,数据库索引好比是一本书前面的目录,能加快数据库的查询速度。索引的优势和劣势优势:可以提高数据检索的效率,降低数据的IO成本,类似于书的目录。通过索引列对数据进行排序,降低数据排序成本,降低了CPU的消耗。被索引的列会自动进行排序,包括【单列索引】和【组合索引】,只是组合索引的排序复杂一些。如果按照索引列的顺序进行排序,对应order by 语句来说,效率就会提高很多。where索引列在存储引擎层处理索引下推IC

2020-09-01 23:35:42 120

原创 B+ TREE和BTREE区别

B+ TREE和BTREE先看这两种数据结构先看B+TREE再看BTREE数据结构示例网站:https://www.cs.usfca.edu/~galles/visualization/Algorithms.html区别1.B树和B+树的最大的区别在于非叶子节点是否存储数据2.B树是非叶子节点和叶子节点都会存储数据3.B+树只有叶子节点才会存储数据,而且存储的数据都是在一行上,并且这些数据都是有指针指向的,也就是有顺序的。...

2020-09-01 22:10:56 641

空空如也

空空如也

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

TA关注的人

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