自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(60)
  • 资源 (1)
  • 收藏
  • 关注

原创 1、一键安装高可用K8S集群脚本

一键安装高可用K8S集群脚本

2022-06-13 16:34:21 1503 1

原创 责任链模式

责任链模式在现实生活中,一个事件需要经过多个对象处理是很常见的场景。例如,采购审批流程、请假流程等。公司员工请假,可批假的领导有部门负责人、副总经理、总经理等,但每个领导能批准的天数不同,员工必须根据需要请假的天数去找不同的领导签名,也就是说员工必须记住每个领导的姓名、电话和地址等信息,这无疑增加了难度。责任链(Chain of Responsibility)模式的定义:为了避免请求发送者与多个请求处理者耦合在一起,于是将所有请求的处理者通过前一对象记住其下一个对象的引用而连成一条链;当有请求发生时,

2021-10-20 18:26:44 179

转载 一招教你无阻塞读写Golang channel

无论是无缓冲通道,还是有缓冲通道,都存在阻塞的情况,教你一招再也不遇到channel阻塞的问题。这篇文章会介绍,哪些情况会存在阻塞,以及如何使用select解决阻塞。阻塞场景阻塞场景共4个,有缓存和无缓冲各2个。无缓冲通道的特点是,发送的数据需要被读取后,发送才会完成,它阻塞场景:通道中无数据,但执行读通道。通道中无数据,向通道写数据,但无协程读取。// 场景1func ReadNoDataFromNoBufCh() { noBufCh := make(chan int) <

2021-09-29 14:20:08 688

转载 Golang调度器

为什么在内核的线程调度器之外Go还需要一个自己的调度器?POSIX线程API是对已有的UNIX进程模型的逻辑扩展,因此线程和进程在很多方面都类似。例如,线程有自己的信号掩码,可以分配CPU affinity(进程要在某个给定的 CPU 上尽量长时间地运行而不被迁移到其他处理器的倾向性),可以放入 cgroups中,并且可以查询它们使用的资源。但是这些特性对于Go程序来说都是不必要的开销。另外一个问题是基于Go语言模型,OS的调度决定并不一定合理。例如,Go的垃圾回收需要内存处于一致性的状态,这需要所有

2021-09-27 09:25:56 232

转载 深入Go的Map使用和实现原理

开篇语Map是一种常用的kv数据结构,程序设计中经常使用,且作为一种最基础的数据结构,很多编程语言本身提供的api都会有实现,Go也不例外,今天我们将从一下三个方面为大家分析Go中的Map。什么是Map?Go中如何使用Map?以及Go的Map实现机制是什么样?希望通过这几个方面的讲解,让大家真正理解Go的Map使用和实现。什么是Mapkey,value存储最通俗的话说Map是一种通过key来获取value的一个数据结构,其底层存储方式为数组,在存储时key不能重复,当key重复时,v

2021-09-26 19:22:20 597

原创 elasticsearch入门使用

安装创建统一docker网路docker network create -d bridge webdocker-composer方式安装version: '3'services: elasticsearch: image: elasticsearch:7.11.2 container_name: es restart: always privileged: true ports: #端口映射 - 9200:

2021-03-31 14:55:41 111

转载 面试官:MYSQL单表数据达2000万性能严重下降,为什么

原文:https://zhuanlan.zhihu.com/p/355302417不知从什么时候开始,有着MySQL单表数据量超过2000万性能急剧下降的说法。在中国互联网技术圈流传着这么一个说法:MySQL 单表数据量大于 2000 万行,性能会明显下降。事实上,这个传闻据说最早起源于百度。具体情况大概是这样的,当年的 DBA 测试 MySQL性能时发现,当单表的量在 2000 万行量级的时候,SQL 操作的性能急剧下降,因此,结论由此而来。然后又据说百度的工程师流动到业界的其它公司,随之也带去了这个

2021-03-10 08:43:25 2626

转载 数据库两个神器【索引和锁】

前言只有光头才能变强索引和锁在数据库中可以说是非常重要的知识点了,在面试中也会经常会被问到的。本文力求简单讲清每个知识点,希望大家看完能有所收获声明:如果没有说明具体的数据库和存储引擎,默认指的是MySQL中的InnoDB存储引擎一、索引在之前,我对索引有以下的认知:索引可以加快数据库的检索速度表经常进行INSERT/UPDATE/DELETE操作就不要建立索引了,换言之:索引会降低插入、删除、修改等维护任务的速度。索引需要占物理和数据空间。了解过索引的最左匹配原则知道索引的分类:聚集

2021-03-09 08:59:59 333

转载 MySQL中VARCHAR最大长度是多少?CHAR和VARCHAR有哪些区别?

