- 博客(32)
- 收藏
- 关注

原创 docker基础操作
docker commit -m="php-nginx" -a="作者" 3fe9 php-nginx:1.0。运行容器:7e1c17532380代表镜像id,可通过docker images进行查看安装的镜像。docker save 镜像id -o 存储路径 镜像名字:镜像标签。1.容器生成新镜像:可不加版本,去掉自己镜像名后的‘:版本’即可。2.删除镜像:docker rmi 7e1c。3.查看所有容器:docker ps -a。删除容器: ed999代表容器id。删除镜像: 7e1c代表镜像id。
2023-04-15 00:00:50
171

原创 MySQL覆盖索引为什么不用回表
一级索引:聚簇索引即主键索引二级索引:非聚簇索引一级B+Tree:叶子节点保存着键(id的值)和数据(全部字段的值)二级B+Tree:叶子节点保存着键(索引字段的值)和数据(主键索引值)查询 一级索引,根据一级B+Tree查询到数据,直接返回数据查询 二级索引,根据二级B+Tree查询到对应的聚簇索引,再根据聚簇索引在一级B+Tree里查询到相应数据查询 一级索引只需要扫描一次B+Tree。查询 二级索引需要扫描两次B+Tree。根据二级B+Tree扫描的结果,再去一级B+Tree里..
2022-03-03 17:34:48
1415

原创 MySQL 高性能优化
1. LIMIT优化使用limit随着offset增大,查询的速度会越来越慢。limit查询会把前边的数据都取出来,比如limit 100000, 10时会把前10万条数据取出找到对应的位置,再取10条数据。因此你的offset的值越大查询的数据就越多所以我们就需要对limit进行优化:测试数据共计约100W条1. 未优化SELECT SQL_NO_CACHE * FROM `ceshi` ORDER BY `id` DESC LIMIT 900000, 10;2. 子查询优化
2022-03-03 10:07:47
382

原创 redis 管道(pipeline)、事务(multi)、普通、lua脚本性能对比
<?phpset_time_limit(0);ini_set('memory_limit','1024M');$redis = new Redis();G('1');$redis->connect('127.0.0.1');//不具备原子性 ,管道//$redis->pipeline();$redis->multi($redis::PIPELINE);for ($i=0;$i<100000;$i++){ $redis->set("test.
2022-03-01 17:39:06
1324

原创 MySQL 索引面试题
1. 什么是索引索引是帮助MySQL高效获取数据的数据结构2. 索引的优点1) 减少服务器需要扫描的数据量2) 帮助服务器避免排序和临时表(可以用order by和group by操作帮助服务器避免排序和临时表)3) 索引可以将随机IO变成顺序IO3.索引的缺点1) 索引要占用磁盘空间2) 索引会降低写入数据的速度(insert、update、delete),这是因为MySQL不仅要把改动数据写入数据文件,而且它还要把这些改动写入索引文件。4. .
2022-01-18 12:00:15
1090

原创 CentOS 7.6升级系统内核
由于最近比较火的k8s,相信大家部署前都需要升级内核,这里就简单说下部署步骤:yum 升级安装1.检查已安装的内核版本uname -rs2.在CentOS 7 中升级内核rpm --import https://www.elrepo.org/RPM-GPG-KEY-elrepo.org #导入该源的秘钥rpm -Uvh http://www.elrepo.org/elrepo-release-7.0-2.el7.elrepo.noarch.rpm #启用该源仓库yum --
2021-12-14 17:46:58
2702

原创 PHP常用函数总结
文章目录目录文章目录一、数字函数二、字符串提示:以下是本篇文章正文内容,下面案例可供参考一、数字函数1.abs() 函数返回一个数的绝对值。示例:echo abs(-4.2); 输出 4.22.ceil()函数向上舍入为最接近的整数。示例:echo ceil(5.1); echo ceil(-5.1); 输出:6;-53.floor()函数向下舍入为最接近的整数。示例:echo floor(5.1); echo floor(-5.1); ...
2021-10-19 22:51:32
4075

原创 linux中安装composer
文章目录Linux 平台可以使用以下命令来安装php -r "copy('https://install.phpcomposer.com/installer', 'composer-setup.php');"php composer-setup.php移动 composer.phar,这样 composer 就可以进行全局调用mv composer.phar /usr/local/bin/composer切换为国内镜像composer config -g repo.packagist c
2021-10-09 18:23:30
216

