- 博客(83)
- 资源 (1)
- 收藏
- 关注
原创 2020-11-12
一、事务的基本要素(ACID) 1、原子性(Atomicity):事务开始后所有操作,要么全部做完,要么全部不做,不可能停滞在中间环节。事务执行过程中出错,会回滚到事务开始前的状态,所有的操作就像没有发生一样。也就是说事务是一个不可分割的整体,就像化学中学过的原子,是物质构成的基本单位。 2、一致性(Consistency):事务开始前和结束后,数据库的完整性约束没有被破坏 。比如A向B转账,不可能A扣了钱,B却没收到。 3、隔离性(Isolation):同一时间,只允许一个事务请求同.
2020-11-12 19:29:08
167
原创 不停机迁移数据库方案
一、方案思路使用xtrabackup做全量备份,然后使用主从复制进行同步https://www.percona.com/doc/percona-xtrabackup/2.4/installation/yum_repo.html参考博客:https://segmentfault.com/a/1190000003063874?utm_medium=referral&utm_sour...
2019-06-20 11:08:08
4203
1
原创 Redis相关
一、redis命中率计算keyspace_hits / (keyspace_hits +keyspace_misses) * 100%好的缓存策略命中率达到95%以上二、redis过期策略1、定时删除含义:在设置key的过期时间的同时,为该key创建一个定时器,让定时器在key的过期时间来临时,对key进行删除优点:保证内存被尽快释放缺点:若过期key很多,删除这些key会占...
2019-05-20 18:35:41
254
原创 centos7.2源码编译安装mysql5.7.24
一、安装依赖yum -y install make gcc-c++ cmake bison-devel ncurses-devel二、下载源码包wget https://cdn.mysql.com//Downloads/MySQL-5.7/mysql-boost-5.7.24.tar.gz解压,进入到目录三、编译安装cmake -DCMAKE_INSTALL_PREF...
2018-12-20 19:07:18
1228
原创 ELK日志收集系统搭建问题总结
1、kafka若是与ELK不在同一台服务器上,kafka要配置外网消费者,配置项如下:在kafka的配置文件中:server.properties PLAINTEXT://ip:9092 2、logstash 使用官网yum安装,消费配置文件一定要放在/etc/logstash/conf.d 中才能生效3、kibana 设置:server.host: "0.0.0.0" 才能在...
2018-12-14 10:07:48
356
原创 rabbitMQ的PHP代码实现
1、生产者public function push() { try { $conf = [ 'host' => '127.0.0.1', 'port' => 5672, 'user' => 'admin', ...
2018-11-26 16:19:12
547
转载 rabbitMQ入门
基本操作:# 查看当前所有用户$ sudo rabbitmqctl list_users # 查看默认guest用户的权限$ sudo rabbitmqctl list_user_permissions guest # 由于RabbitMQ默认的账号用户名和密码都是guest。为了安全起见, 先删掉默认用户$ sudo rabbitmqctl delete_user guest...
2018-11-26 14:18:02
166
原创 RabbitMQ以及PHP扩展安装
一、安装rabbitMQ1、由于rabbitMQ是erlang变现的,首先,安装erlang环境官方提供的只运行rabbitMQ环境的erlang:https://github.com/rabbitmq/erlang-rpm2、下载rpm包到服务器上:位置:/usr/local/srchttp://www.rabbitmq.com/install-rpm.html安装命令:...
2018-11-25 16:50:44
606
原创 二叉树、平衡二叉树、B- tree、B+ tree 基本概念
1 二叉树 二叉树binary tree是指每个节点最多含有两个子树的树结构。特点: 1.所有节点最多拥有两个子节点,即度不大于2 2.左子树的键值小于根的键值,右子树的键值大于根的键值。因为二叉树只是定义了简单的结构,所以存在多种深度可能,导致二叉树的效率低,所以引入了平衡二叉树。2 平衡二叉树2.1 avl树 ...
2018-11-14 18:43:50
272
原创 PHP排序算法
1、冒泡排序/** * 冒泡排序 * 先找出最大的放在最后面 * * @param $arr * * @return mixed */function bubbleSort($arr) { $length = count($arr); for ($i = 1; $i < $length; $i++) { for ($j = 0; $j &...
2018-11-13 15:28:14
168
原创 几个算法实现
1、杨辉三角function triangle($n) { for ($i = 0; $i < $n; $i++) { for ($j = 0; $j <= $i; $j++) { if ($j == 0 || $i == $j) { $arr[$i][$j] = 1; } e...
2018-11-12 17:38:44
185
原创 秒杀方案实现
1、根据库存,生成库存链表public function createList() { $key = "order_list:"; //库存数 $num = 100; for ($i = 0; $i < $num; $i++) { $this->redis->lPush($key, 1)...
2018-11-06 18:25:52
234
原创 TCP三次握手和四次挥手以及11种状态
1、三次握手置位概念:根据TCP的包头字段,存在3个重要的标识ACK、SYN、FIN ACK:表示验证字段 SYN:位数置1,表示建立TCP连接 FIN:位数置1,表示断开TCP连接三次握手过程说明: 1、由客户端发送建立TCP连接的请求报文,其中报文中包含seq序列号,是由发送端随机生成的,并且将报文中的SYN字段置为1,表示需要建立TCP连接。(SYN=1,seq=...
2018-09-13 08:30:56
230
原创 mysql事务
一、事务的基本要素(ACID) 1、原子性(Atomicity):事务开始后所有操作,要么全部做完,要么全部不做,不可能停滞在中间环节。事务执行过程中出错,会回滚到事务开始前的状态,所有的操作就像没有发生一样。也就是说事务是一个不可分割的整体,就像化学中学过的原子,是物质构成的基本单位。 2、一致性(Consistency):事务开始前和结束后,数据库的完整性约束没有被破坏 。比如A...
2018-09-12 20:51:54
155
原创 Mysql B-tree索引和哈希索引
MySQL的btree索引和hash索引的区别hash 索引结构的特殊性,其检索效率非常高,索引的检索可以一次定位,不像B-Tree 索引需要从根节点到枝节点,最后才能访问到页节点这样多次的IO访问,所以 Hash 索引的查询效率要远高于 B-Tree 索引。可 能很多人又有疑问了,既然 Hash 索引的效率要比 B-Tree 高很多,为什么大家不都用 Hash 索引而还要使用 B-Tre...
2018-09-12 20:20:14
242
原创 php-fpm、cgi、fastcgi总结
Php-fpm是什么1、cgi、fast-cgi协议cgi的历史早期的webserver只处理html等静态文件,但是随着技术的发展,出现了像php等动态语言。 webserver处理不了了,怎么办呢?那就交给php解释器来处理吧! 交给php解释器处理很好,但是,php解释器如何与webserver进行通信呢?为了解决不同的语言解释器(如php、python解释器)与web...
2018-09-12 17:54:59
616
原创 TCP握手过程和挥手过程
TCP报文首部源端口和目的端口,各占2个字节,分别写入源端口和目的端口; 序号,占4个字节,TCP连接中传送的字节流中的每个字节都按顺序编号。例如,一段报文的序号字段值是 301 ,而携带的数据共有100字段,显然下一个报文段(如果还有的话)的数据序号应该从401开始; 确认号,占4个字节,是期望收到对方下一个报文的第一个数据字节的序号。例如,B收到了A发送过来的报文,其序列号字段...
2018-09-12 16:19:11
4812
1
原创 ELK收集nginx日志
1、ELK介绍 ELK官网:https://www.elastic.co/ 使用zookeeper+logstash:https://blog.51cto.com/tchuairen/18550902、流程 处理流程为:Nginx --syslog--> Rsyslog --omkafka--> Kafka --> Lo...
2018-09-03 11:57:49
1247
原创 搭建git服务器
1、编译安装最新版git及创建用户# 创建一个git用户组和用户,用来运行git服务$ groupadd git$ adduser git -g git禁止git用户登录:修改/etc/passwd文件,修改(注意:如果安装了最新版的git的话一定要用whereis查找一下git-shell的路径,保证路径正确)# 找到这句:git:x:503:503::/home/git:/bin/bash# ...
2018-05-08 11:36:00
218
原创 shell中各种括号的作用()、(())、[]、[[]]、{}
一、小括号,圆括号()1、单小括号 () ①命令组。括号中的命令将会新开一个子shell顺序执行,所以括号中的变量不能够被脚本余下的部分使用。括号中多个命令之间用分号隔开,最后一个命令可以没有分号,各命令和括号之间不必有空格。 ②命令替换。等同于`cmd`,shell扫描一遍命令行,发现了$(cmd)结构,便将$(cmd)中的cmd执行一次,得到其标准输出,再将此输
2018-03-08 17:20:45
255
原创 tcp和udp的区别
TCP UDPTCP与UDP基本区别 1.基于连接与无连接 2.TCP要求系统资源较多,UDP较少; 3.UDP程序结构较简单 4.流模式(TCP)与数据报模式(UDP); 5.TCP保证数据正确性,UDP可能丢包 6.TCP保证数据顺序,UDP不保证 UDP应用场景: 1.面向数据报方式 2.网络数据大多为短消息 3.拥有大量Client 4.对数据安全性无特殊...
2018-03-05 11:45:36
192
原创 Fibonacci(斐波那契)数的两种算法实现
1、递归算法实现,如下: function getNum($n){ if($n == 0 || $n == 1){ return 1; } return getNum($n-1) + getNum($n-2);}代码简单,易懂,但是计算速度很慢,当getNum(50)的时候基本程序就会挂掉第二种递归算法function fn($a,$b,$n){ i...
2018-03-05 10:24:52
1182
原创 http协议和tcp协议总结
1、tcp和http的区别和联系http是应用层协议,是基于tcp的,http主要解决的问题是数据如何包装tcp应用于传输层,主要解决如何数据如何传输的问题2、tcp如何建立连接tcp经过三次握手建立连接1、客户端发送syn(SYN=j)并进入SYN_SEND状态,等待服务器确认2、服务端收到syn包,确认客户端的syn包(ACK=j+1)同时发送自己的syn包(SYN=k)即SYN+ACK包 服...
2018-03-02 09:34:05
1087
原创 LNMP项目部署注意
1、使用LNMP一键安装包时,nginx默认监听的是 php-cgi.sock 如果想要修改监听9000端口 php-fpm.conf中也要同步修改2、报错502基本上跟nginx没有关系,一般是php与nginx不能通信问题3、假如A服务器不能ping通B服务器域名而C服务器可以ping通A服务器域名,B服务器能ping通其他服务器域名则考虑A的DNS配置有问题DNS配置如下:
2017-10-27 11:50:07
2001
原创 centos7 编写防火墙增加和删除端口脚本
#!/bin/bashnum=$#ok=0if [ ${num} != 2 ]then echo 'error:you must input two parmas, first is add or remove, second is port number' exit 0ficase $1 in add) status=$(firewall-cmd --zo
2017-10-23 10:27:34
928
原创 nginx+uwsgi+Django配置
1、nginx 配置简单配置# nginx 代理到 uwsgiserver { listen 8080; server_name localhost; location / { include uwsgi_params; uwsgi_pass 127.0.0.1:8081; index index.htm...
2017-10-19 18:04:28
251
原创 python的一些疑问
禁用安全警告1: import requests from requests.packages.urllib3.exceptions import InsecureRequestWarning requests.packages.urllib3.disable_warnings(InsecureRequestWarning)2: imp
2017-10-16 09:46:54
288
原创 使用uWsgi emperor模式配置多个站点
1、yum -y install epel-release yum -y install uwsgi yum -y install uwsgi-plugin-python2、修改配置文件 vim /etc/uwsgi.ini 如下: [uwsgi]uid = uwsgigid = uwsg
2017-09-30 11:22:46
2410
原创 python代码:图片鉴黄
#!/usr/bin/env python# -*- coding:UTF-8 -*-import sysimport osimport _iofrom collections import namedtuplefrom PIL import Imageclass Nude(object): Skin = namedtuple("Skin", "id skin regi
2017-09-29 17:25:13
3517
原创 nginx+uWsgi访问python项目
一、安装uWsgi1、yum安装 yum -y install uwsgi yum -y install uwsgi-plugin-python如果找不到安装包解决如下: yum -y install epel-release安装完之后清除缓存 yum clean all uWSGI配置文件如下[uwsgi]uid = uwsgigid = uwsgipi...
2017-09-29 16:34:14
2316
原创 简单监测服务器的shell脚本
1、编写shell脚本如下:#!/bin/bash# chkconfig: 2345 10 90 # description:监测linux服务器cpu、内存、磁盘#cpu平均负载阀值CPU_AVERAGE_LOAD=0.7#剩余的最少警告的阀值MIN_WARNING=20#超过最多警告的阀值MAX_WARNING=90#监测cpu负载monitor_cpu(){
2017-09-21 17:11:22
408
原创 Laravel 引入没有命名空间的第三方类库
1、首先在app\Libraries目录下创建一个新的文件夹,命名libs(可自定义)2、(可选)考虑到后面可能会引用很多库,so,在libs下再创建一个phpQuery文件夹3、找到根目录下的composer.json文件4、找到composer.json中定义的(看我备注)"autoload": { "classmap": [ "data
2017-08-07 19:24:32
3025
原创 nginx 日志配置
log_format main '$remote_addr $remote_user [$time_local] "$request" $http_host ' '$status $upstream_status $body_bytes_sent "$http_referer" ' '"$http_user_agent
2017-06-28 11:05:57
352
原创 Nginx fastcgi_param 详解
fastcgi_param SCRIPT_FILENAME $document_root$fastcgi_script_name;#脚本文件请求的路径fastcgi_param QUERY_STRING $query_string; #请求的参数;如?app=123fastcgi_param REQUEST_METHOD $request_meth
2017-06-15 11:30:28
894
原创 使用siege进行web压力测试
1、下载siege http://download.joedog.org/siege/siege-latest.tar.gz2、解压 tar -zxvf siege-latest.tar.gz 3、配置、编译、安装 ./configure; make && make install4、参数详解 -C,或-config 在屏幕上打印显示出当
2017-05-27 16:53:35
1785
原创 keepalived+nginx实现双机热备(防止单点故障)
1、准备两台虚拟机 192.168.91.11(主)192.168.91.12(从)2、安装软件 ipvsadm keepalived nginx3、关闭selinux和防火墙4、配置keepalived.conf如下:! Configuration File for keepalivedglobal_defs {}vrrp
2017-05-26 18:35:10
541
原创 LVS+keepalived实现双机热备和负载均衡
1、准备四台虚拟机:192.168.159.11(LVS主)、192.168.159.12(LVS从)192.168.159.15(web)、192.168.159.16(web)虚拟ip即VIP:192.168.159.1002、在LVS机器上安装软件(1)、安装ipvsadm yum -y install ipvsadm (2) 、安装keepalived
2017-05-25 22:39:13
611
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人