本文转载于:https://learn.blog.csdn.net/article/details/103341778如果要了解MySQL其他类型长度,可以参考《MySQL字段长度、取值范围、存储开销》以我多年经验来看,VARCHAR的最大长度、字符串类型选择,用MySQL的人中十之七八是不清楚的。网上文章鱼目混珠,以讹传讹居多。本文不止介绍了原理,还提供了案例手把手教你自己分析,彻...

2020-04-27 14:40:13 566

转载 漫画 | 什么是跳跃表?

这是发生在很多年以前的故事......几天以前......几天之后......拍卖行的商品总数量有几十万件,对应数据库商品表的几十万条记录。如果是按照商品名称精确查询还好办,可以直接从数据库查出来,最多也就上百条记录。如果是没有商品名称的全量查询怎么办?总不可能把数据库里的所有记录全查出来吧,而且还要支持不同字段的排序。所以,只能提前在内存中存储有序的全量商品集合,每一种排序方式都保存成独立的集合...

2019-02-14 11:09:40 1268

原创 mysql集群技术:主主复制

mysql集群技术:主主复制主从复制,2台服务器地位有差别,一主一从. 从服务器一是起到备份作用,一是起到分担查询压力的作用.接下来的配置,2台服务器之间,没有明显的地位差距, 两者可以同步对方的内容. 一般的格局如下图: 两台服务器相互复制Created with Raphaël 2.1.0主库A主库A主库B主库B主库A更新,则主库B也更新主库A与主库B的地位是平等的主库B更新

2017-12-04 10:51:11 354

原创 mysql集群技术:主从复制,读写分离

服务器端读写分离的具体技术1 数据库集群技术集群由 3 个概念2 数据库复制 replication数据库复制 replication 的实现原理实现步骤 具体实施配置主服务器配置从服务器常用语句 主服务器的日志格式用哪种好 调试方法一 重置slave方法二方法三 重设同步日志件及位置1查看slave状态2暂停slave3到主服务器上查看主机状态4修改从服务同步

2017-12-01 15:09:41 2671

原创 composer切换国内镜像

切换国内镜像源全局配置composer config -g repo.packagist composer https://packagist.phpcomposer.com查看配置$ composer config -l[repositories.packagist.org.type] composer[repositories.packagist.org.url] https://packa

2017-11-30 17:09:40 3845

原创 composer安装

安装Liunx下安装curl -sS https://getcomposer.org/installer | phpmv composer.phar /usr/local/bin/composerWindows下安装下载并且运行 Composer-Setup.exe,它将安装最新版本的 Composer ,并设置好系统的环境变量,因此你可以在任何目录下直接使用 composer 命令。查看安装版本c

2017-11-30 16:55:26 257

原创 ssh别名免密登录

编辑~/.ssh/config文件Host aliasNameHostName 192.168.1.188Port 22User root默认用~/.ssh/id_rsa登录 改用其他私钥登录,则添加以下语句 IdentityFile ~/.ssh/id_rsa_2048

2017-10-31 14:08:02 618

原创 Nginx之日志管理

解析日志格式我们观察nginx的server段,可以看到如下类似信息 access_log logs/host.access.log main; 这说明 该server, 它的访问日志的文件是 logs/host.access.log , 使用的格式”main”格式. 除了main格式,我们可以自定义其他格式.main格式是什么?main默认的日志格式: log_f

2017-07-20 13:34:47 423

原创 Nginx之变量

Nginx之变量 变量 意义 $status HTTP状态 $body_bytes_sent 请求体body长度 $http_referer referer来源信息 $http_user_agent http-user-agent用户代理/蜘蛛 $http_x_forwarded_for 在经过代理时,代理把你的本来IP加在此头信息中,传输你的原始IP

2017-07-20 13:24:03 524

原创 MYSQL之show status详解

MySQL运行状态show status中文详解 状态名 作用域 详细解释 Aborted_clients Global 由于客户端没有正确关闭连接导致客户端终止而中断的连接数 Aborted_connects Global 试图连接到MySQL服务器而失败的连接数 Binlog_cache_disk_use Global 使用临时二进制日志缓存但超过b

2017-06-21 10:48:46 530

原创 MYSQL性能分析之show profiles

打开profile分析语句show variables like ‘%profiling%’; #on开off关 开启 set profiling=on;mysql> show variables like 'profiling';+---------------+-------+| Variable_name | Value |+---------------+-------+| pr

2017-06-21 10:32:56 652

原创 MYSQL性能分析之SHOW PROCESSLIST