原创 php算法练习题及答案
1.猴子选大王一群猴子排成一圈,按1,2,…,n依次编号。然后从第1只开始数,数到第m只,把它踢出圈,从它后面再开始数,再数到第m只,在把它踢出去…,如此不停的进行下去,直到最后只剩下一只猴子为止,那只猴子就叫做大王。要求编程模拟此过程,输入m、n,输出最后那个大王的编号function king($n,$m){ $mokey = range(1, $n); $i = 1; while (count($mokey) >1) { $head = arra
2021-10-08 16:19:18
739

原创 redis面试题
一、redis缓存的雪崩、穿透和击穿是指什么,如何解决?1.缓存雪崩缓存雪崩是指缓存同一时间大面积失效,所以后面的请求都会落在数据库上,造成数据库短时间内承受大量请求而崩溃解决方案: 1.缓存数据的过期时间设置随机,防止同一时间大量数据过期现象发生 2.缓存预热 3.互斥锁:查数据库的时候把缓存的键锁起来,查完数据库把数据放到缓存中,再释放这个锁2.缓存穿透缓存穿透是指缓存和数据库中都没有的数据,导致所有的请求都落在数据库上,造成数据库短时间内承受大量请求而崩掉解决...
2021-08-19 23:31:04
111

原创 解决击穿问题redis互斥锁
通过redis的setnx实现互斥锁代码如下(示例): <?php function getRedis() { $redis = new Redis(); $redis->connect('127.0.0.1', 6379, 60); return $redis; } //加锁 function lock($key, $random) { $redis = getRedi...
2021-08-18 19:09:10
561

原创 redis锁解决高并发问题,可防止重复提交
前言这里我们主要利用Redis的setnx的命令来处理高并发setnx有两个参数。第一个参数表示键。第二个参数表示值。如果当前键不存在,那么会插入当前键,将第二个参数做为值。返回1。如果当前键存在,那么会返回0。代码如下(示例):<?phpclass Lock{ private static $_instance ; private $_redis; private function __construct() { ...
2021-08-18 16:02:33
1811

原创 php自定义加密/解密函数
php自定义加密/解密函数代码如下(示例):<?phpif (!function_exists('encrypt')) { /** * 加密算法(可逆) * @param $data string 待加密的字符串 * @param $key string 秘钥 * @return string */ function encrypt($data, $key) { // 例:$data = 'zhongyu
2021-05-28 19:17:06
1067

原创 MySQL中查某一字段包含某一字符的个数
MySQL中查某一字段包含某一字符的个数提示:例如某一字段里存了多个id,并且以逗号分隔,例:字段coupon_record_game_id 的值为 1,2,3,5,7,9,14,36。现在要统计每个字段里存了多少个id,并且以存id的数量倒叙排序代码如下(示例):SELECT coupon_record_id, coupon_record_game_id, LENGTH(coupon_record_game_id)-LENGTH(REPLACE(coupon_record_game_id,",",
2021-05-24 10:51:53
5368

原创 Centos7中MongoDB开启auth验证
Centos7中MongoDB开启auth验证1.创建管理员用户2.创建普通用户如果还未安装可参考:https://blog.youkuaiyun.com/muwenbofx/article/details/115858535我MongoDB在/usr/local/mongodb目录下开启认证前配置文件mongodb.conf里的是开启安全认证先要关掉auth=false1.创建管理员用户管理员用户必须到admin数据库下创建#连接mongodbcd /usr/local/mongodb./bin/mo
2021-05-08 10:08:30
2503

原创 Redis乐观锁实现高并发秒杀实例
Redis乐观锁实现高并发秒杀实例Redis对事务的支持比较简单。redis只能保证一个客户端发起的事务命令可以执行,中间不会插入其他事务。因为redis是单线程的,所以做到上面这点很容易。一般redis接受到客户端的命令后会立即执行,但是如果客户端发起multi命令,redis不会立即执行,而是让当前连接进入事务上下文,把命令放到队列中,接受到exec命令后,redis会顺序执行队列中的命令。并把执行结果打包到一起返回客户端,之后就结束了事务上下文代码如下(示例):<?phphead
2021-04-29 22:59:15
222

原创 Centos 7安装Mongodb和Mongodb扩展
Centos 7安装Mongodb和Mongodb扩展一、安装Mongodb1.下载Mongodb包2.创建软连接总结一、安装Mongodb1.下载Mongodb包软件下载地址:https://www.mongodb.com/try/download/community提供了二进制执行版,不需要make安装,将解压好的内容,直接移动到软件安装目录即可。cd /usr/local/srcwget http://fastdl.mongodb.org/linux/mongodb-linux-x86_6
2021-04-21 15:53:14
323

原创 Centos 7安装Supervisord
Centos 7安装Supervisord一、pandas是什么?二、使用步骤1.引入库2.读入数据总结一、pandas是什么?示例:pandas 是基于NumPy 的一种工具,该工具是为了解决数据分析任务而创建的。二、使用步骤1.引入库代码如下(示例):import numpy as npimport pandas as pdimport matplotlib.pyplot as pltimport seaborn as snsimport warningswarnings.filt
2021-04-09 17:41:53
734

原创 php自定义加密解密算法,长度可控
php自定义加密解密算法,长度可控1.加密/解密类2.调用1.加密/解密类代码如下(示例):<?phpnamespace app\common\service;class NumberCardConversion{ // 进制数 private static $dnum = 36; // 前缀值 private static $pre = 'sy'; // 验长度 private static $vc_len = 2; // 密
2021-04-07 20:19:34
790

原创 LINUX(CentOS 7) php7.4安装redis以及php-redis扩展
CentOS 7下PHP7.3安装redis扩展1.安装phpize2.下载、解压、编译Redis3.解压php7.zip总结1.安装phpizeyum -y install php73-php-devel2.下载、解压、编译Rediscd /usr/local/srcwget http://download.redis.io/releases/redis-4.0.6.tar.gztar -zxvf redis-4.0.6.tar.gzcd redis-4.0.6./configure -
2021-04-06 16:03:01
4536

原创 LINUX(CentOS 7)安装MySQL5.7
CentOS 7安装MySQL5.6一、安装MySQL前准备工作1.检查系统中是否已安装 MySQL2.查看已安装的 Mariadb 数据库版本3.卸载已安装的 Mariadb 数据库4.再次查看已安装的 Mariadb 数据库版本,确认是否卸载完成二、安装MySQL1.下载安装包文件2.安装mysql-community-release-el7-5.noarch.rpm包3.安装mysql4.检查mysql是否安装成功5.启动MySQL三、设置MySQL1.设置密码2.设置远程主机登录一、安装MySQ
2021-03-30 00:12:28
317
1

原创 LINUX (CentOS 7) 安装 PHP7.4
CentOS 7 yum 安装 PHP7.3一、安装前库文件和工具准备二、安装PHP三、设置PHP四、设置PHP软连接和环境变量提示:以下是本篇文章正文内容,下面案例可供参考一、安装前库文件和工具准备1、首先安装 EPEL 源yum -y install epel-release 2.安装 REMI 源yum -y install http://rpms.remirepo.net/enterprise/remi-release-7.rpm 3.安装 Yum 源管理工具yum -y i
2021-03-24 01:08:18
5062
4

原创 CentOS 7 环境下载安装Nginx
CentOS 7 环境下载安装Nginx目录一、安装前需要的编译环境准备1.安装编译工具及库文件2.关闭防火墙3.关闭selinux二、安装 PCRE(让 Nginx 支持 Rewrite 功能)三、安装nginx启动提示:以下是本篇文章正文内容,下面案例可供参考一、安装前需要的编译环境准备1.安装编译工具及库文件yum -y install make zlib zlib-devel gcc gcc-c++ automake autoconf libtool openssl openssl-d.
2021-03-23 21:51:43
492

原创 python爬虫两个简单入门实例
python爬虫简单入门实例一、建表二、实例代码总结提示:安装python3环境和需要导入的库。以下是本篇文章正文内容,下面案例可供参考一、建表CREATE TABLE article (id int(11) unsigned NOT NULL AUTO_INCREMENT COMMENT ‘id’,artname varchar(50) NOT NULL,href text NOT NULL COMMENT ‘链接’,content text NOT NULL COMMENT ‘详情’,
2020-09-02 13:10:34
632

原创 php中奖概率算法,刮刮卡/大转盘抽奖算法
提示:文章写完后,目录可以自动生成,如何生成可参考右边的帮助文档php中奖概率算法,可用于刮刮卡,大转盘等抽奖算法前言一、概率算法二、奖项数组三.引用输出总结前言提示:这里可以添加本文要记录的大概内容:例如:随着人工智能的不断发展,机器学习这门技术也越来越重要,很多人都开启了学习机器学习,本文就介绍了机器学习的基础内容。提示:以下是本篇文章正文内容,下面案例可供参考一、概率算法经典的概率算法$proArr是一个预先设置的数组假设数组为:array(100,200,300,400
2020-08-27 14:32:10
583

原创 mysq根据首字母模糊检索,拼音首字母模糊查询名称
Mysql 数据库根据拼音首字母模糊查询名称前言一、pandas是什么?二、使用步骤1.引入库2.读入数据总结前言随着人工智能的不断发展,机器学习这门技术也越来越重要,很多人都开启了学习机器学习,本文就介绍了机器学习的基础内容。提示:以下是本篇文章正文内容,下面案例可供参考一、pandas是什么?示例:pandas 是基于NumPy 的一种工具,该工具是为了解决数据分析任务而创建的。二、使用步骤1.引入库代码如下(示例):import numpy as npimport pand
2020-08-27 10:12:29
1861
1
原创 LINUX(CentOS 7)安装swoole及php7.4的扩展
CentOS 7安装swoole及扩展一、下载、安装swoole二、修改配置1.将swoole.so添加到php.ini中一、下载、安装swooleswoole下载地址:https://pecl.php.net/package/swoole,根据自己需要选择下载cd /usr/local/srcwget https://pecl.php.net/get/swoole-4.4.6.tgztar -zxvf swoole-4.4.6.tgzcd swoole-4.4.6phpize./confi
2021-04-26 13:58:48
1669
原创 PHP文件下载简单案例
文章目录前言一、文件下载总结前言这是一个简单的文件下载案例,可供新手参考学习,欢迎交流一、文件下载代码如下(示例): public function bigFileDownLoad($down_path, $down_name) { // 检测文件是否存在、是否可读 if (file_exists($down_path) && is_readable($down_path)) { // 避免下载超时
2021-01-20 23:21:33
146
空空如也
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人