自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+

落白

千里之行,始于足下

  • 博客(89)
  • 资源 (4)
  • 收藏
  • 关注

原创 php对mysql pdo多数据库连接类简易封装

<?php/** * pdo处理mysql数据 * Class Mysql */class MysqlConnection{ const PARAM_PREFIX = ':qp'; private $pdo; private $dsn; private function __construct($dbConfig) { try{ $host = $dbConfig['host']; .

2021-11-02 22:49:54 264

原创 redis脚本命令执行(redis.call)

1、redis-cli命令行中执行:# 调用redis命令设置缓存# 不传参数eval "return redis.call('set', 'name1', 'Tom')" 0# 传入1个值参数eval "return redis.call('set', 'name2', ARGV[1])" 0 "Tom"# 传入1个键名参数和1个值参数eval "return redis.call('set', KEYS[1], ARGV[1])" 1 "name3" "Tom"2、linux命

2021-07-26 21:03:16 10628

原创 redis缓存穿透、击穿和雪崩三大问题

1、缓存穿透:一般指缓存和数据库都查找不到指定数据,这种查询操作无意义,同时增加了响应耗时和数据库的查询压力常见解决方案: a、缓存中设置key值为null,缺点是随着量级增长占用的内存空间越来越大 b、接口层添加参数校验,规避一些无效参数查询,缺点是不够灵活、不满足复杂场景 c、使用布隆过滤器,维护一个有效key的map,如果检测出map中存在,则继续查询2、缓存击穿:一般指缓存中查不到而数据库表存在该数据,某些热点数据过期失效等会造成数据...

2021-07-23 20:43:42 200

原创 MySQL慢查询

一、查看慢查询信息1. 慢查询时长和日志的设置,mysql慢查询的sql语句执行时长默认值是10s 查看当前慢查询设定的时长: show variables like 'long_query_time'; 设置会话或全局级别的慢查询时间为2s,默认为会话级别的设置: set[session | global] long_query_time=2;...

2021-07-23 12:34:37 1178 1

原创 MySQL主主复制

一、编辑mysql配置文件设置相关参数和配置授权用户主库1:(192.168.16.3:3306) 编辑配置文件,然后重启服务[mysqld]log_error=/var/log/mysql/error.loglog-bin=mysql-bin # 开机bin-logserver-id=1 auto_increment_increment=2 # 自增键步长(根据主主数量配置,防止复制时出现主键冲突)auto_...

2021-07-13 12:00:17 277 1

原创 MySQL主从复制和读写分离

Mysql主从复制

2021-07-12 23:30:00 220 2

原创 redis主从复制

提到主从,当然就要求2台或2台以上redis实例了,这里按1主1从来配置,使用docker启动2个redis实例:redis-master和redis-slave先修改redis从实例配置文件,添加一行代码masterauth password,这里的password需要配置成主实例的授权密码;然后进入从实例命令行(redis-cli)配置主从授权,如果设置了密码请先输入授权访问密码,然后执行命令:replicaof host port,完成主从配置;...

2021-07-12 15:54:30 111

原创 php对mysql pdo操作的封装(单例模式)

需要先安装pdo_mysql扩展<?php/** * pdo处理mysql数据 * Class Mysql */class MysqlBuilder{ const PARAM_PREFIX = ':qp'; private static $instance; private $pdo; private $dsn; private function __construct($dbConfig) { try{

2021-07-08 13:41:45 459

原创 php实现IoC容器

控制反转(Inversion of Control,缩写为IoC),是面向对象编程中的一种设计原则,可以用来减低计算机代码之间的耦合度。其中最常见的方式叫做依赖注入(Dependency Injection,简称DI),还有一种方式叫“依赖查找”(Dependency Lookup)。通过控制反转,对象在被创建的时候,由一个调控系统内所有对象的外界实体将其所依赖的对象的引用传递给它。也可以说,依赖被注入到对象中。...

2021-07-08 12:38:27 554

原创 shell文件的引入问题探讨

source命令是从 C shell 而来,是bash shell的内置命令,点命令是从Bourne shell而来,是source的别名。在使用效果上,点命令等同于source命令。source和点命令在引入其它shell文件时,会将该shell脚本文件中定义的变量和函数也一并引入到当前入口脚本环境中,相当于合并shell文件执行,外部shell脚本执行的结果也会反应到当前入口脚本中;而路径引入方式不同,会开启子shell来运行外部脚本,执行的结果也不会反映到当前入口脚本中。 ...

2021-07-07 18:55:53 173

原创 shell自定义快捷命令简化操作

例如操作supervisor时,经常需要启动停止和查看任务状态,对于其命令supervisorctl可能有的人会觉得过长,这时我们通过自定义快捷命令映射来解决这个问题方式一:使用别名,编辑shell配置文件, vim ~/.bashrcalias rm='rm -i'alias cp='cp -i'alias mv='mv -i'#添加自定义命令alias supv='/usr/bin/supervisorctl'# Source global definitionsif [ -f

2021-07-07 18:30:47 653

原创 python 3.8版本源码编译安装

安装脚本(centos环境):!#!/usr/bin/env bashyum install -y wgetmkdir -p /ws/src && cd $_# 安装相关依赖yum install -y zlib-devel bzip2-devel ncurses-devel readline-devel openssl-devel openssl-static xz lzma xz-devel sqlite-devel gdbm-devel libffi-devel t

2021-07-05 18:27:35 2006

原创 docker安装与卸载(centos7环境)

1.卸载docker# 查找已安装的docker包,然后逐个卸载# yum list installed | grep docker# 卸载dockersudo yum remove -y containerd.io.x86_64 sudo yum remove -y docker-ce.x86_64sudo yum remove -y docker-ce-cli.x86_64 sudo yum remove docker \ docker-client \ docke

2021-07-05 14:17:23 168

原创 vscode配置代码片段,快捷引用

1、打开vscode找到 首选项 -> 用户片段 -> 检索并打开你需要定义的编程语言json配置文件,本示例配置python代码片段(pycharm配置File and Code Templates即可,更便捷)2. 编辑python.json,添加一段代码片段,如下例,其中HEADER是片段名称(自定义即可),片段结构中的prefix、body和description是固定的三个参数: prefix 定义代码前缀提示(当在python文件中输入!h时即可提示此段代码可选择),bo

2021-07-05 13:29:56 929

原创 python web服务器部署

python自带的http服务器通常仅做本地测试部署使用,生产环境下更多的还是使用gunicornu或uWSGI等 WSGI(Web Server Gateway Interface:Web 服务网关接口,WSGI 是主要的用于应用程序和Web服务器通信的Python标准,但是它只支持同步代码,异步可查阅ASGI相关资料)http服务器,然后可使用nginx做反向代理。1.安装gunicorn,Gunicorn(Green Unicorn)是一个 类UNIX 下的 WSGI HTTP 服务器p..

2021-07-05 11:59:47 1094

原创 pymysql的应用

1.安装pymysql扩展pip install pymysql2.pymysql的基本应用#!/usr/bin/env python3# -*- coding: UTF-8 -*-import pymysqlclass MysqlHelper(object): db_conn: pymysql.connections.Connection = None db_cursor: pymysql.connections.Cursor = None de

2021-07-05 11:33:20 84

原创 git使用同一个rsa密钥支持github和gitee授权访问

先在本地生成用于git远程仓库授权的rsa密钥,然后分别在不同的远程仓库端(如github、gitee等)添加此rsa公钥,完成上述两步之后,最后在本地编辑git配置文件来实现git操作# 使用ssh-keygen在本地生成rsa密钥ssh-keygen -m PEM -t rsa -f id_rsa_tom -b 4096 -C "[email protected]"# # 将rsa公钥文本依次复制到不同的远程仓库的SSH公钥配置项中。注意,同一个代码托管平台只能添加一次SSH公钥,如果你在github

2021-06-24 14:43:48 900

原创 linux服务器设置密钥登录

先在本地电脑上生成rsa密钥(可通过安装git来支持),然后将公钥复制到远程服务器指定用户家目录下的.ssh/authorized_keys文件中,完成以上两部操作后,即可在本地通过密钥验证的模式访问远程服务器了# 本地生成rsa密钥(自定义命名id_rsa_tom,本地测试服务器ip:92.168.1.201)ssh-keygen -m PEM -t rsa -f id_rsa_tom -b 4096 -C "[email protected]"# 复制公钥到服务器指定用户下的.ssh/authorize

2021-06-24 14:05:34 394

原创 IP地址尾部/8(16|24|32)的解读

ip地址后面跟着的/8(/16、/24、/32)表示掩码的位数A类IP地址的默认子网掩码为255.0.0.0(由于255是二进制数 11111111(8位1),所以缩写成/8,表示网络号占8位);B类IP地址的默认子网掩码为255.255.0.0(11111111 11111111 => /16);C类IP地址的默认子网掩码为255.255.255.0(11111111 11111111 11111111 => /24)。同理: /30就表示子网掩码是255.255.255.25

2021-06-24 12:02:48 19365

原创 对原码、反码和补码的理解

1、原码:(此处数值示例使用1个字节表示) 数值3的原码为:0000 0011 数值-3的原码为:1000 0011注解:原码使用字节的最高位表示符号值:0代表正数,1代表负数,剩下的表示该数的绝对值二进制数。如果在此基本上进行加法运算,则3 + (-3) =>0000 0011 + 1000 0011 = 1000 0110=> -6,实际结果并不符合逻辑,所以在计算机上使用原码表示法有局限性2、反码: 数值3的反码为:0000 0011 数值-3的反...

2021-06-24 11:38:09 2776

原创 git本地项目配置多远程仓库

1.进入项目根目录cd /www/repo2.如果没有初始化则请输入命令完成初始化git init3.如果已配置过git远程仓库,请移除git remote rm origin4.依次添加多个远程仓库地址git remote add github [email protected]:org/repo.git git remote add gitee [email protected]:org/repo.git5.配置当前项目的用户名和邮箱git config user.name Tom

2021-06-18 10:09:45 247

原创 python使用国内镜像安装模块

国内优秀的镜像源:1.阿里云http://mirrors.aliyun.com/pypi/simple/ 2.中国科技大学https://pypi.mirrors.ustc.edu.cn/simple/ 3.豆瓣 (douban)http://pypi.douban.com/simple/ 4.清华大学https://pypi.tuna.tsinghua.edu.cn/simple/ 5.中国科学技术大学http://pypi.mirrors.ustc.edu.cn/simple/...

2021-06-17 18:36:18 547

原创 javascript匿名函数和es6的箭头函数

javascript匿名函数也被做lambda函数,

2021-06-17 12:08:56 193

原创 centos更新内网ip到hosts主机名映射

本地web开发过程中,经常需要配置虚拟主机名(域名)进行测试,如hosts配置自定义域名test.dev映射到本机127.0.0.1:::1 localhost localhost.localdomain localhost6 localhost6.localdomain6127.0.0.1 localhost localhost.localdomain localhost4 localhost4.localdomain41

2021-06-16 18:46:56 530

原创 centos修改ssh远程端口和主机名

1.修改ssh远程端口# 编辑ssh配置文件 /etc/ssh/sshd_configvim /etc/ssh/sshd_config# 修改 端口Port值,如2022Port 2022#重启ssh服务生效systemctl restart sshd尝试ssh远程连接时,修改端口为你定义的值录入账密即可访问2.修改主机名# 编辑配置文件vim /etc/hostname# 修改当前默认主机名,如tom-01tom-01# 执行命令使其生效hostname $(.

2021-06-16 17:37:39 375

原创 php swoole构建webSocket连接的简单实例

1.客户端:&lt;!DOCTYPE html&gt;&lt;html lang="en"&gt;&lt;head&gt; &lt;meta charset="UTF-8"&gt; &lt;title&gt;webSocket&lt;/title&gt;&lt;/head&gt;&lt;body&gt;&amp

2018-09-20 14:51:45 3034

原创 php swoole创建tcp、udp和http连接的简单实例

 1、swoole的特性:swoole具有异步、并行和高性能等特点,是由纯c语言编写,php以扩展的形式安装使用2、swoole的使用:(1).异步多线程服务器及客户端;(2).异步mysql、redis、数据库连接池和任务队列等;(3).http、websocket-服务器、客户端;(4).异步文件读写;(5).swoole2.0支持协程3、swoole的环境要求:linux、php...

2018-09-20 12:05:30 1674

原创 php curl发送post请求爬取webService接口数据简单实例

header('Content-Type: text/html;charset=utf-8');/** * 使用curl发送post请求 * @param $url * @param string $data * @return bool|mixed */function sendCurlPost($url, $data = ''){ //初始化,创建一个cURL资源 ...

2018-09-19 15:09:56 2369

原创 php 使用fsockopen函数发送URL请求

/** * 使用fsockopen发送URL请求 * @param $url * @param $method: GET、POST等 * @param array $params * @param array $header * @param int $timeout * @return array|bool */function sendHttpRequest($url, $...

2018-09-19 14:30:59 3187

原创 php 对is_writable函数的补充

if (!function_exists('is_really_writable')){ /** * PHP的is_writable()函数存在Bug,(1、Windows下,当文件为只读时,函数才返回 * false,返回true时,文件不一定可写;2、在unix中,php.ini开启safe_mode时, * is_writable不可用)无法准确判断一...

2018-09-19 14:19:09 685

原创 php 斐波那契数列

//斐波那契数列/** * n=1,f(1)=1; * n=2,f(2)=1; * n=3,f(3)=2; * n=4,f(4)=3; * n=5,f(5)=5; * ... * n=n,f(n)=f(n-2)+f(n-1) * *//** * 递归实现 * @param $n * @return bool|int */function fibonacciSeq...

2018-09-15 21:39:05 289

原创 linux vi命令

终端编辑工具:vi/vim、emacs等,vim是vi的扩展 安装vim:yum install -y vim*使用格式:vim filename工作模式:1.正常模式(1)、若文件存在则打开;否则创建,若不做修改则不会创建空文件(2)、主要用来浏览或修改文本内容(3)、使用vim打开文件的默认模式,任意模式下按esc即可进入该模式2.编辑模式,也叫插入模式...

2018-08-12 21:08:03 3861

原创 MySQL 创建用户与授权

1.创建mysql用户CREATE USER 'username'@'host' IDENTIFIED BY 'password'; //'username':登录用户名 'host':主机名 password:登录密码eg:CREATE USER 'root'@'127.0.0.1' IDENTIFIED BY '123456'; // host='%'任意主机,通配符

2016-12-08 10:47:10 503

原创 php 安全处理多线程同时写操作同一文件

<?php$file_name = 'hello.txt';if(!is_writable($file_name)){ die("此文件无写权限或不存在!");}$date = "写点什么东西zzzzzz";// 1、 file_get_contents()方法写入文本信息// file_put_contents($file_name,$date); //清空文件内容重新写入信息/

2016-07-23 20:35:04 2378

原创 php 去除字符串末尾字符

// preg_match() 执行一个正则表达式匹配//手机号验证$mobile = 15712312312;$preg_mobile = "/^(86)?0?1\d{10}$/";echo preg_match($preg_mobile,$mobile,$matches),''; //座机号码$preg_tel = "/^\d{3}-\d{8}$|^\d{4}-\d{7}$/"

2016-07-23 20:16:30 8614

原创 php 多维数组的常用逻辑处理函数

<?php$arr = array(['a','b','c'],['d','e','f'],['x','z','y']);print_r(recursive_array($arr));//Array ( [0] => Array ( [0] => a [1] => b [2] => c ) [1] => Array ( [0] => d [1] => e [2] => f ) [2] =

2016-07-23 15:25:35 1567

转载 网络协议

php.ini设置file_uploads = On 文件上传功能开启upload_tmp_dir = "d:/wamp/tmp" 上传文件临时存放目录post_max_size = 3M   post方式提交数据的最大字节长度upload_max_filesize = 64M 上传文件的最大字节长度        为什么不一样,因为使用网络协议传送数据的方式不一样,post限于h

2016-07-23 09:37:49 1321

原创 php 字符串长度的解释

在php中,函数strlen()返回字符串的长度,实际上是计算得到字符串所占的字节长度,在不同的编码下,字符串所占的字节长度是不同的。列举几个常用的字符编码占用字节情况:ASCII码:一个ASCII码就是一个字节UTF8编码:一个英文字符占用一个字节,一个中文(含繁体)占用三个字节Unicode编码:一个英文字符占用两个字节,一个中文(含繁体)占用两个字节GBK和GBK2312

2016-07-22 00:27:11 2537

原创 jQuery 事件 - ready() 方法

允许使用以下三种语法:语法 1$(document).ready(function(){ //DO})语法 2$().ready(function(){ //DO})语法 3$(function(){ //DO}提示:ready() 函数不应与 一起使用。

2016-07-21 10:13:10 344

原创 关于CSS的优先级,CSS优先级计算

原则一: 继承不如指定原则二: #id > .class > 标签选择符原则三:越具体越强大原则四:标签#id >#id ; 标签.class > .classCSS优先级权重计算法CSS优先级包含四个级别(标签内选择符,ID选择符,Class选择符,元素选择符)以及各级别出现的次数!根据这四个级别出现的次数计算得到CSS的优先级。CSS

2016-07-21 10:09:45 850

数据恢复高级技术(汪中夏).pdf

《数据恢复高级技术》一书,是信息产业部电子行业技术培训专用教材,该书结合具体实例讲解了数据恢复基础、硬盘物理故障的判定及修复、PC-3000在数据恢复中的应用、磁盘阵列的数据恢复、 UNIX系统的数据恢复、数据库修复技术、Office文档修复和数据恢复在电子取证中的应用,适合计算机系统管理人员、软件开发人员、计算机硬件维护维修人员、从事计算机取证的工作人员,以及信息安全及相关专业的大专院校的师生阅读。

2018-09-23

HTTP权威指南.pdf

《HTTP权威指南》详细解释了HTTP协议,包括HTTP是如何工作的,如何用HTTP来开发基于Web的应用程序,核心的因特网协议如何与架构构建块交互,如何正确实现因特网客户和服务器等。《HTTP权威指南》的中心内容是HTTP,本质是理解Web的工作原理,以及如何将这些知识应用到Web编程和管理之中,主要涵盖HTTP的技术运作方式、产生动机、性能和目标以及一些相关技术问题。

2018-09-23

《J2EE开发全程实录》.(杨中科).[PDF].&ckook;.pdf

Java EE(Java Platform,Enterprise Edition)是sun公司(2009年4月20日甲骨文将其收购)推出的企业级应用程序版本。这个版本以前称为 J2EE。能够帮助我们开发和部署可移植、健壮、可伸缩且安全的服务器端 Java应用程序。Java EE 是在 Java SE 的基础上构建的,它提供Web 服务、组件模型、管理和通信 API,可以用来实现企业级的面向服务体系结构(service-oriented architecture,SOA)和 Web 3.0应用程序。

2018-09-20

安卓开发技术.pdf

1.1.1 Android是什么? 是一个针对移动设备的操作系统和软件平台 基于Linux内核 由 Google和开放手机联盟OHA开发的 容许使用Java语言来开发和管理代码 Android开放源代码,Android遵从Apache Software License (ASL)2.0版本的协议 Android于2007年11月5日开放手机联盟成立时发布

2018-09-20

空空如也

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

TA关注的人

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