SHOW PROCESSLIST命令 详解SHOW PROCESSLIST显示哪些线程正在运行。可以帮助识别出有问题的查询语句,两种方式使用这个命令。 如果有 SUPER 权限,则可以看到全部的线程,否则,只能看到自己发起的线程(这是指,当前对应的 MySQL 帐户运行的线程)。 show processlist;只列出前100条,如果想全列出请使用show full processlist;

2017-06-21 10:29:23 2429

原创 在服务器上搭建 Git仓库

安装Git[root@localhost ~]# yum install -y git创建一个git用户,用来运行git服务[root@localhost ~]# adduser git禁用shell登录注,出于安全考虑,创建的git用户不允许登录shell,这可以通过编辑/etc/passwd文件完成。找到类似下面的一行,改为:[root@git ~]# vim /etc/passwdgit:x

2017-05-09 14:03:11 2916

原创 redis之set 集合命令详解

集合 set 相关命令sadd key value1 value2作用 往集合key中增加元素srem value1 value2spop keysrandmember keysismember key valuesmembers keyscard keysmove source dest valuesinter key1 key2 key3sinterstore dest

2017-05-08 10:30:57 1116

原创 Redis之link 链表结构命令详解

lpush key valuerpop keyrpush key valuelpop key 不解释lrange key start stoplrem key count valueltrim key start stoplindex key indexllen keylinsert key afterbefore search valuerpoplpush source d

2017-05-08 09:50:22 535

原创 PHP——CURL方法集合

