自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+

淹死的鱼

记录,学习

  • 博客(83)
  • 资源 (1)
  • 收藏
  • 关注

原创 使用javassist修改jar包里class文件

java修改jar包class

2022-06-17 11:06:26 1147 1

原创 2020-11-12

一、事务的基本要素(ACID)  1、原子性(Atomicity):事务开始后所有操作,要么全部做完,要么全部不做,不可能停滞在中间环节。事务执行过程中出错,会回滚到事务开始前的状态,所有的操作就像没有发生一样。也就是说事务是一个不可分割的整体,就像化学中学过的原子,是物质构成的基本单位。  2、一致性(Consistency):事务开始前和结束后,数据库的完整性约束没有被破坏 。比如A向B转账,不可能A扣了钱,B却没收到。   3、隔离性(Isolation):同一时间,只允许一个事务请求同.

2020-11-12 19:29:08 137

原创 数据库库主从复制原理图以及http七层协议图

主从复制七层协议

2020-11-12 19:26:11 166

原创 开始学go

安装:http://www.topgoer.com/配置代理:https://goproxy.io/zh/

2020-05-30 19:04:50 181

原创 不停机迁移数据库方案

一、方案思路使用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 4120 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 226

原创 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 1194

原创 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 318

原创 rabbitMQ的PHP代码实现

1、生产者public function push() { try { $conf = [ 'host' => '127.0.0.1', 'port' => 5672, 'user' => 'admin', ...

2018-11-26 16:19:12 522

转载 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 143

原创 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 571

原创 二叉树、平衡二叉树、B- tree、B+ tree 基本概念

1 二叉树         二叉树binary tree是指每个节点最多含有两个子树的树结构。特点:        1.所有节点最多拥有两个子节点,即度不大于2        2.左子树的键值小于根的键值,右子树的键值大于根的键值。因为二叉树只是定义了简单的结构,所以存在多种深度可能,导致二叉树的效率低,所以引入了平衡二叉树。2 平衡二叉树2.1 avl树       ...

2018-11-14 18:43:50 241

原创 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 144

原创 几个算法实现

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 154

原创 秒杀方案实现

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 211

原创 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 204

原创 mysql事务

一、事务的基本要素(ACID)  1、原子性(Atomicity):事务开始后所有操作,要么全部做完,要么全部不做,不可能停滞在中间环节。事务执行过程中出错,会回滚到事务开始前的状态,所有的操作就像没有发生一样。也就是说事务是一个不可分割的整体,就像化学中学过的原子,是物质构成的基本单位。   2、一致性(Consistency):事务开始前和结束后,数据库的完整性约束没有被破坏 。比如A...

2018-09-12 20:51:54 137

原创 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 218

原创 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 584

原创 TCP握手过程和挥手过程

    TCP报文首部源端口和目的端口,各占2个字节,分别写入源端口和目的端口; 序号,占4个字节,TCP连接中传送的字节流中的每个字节都按顺序编号。例如,一段报文的序号字段值是 301 ,而携带的数据共有100字段,显然下一个报文段(如果还有的话)的数据序号应该从401开始; 确认号,占4个字节,是期望收到对方下一个报文的第一个数据字节的序号。例如,B收到了A发送过来的报文,其序列号字段...

2018-09-12 16:19:11 4758 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 1201

原创 搭建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 198

原创 shell中各种括号的作用()、(())、[]、[[]]、{}

一、小括号,圆括号()1、单小括号 ()   ①命令组。括号中的命令将会新开一个子shell顺序执行,所以括号中的变量不能够被脚本余下的部分使用。括号中多个命令之间用分号隔开,最后一个命令可以没有分号,各命令和括号之间不必有空格。   ②命令替换。等同于`cmd`,shell扫描一遍命令行,发现了$(cmd)结构,便将$(cmd)中的cmd执行一次,得到其标准输出,再将此输

2018-03-08 17:20:45 237

原创 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 173

原创 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 1152

原创 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 1029

原创 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 1967

原创 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 897

原创 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 225

原创 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 223

原创 使用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 2341

原创 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 3454

原创 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 2274

原创 简单监测服务器的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 370

原创 Laravel 引入没有命名空间的第三方类库

1、首先在app\Libraries目录下创建一个新的文件夹,命名libs(可自定义)2、(可选)考虑到后面可能会引用很多库,so,在libs下再创建一个phpQuery文件夹3、找到根目录下的composer.json文件4、找到composer.json中定义的(看我备注)"autoload": { "classmap": [ "data

2017-08-07 19:24:32 2969

原创 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 323

原创 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 864

原创 使用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 1764

原创 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 502

原创 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 581

redis启动脚本

redis启动脚本

2016-03-16

空空如也

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

TA关注的人

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