<?php/** * @param array $option ['url'=>'请求地址','header'=>'请求头(是个数组)','method'=>'请求方法(默认POST)','data'=>'请求数据(是个数组)','cookies'=>'设定 HTTP 请求中"Cookie(格式为数组[key=>value])','userPwd'=>'传递一个连接中需要的用户名和密码,格式为:

2017-03-08 10:17:58 510

原创 Laravel中间件实现原理

1. 什么是中间件?对于一个Web应用来说,在一个请求真正处理前,我们可能会对请求做各种各样的判断,然后才可以让它继续传递到更深层次中。而如果我们用if else这样子来,一旦需要判断的条件越来越来,会使得代码更加难以维护,系统间的耦合会增加,而中间件就可以解决这个问题。我们可以把这些判断独立出来做成中间件,可以很方便的过滤请求。2. Laravel中的中间件在Laravel中,中间件的实现其实是依

2017-02-21 15:40:28 4983

原创 Laravel源码(流程)解析

解析indexphp解析appphpApplication类解读EventServiceProvider解析RoutingServiceProvider解析回到appphp回到indexphp解析AppHttpKernel__construct方法handle方法回到indexphp总结解析index.php 首先我们来看index.php这个人口文件//为Laravel

2017-02-21 15:30:30 1380

原创 Mysql之sql语句优化:explain

explain的列分析select_type 查询类型table 查询针对的表possible_key 可能用到的索引key 最终用的索引key_len 使用的索引的最大长度type列 是指查询的方式 非常重要是分析查数据过程的重要依据ref列 指连接查询时 表之间的字段引用关系rows 是指估计要扫描多少行extraexplain的列分析id: 代表select 语句的编

2017-02-17 09:57:29 1024

转载 Linux下最完整的Samba服务器配置攻略

关于Samba,大家有没有这种感觉,弄了N久丫的死活不喘气儿。找来各种“哥”和“姐”,发现全是“详解…配置专题”,看了半天不知道别个在说什么,好不容易找了个简单的教程,从头到尾跟着做,尼玛,浪费时间精力不说,就是跑不起来。是不是有种吐血的生理反应了。唉,不会写文档的娃,伤不起啊。而本文实现的是Linux和Windows间资源互通的问题:在Linux下架设Samba服务器,在Windows下来访问。

2017-02-15 11:08:43 407

原创 mysql优化 索引优化策略

索引优化策略1索引类型1 B-tree索引2 hash索引2 btree索引的常见误区1 在where条件常用的列上都加上索引2 在多列上建立索引后查询哪个列索引都将发挥作用索引左前缀原则索引优化策略1:索引类型1.1 B-tree索引 注: 名叫btree索引,大的方面看,都用的平衡树,但具体的实现上, 各引擎稍有不同,比如,严格的说,NDB引擎,使用的是T-tree,而Myis

2017-02-14 16:07:49 507

原创 mysql优化 索引基本用法

使用索引为什么会快索引的类型哪些列上适合添加索引索引的使用建立索引添加主键索引查询索引均可下列几种情况下有可能使用到索引下列的表将不使用索引查看索引的使用情况简述mysql四种索引的区别复合索引全文索引案例全文索引查询说起提高数据库性能,索引是最物美价廉的东西了。不用加内存,不用改程序,不用调sql,只要执行个正确的’create index’,查询速度就可能提高百倍千倍,

2017-02-14 16:01:18 269

原创 Redis字符串类型的操作

set key value ex 秒数 px 毫秒数 nx xxmset multi set 一次性设置多个键值get keymget key1 key2 keynsetrange key offset valueappend key valuegetrange key start stopgetset key newvalueincr keyincrby key numb

2017-02-08 16:23:44 443

原创 多服务器共享Session的解决方案

问题为了满足足够大的应用,满足更多的客户,于是我们架设了N台Web服务器(N>=2),在多台Web服务器的情况下,我们会涉及到一个问题:用户登陆一台服务器以后,如果在跨越到另一台服务器的时候能够继续使用客户的Session?1、写客户端Cookie的方式把原来存储在服务器磁盘上的session数据存储到客户端的cookie中去。(一般是把session数据按照自己定义的加密规则(如:采用DES、RS

2017-02-07 15:28:59 5928

原创 Redis对于key的操作命令(附PHP代码)

Redis对于key的操作命令del key1 key2 Keyn作用 删除1个或多个键rename key newkey作用 给key赋一个新的key名renamenx key newkey作用 把key改名为newkeymove key dbkeys pattern 查询相应的keyrandomkey 返回随机keyexists key判断key是否存在返回10type key

2017-02-07 11:10:08 5875

原创 redis-配置文件详解

==配置文件全解=====基本配置daemonize no 是否以后台进程启动databases 16 创建database的数量(默认选中的是database 0)save 900 1 #刷新快照到硬盘中,必须满足两者要求才会触发,即900秒之后至少1个关键字发生变化。save 300 10 #必须是300秒之后至少10个关键字发生变化。save 60 10000 #必须是60秒

2017-02-06 11:15:09 289

原创 liunx之sed命令详解

简介使用语法常用选项option可选常用命令command实例a 追加追加指定单行范围匹配追加追加指定正则匹配行i 插入c 取代取代指定单行范围匹配替换正则匹配替换s 替换正则表达式后向引用d 删除删除指定单行范围匹配删除正则匹配删除p 打印范围匹配打印正则匹配打印简介sed全称是:Stream EDitor,是一个很好的文件处理工具使用语法sed [option]

2017-02-04 16:50:31 450

原创 mysql事务(Transaction)介绍

什么是事务事务和锁提交事务回退事务mysql 数据库控制台事务的几个重要操作提交或回滚事务的特性1原子性Atomicity3隔离性Isolation4持久性Durability隔离级别什么是事务事务用于保证数据的一致性,它由一组相关的dml语句组成,该组的dml语句要么全部成功,要么全部失败。如:网上转账就是典型的要用事务来处理,用以保证数据的一致性。事务和锁当执行事务操作时(d

2017-01-22 15:23:57 2196

原创 mysql 用户管理和权限设置

1user表中host列的值的意义2用户管理查看创建直接创建并赋权限 推荐创建 identified by 会将纯文本密码加密作为散列值存储直接向数据表添加修改更改密码删除3权限管理查看用户权限赋予用户权限4 回收权限最后刷新权限1、user表中host列的值的意义% 匹配所有主机localhost localhost不会被解析成IP地址,直接

2017-01-22 09:55:02 377

原创 redis介绍及redis源码安装

redis是什么:Redis is an open source, BSD licensed, advanced key-value store. It is often referred to as a data structure server since keys can contain strings, hashes, lists, sets and sorted sets. redis是

2017-01-20 17:13:07 419

原创 Nginx反向代理服务器+负载均衡

nginx反向代理服务器+负载均衡 用nginx做反向代理和负载均衡非常简单, 支持两个用法 1个proxy, 1个upstream,分别用来做反向代理,和负载均衡 以反向代理为例, nginx不自己处理php的相关请求,而是把php的相关请求转发给apache来处理.proxy反向代理server {listen 80; #监听端口server_name localohst; #监听

2017-01-20 16:57:00 598

原创 VIM(VI)常用命令思维导图

命令删除(剪贴)行删除(剪贴)D:(相当于 d$) 删除当前光标到行尾 d^:删至行首 dd :删除当前行 d**n**G: 删除第n行到当前行 dG :删除当前行到最后一行 S :删除当前行,并处于可编辑状态 C :删除到行尾,并处于可编辑状态 :n,m d:将第n行到第m行的内容删除字符删除(剪贴)x向后删除一个字符 n**x向后删除**n个字符 X向前删除一个字符 n*

2017-01-20 15:23:59 2240

地区四级联动(省-市-区-街道)

地区四级联动(省-市-区-街道) 包含国内所有的城市,细化到街道

2018-06-06

空空如也

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

TA关注的人

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