- 博客(161)
- 资源 (9)
- 收藏
- 关注
转载 Linux查看DNS服务器及设置DNS服务器的方法
工具/原料计算机Linux操作系统方法/步骤方法一,查看配置文件,输入命令cat /etc/resolv.conf,从结构中可以看到DNS是180.76.76.76,备用DNS是114.114.114.114方法二,查看使用nslookup命令,输入命令:nslookup www.baidu.com方法三:dig命令查看dig |grep SERVER修改D...
2020-04-13 22:04:05 4841
原创 无限分类按分类层级重新排序方法
初始数据:$values = [ 0 => ["id" => 1, "product_style_name" => "话筒", "pid" => 0], 1 => ["id" => 17, "product_style_name" => "配件", "pid" => 0], 2 => ["id" => 2, ...
2020-01-18 17:23:34 824
转载 mysql死锁怎么解决
1,查看数据库的隔离级别:> select @@tx_isolation;+-----------------+| @@tx_isolation |+-----------------+| REPEATABLE-READ |+-----------------+1 row in set (0.00 sec)2,去查看先当前库的线程情况:> show pr...
2020-01-14 18:12:42 550
原创 Nginx查看内置模块、自定义模块
查看内置模块: ➜ ~ wget http://nginx.org/download/nginx-1.16.1.tar.gz➜ ~ tar zxvf nginx-1.16.1 && cd nginx-1.16.1➜ nginx-1.16.1 cat ./auto/options | grep YESHTTP=YESHTTP_CACHE=YESHTTP_CHARSET=...
2020-01-14 15:24:48 968
原创 限流算法之令牌桶算法、漏铜算法
常见的限流算法有:令牌桶、漏桶。计数器也可以用来进行粗暴限流实现。令牌桶算法:令牌桶算法,是一个存放固定容量令牌的桶,按照固定速率往桶里添加令牌。令牌桶算法的描述如下。假设限制2r/s,则按照500毫秒的固定速率往桶中添加令牌。 桶中最多存放b 个令牌,当桶满时,新添加的令牌被丢弃或拒绝。 当一个n 个字节大小的数据包到达,将从桶中删除n 个令牌,接着数据包被发送到网络上。 如果...
2020-01-14 01:12:18 1101 1
转载 nginx动态负载均衡实现方案
传统的负载均衡,如果Upstream参数发生变化,每次都需要重新加载nginx.conf文件,因此扩展性不是很高,所以我们可以采用动态负载均衡,实现Upstream可配置化、动态化,无需人工重新加载nginx.conf,类似分布式的配置中心Consul+Consul-template 每次发现配置更改需要raload nginx,重启Nginx。 Consul+OpenResty 实现无需r...
2020-01-13 23:47:52 483
转载 socket编程到底是什么?
socket 与 TCP/IP 之间是唇齿相依般的关系,联系紧密,先来看下维基百科对 socket 的定义。socket 是计算机网络中用于在节点内发送或接收数据的内部端点。具体来说,它是网络软件 (协议栈) 中这个端点的一种表示,包含通信协议、目标地址、状态等,是系统资源的一种形式。它在网络中所处的位置大致就是下面的黑色部分,应用层与传输层之间。其中的传输层就是 TC...
2020-01-12 16:56:18 1156
转载 为什么说Redis是单线程的以及Redis为什么这么快!
一、前言近乎所有与Java相关的面试都会问到缓存的问题,基础一点的会问到什么是“二八定律”、什么是“热数据和冷数据”,复杂一点的会问到缓存雪崩、缓存穿透、缓存预热、缓存更新、缓存降级等问题,这些看似不常见的概念,都与我们的缓存服务器相关,一般常用的缓存服务器有Redis、Memcached等,而笔者目前最常用的也只有Redis这一种。如果你在以前面试的时候还没有遇到过面试官问你《为什么说R...
2020-01-12 00:43:20 842 1
转载 MySQL数据表比较 - mysqldiff
本文介绍mysqldiff工具来比较数据表结构,并生成差异SQL语句。mysqldiff类似Linux下的diff命令,用来比较对象的定义是否相同,并显示不同的地方。如果要比较数据库是否一致,可以用另外一个工具:mysqldbcompare(点击查看教程)。以下是mysqldiff的用法。1 安装mysqldiff是MySQL Utilities中的一个脚本,默认的MySQL不...
2020-01-11 22:58:48 704
转载 MySQL数据库比较工具 - mysqldbcompare
mysqldbcompare用于比较两个服务器或同个服务器上的数据库,有文件和数据,并生成差异性SQL语句。要比较数据表,请用另外一个工具:mysqldiff(点击查看教程)。以下是mysqldbcompare的用法。1 安装mysqldbcompare是MySQL Utilities中的一个脚本,默认的MySQL不包含工具集,所以需要独立安装。MySQL Utilities下...
2020-01-11 22:56:26 8858
转载 MySQL BinLog日志的三种录入格式介绍
mysqlbinlog日志有三种格式,分别为Statement,MiXED,以及ROW!查看binlog的格式的脚本:二、binlog 的不同模式有什么区别呢?1.Statement:每一条会修改数据的sql都会记录在binlog中。优点:不需要记录每一行的变化,减少了binlog日志量,节约了IO,提高性能。(相比row能节约多少性能与日志量,这个取决于应用的SQL情...
2020-01-11 22:34:31 2009
转载 跨平台Redis可视化工具Web Redis Manager
一、简介 最近因为工作需要,使用了一些单机版Redis的界面化管理工具,使用过程中那惨痛的体验真的只有用过的人才能体会;为此本人和小伙伴准备动手一个Redis可视化工具,但是因为小伙伴最近工作比较忙,搞了一大半没有时间继续(会有后续,界面不敢说,使用体验上面肯定要比现有的好);本人对wpf不是很熟,再想到很久之前的web迅雷,就想动手实现一个web版的Redis的界面化管理工具;目前这个工具...
2020-01-08 15:03:29 419 2
转载 错误:无法从 /var/lib/rpm 打开软件包数据库
使用rpm命令安装rpm包yuda遇到问题:错误:rpmdb: BDB0113 Thread/process 2543/140084468213568 failed: BDB1507 Thread died inBerkeley DB library错误:db5 错误(-30973) 来自 dbenv->failchk:BDB0087 DB_RUNRECOVERY: Fatal error...
2020-01-08 14:52:26 2913 3
原创 栈实战之检查括号是否闭合
实现步骤:1、先准备一个空栈$stack,然后从左至右读取代码每个字符。2、如果读到的是左括号,就将其压入栈中,意味着后面需要有对应的右括号左闭合。3、如果读到的是右括号,就查看栈顶的元素是否匹配。如果匹配则弹出。4、最后检查栈是否为空。空表示闭合,否则为没有闭合。实现代码:/*** 检查括号是否闭合* @param string $str* @return boo...
2020-01-02 17:18:43 481
原创 排序算法之插入排序
插入排序算法的原理如下:1、在第一轮里,暂时讲索引1的值抽出,并保存至临时变量中。2、接着是平移阶段,我们会拿空隙左侧的每一个值域临时变量的值进行比较。3、如果该值大于临时变量值,则将该值右移,否则把临时变量值插入当前位置。4、重复步骤1~3,直到数组完成排序。插入排序算法流程图:-插入排序时间复杂度:插入排序代码实现:/** * 插入排序 * @pa...
2020-01-02 02:31:25 558 1
原创 排序算法之选择排序
选择排序算法的原理如下:1、从左到右检查数组的每个元素,找出值最小的那个值索引并记录下来。2、将步骤1记录下的最小值索引与本次检查的起点索引交换(第1次起点0,第2次起点1,第n次起点n-1)。3、重复步骤1和步骤2,直到数组排好序。选择排序算法流程图:选择排序时间复杂度:忽略常数项即:选择排序代码实现:/** * 选择排序 * @param arra...
2020-01-02 01:31:31 304
转载 php依赖注入的三种方式
控制反转(Inversion of Control,缩写为IoC),是面向对象编程中的一种设计原则,可以用来减低计算机代码之间的耦合度。其中最常见的方式叫做依赖注入(Dependency Injection,简称DI)。下面我们就为大家介绍一下php依赖注入的三种方式。一、构造器注入 将被依赖对象通过构造函数的参数注入给依赖对象,并且在初始化对象的时候注入。优点: 对象初始化完...
2019-12-30 17:54:02 4431
原创 Docker从入门到实践 摘要
目录什么是Docker?为什么要用Docker?Docker与传统虚拟机对比?Docker的三个基本概念?Docker安装指南镜像的管理操作Docker镜像的实现原理?容器的管理操作?Docker仓库管理操作Docker如何进行数据管理Docker使用网络Dockerfile指令什么是Docker?诞生于2013年使用Go语言实现的一个开源项...
2019-12-28 20:11:02 242
原创 求两个数组元素的交集
实现方式:先用hash表记录第一个数组中的元素【放在key】,和出现的次数【放在value】。 然后再遍历第二个数组,如果找到对应元素,则添加这个元素到返回数组里。 如果value值大于1,HashMap中的value值减 1,表示已经找到一个相同的了。 如果value值等于1,则删除该元素。/** * 求两个数组的交集 * param array $nums1 * param...
2019-12-20 21:53:08 380
原创 求N以内的所有质数(素数)
质数定义:是指在大于1的自然数中,除了1和它本身以外不再有其他因数的自然数。/** * 求n以内的质数(素数) * param int $n * return array */function prime_numbers(int $n):array { $result = [2]; //偶数只有2是质数 for ($i = 3; $i <= $n; $i+=2) { //...
2019-12-20 20:38:07 1502
原创 将一个数组中的元素随机打乱
实现方式:遍历数组,取0~数组长度间的一个随机值$rand_index为键值与当前位置$i的值对换。/** * 将一个数组中的元素随机打乱 * * param array $arr * return array */function custom_shuffle(array $arr):array { $length = count($arr); for($i ...
2019-12-20 20:19:21 1518
原创 数组元素反转函数实现
实现方式:数组首尾对应位置的值替换。可以想象成将数组对折了一下,然后对应的值交换。/** * 数组元素反转函数 * param $arr array * return array */function reverse(array $arr) :array{ $left = 0; $right = count($arr) - 1; while ($left < $r...
2019-12-20 14:59:48 1298
转载 PHP高级工程师面试题
准备自我介绍:说上家公司负责的项目或者浓缩简历。 简历(最优.pdf格式)项目经验层次 项目背景 利用什么技术 面向(对象oop,切面aop) 设计模式(代理、工厂、单例) xx模块(socket,pdo,多进程) 中间件(codis,Mycat)协程 消息队列(RabitMq、Kafka) 容器及容器编排 底层(框架原理OR Ze...
2019-12-19 13:55:25 1008 1
转载 PHP面试题
内容类型 难度 PHP基础深入 中 A PHP业务经验 中 D 全范围,概念与实战 难 B 全范围大量级 难 C A10个值得深思的PHP面试问题(弱类型的比较,字符串数组的运算,运算优先级等基础知识点)好!是不错的基础面试题 一份不错的php面试题(一半是基础,类型比较,字符串操作,还可以吧,还有一半算法题...
2019-12-19 13:52:48 621
转载 PHPer 面试指南-扩展阅读资源整理
gitbook:https://todayqq.gitbooks.io/phper/content/前端篇收集的前端面试题和答案 前端开发面试题 史上最全的 web 前端面试题汇总及答案 前端工程师手册 HTTP 协议:工作原理 SSL/TLS 协议运行机制的概述后端篇3 年 PHPer 的面试总结 垃圾回收机制 S.O.L.I.D 面向对象设计 浅谈 IOC-- ...
2019-12-19 13:51:00 416
原创 Linux系统Elasticsearch安装与运行(yum)
当前环境:Linux liuns 3.10.0-957.5.1.el7.x86_64 #1 SMP Fri Feb 1 14:54:57 UTC 2019 x86_64 x86_64 x86_64 GNU/LinuxElashticseach依赖java,所有需要先安装java。 [root@liuns ~]# yum install java[root@liuns ~]# java...
2019-12-18 01:59:02 671
原创 RabbitMQ实战指南笔记
目录第1章 RabbitMQ简介1.1 什么是消息中间件1.2 消息中间件的作用1.3 RabbitMQ起源1.4 RabbitMQ的安装及简单实用第2章 RabbitMQ入门2.1 概念介绍2.2 AMQP协议介绍第3章 客户端开发向导(php-amqplib)3.1 连接RabbitMQ3.2 使用交换器和队列3.3 发送消息3.4 消...
2019-12-17 00:09:21 1549
原创 查找算法之二分查找算法
查找过程:将n个元素分成大致相等的两部分,取a[n/2]与x做比较,如果x=a[n/2],则找到x,算法中止;如果x<a[n/2],则只要在数组a的左半部分继续搜索x,如果x>a[n/2],则只要在数组a的右半部搜索x。算法要求:1.必须采用顺序存储结构。2.必须按关键字大小有序排列。代码实现:/** * 二分查找算法 * * @param array ...
2019-12-04 20:55:37 288
原创 排序算法之快速排序
快速排序算法的原理如下:1、首先设定一个分界值,通过该分界值将数组分成左右两部分。2、将大于或等于分界值的数据集中到数组右边,小于分界值的数据集中到数组的左边。此时,左边部分中各元素都小于或等于分界值,而右边部分中各元素都大于或等于分界值。3、然后,左边和右边的数据可以独立排序。对于左侧的数组数据,又可以取一个分界值,将该部分数据分成左右两部分,同样在左边放置较小值,右边放置较大值。...
2019-12-04 20:46:25 299
原创 排序算法之冒泡排序
冒泡排序算法的原理如下:1、比较相邻的元素。如果第一个比第二个大,就交换他们两个。2、对每一对相邻元素做同样的工作,从开始第一对到结尾的最后一对。在这一点,最后的元素应该会是最大的数。3、针对所有的元素重复以上的步骤,除了最后一个。4、持续每次对越来越少的元素重复上面的步骤,直到没有任何一对数字需要比较。冒泡排序算法流程图:冒泡排序时间复杂度:冒泡排序代码实现:...
2019-12-04 20:24:31 324
原创 vagrant异常无法启动解决方法
周末闲着无聊清理电脑手欠不知道把vbox的什么文件给上了。然后vagrant up时报如下错误:Bringing machine 'default' up with 'virtualbox' provider...==> default: Vagrant has detected a configuration issue which exposes a==> default...
2019-01-21 19:32:04 3433 2
原创 Mac系统Docker快速搭建LNMP开发环境
docker技术流行也有一段时间了,虽然关注过但是一直没有真正实际的操作做过。最近看到同事用docker搭建的本地开发环境,所以抽时间也折腾折腾,试着在本机搭建了一套基于docker的开发环境,记录一下。我之前一直用的Vagrant搭建的环境,有想用的可以去Vagrant官网看看文档。下面步入正题:操作系统:macOS Mojave 10.14.2版本Step1、安装docke...
2018-12-19 01:23:19 3350
原创 solr学习笔记-增加mmesg4J中文分词
solr版本6.1、centos6.7、mmesg4j版本2.30solr安装目录:/usr/local/solr-6.1.01、下载mmesg4j包:地址:https://github.com/chenlb/mmseg4j-solr2、解压/复制mmseg4j-core-1.10.0.jar、mmseg4j-solr-2.3.0.jar 到/usr/local/solr-6.1....
2016-08-03 14:08:07 2000
原创 solr学习笔记-导入mysql数据
操作系统:LINUX CENTOS 6.7solr安装目录:/usr/local/solr-6.1.01、准备工作:1.1、创建数据表:CREATE TABLE `mytable` ( `id` int(11) unsigned NOT NULL AUTO_INCREMENT, `name` varchar(25) NOT NULL, `desc` text...
2016-07-22 09:21:25 1126
原创 solr学习笔记-入门
solr学习笔记1、安装前准备solr依赖java 8 运行环境,所以我们先安装java。如果没有java环境无法启动solr服务,并且会看到如下提示: [root@localhost solr-6.1.0]# ./bin/solr start -e cloud -noprompt /*运行solr服务*/ Java not found, or an error was encoun
2016-07-20 16:05:57 4516
原创 mysql添加索引造成的影响
尽管添加索引可以优化SQL语句的性能,但是添加索引的同时也会带来不小的开销。尤其是在有大量的索引的情况下。mysql添加索引造成的影响如下:1、DML(数据操作语言)影响,在表上添加缩影会直接影响写操作性能(因为添加记录的同时还有创建相应记录的索引,这也是要耗资源的。)。2、DDL(数据定义语言)影响,随着表大小的不断增加,对性能的影响也会不断增加。比如:ALTER语句会耗费更多的时间...
2014-10-11 13:38:35 5381
原创 mysql索引失效的情况
1、WHERE字句的查询条件里有不等于号(如:WHERE column!=...),MYSQL将无法使用索引;2、WHERE字句的查询条件里使用了函数的列(如:WHERE DAY(column)=...),MYSQL将无法使用索引;3、在JOIN操作中,主键和外键的数据类型不相同,MYSQL将无法使用索引;4、WHERE子句的查询条件里使用了比较操作符LIKE前置通配符%(如:LIKE...
2014-10-11 12:09:12 3712 1
原创 加快ALTER TABLE 操作速度
mysql的alter table操作的性能对于大表来说是个大问题。mysql大部分修改表结构操作的方法都是用新的结构创建一个新表,从旧表中查出数据插入新表,然后在删除旧表。这样的操作很耗费时间,而且还有可能中断mysql服务。这里推荐一种方法来提高alter table的操作速度。(请注意数据备份)修改数据表的.frm文件,步骤如下:1、创建一个有相同结构的新表,并进行所
2014-09-28 11:11:25 2662
原创 mysql转换表的存储引擎方法
如果转换表的存储引擎,将会丢失原存储引擎的所有特性。例如:如果将innodb转换成myisam,再转回innodb,原innodb表的的外键将丢失。 假设默认存储引擎是MyISAM转为InnoDB第一种:使用ALTER TABLE实现 mysql>ALTER TABLE table_name ENGINE=InnoDB;适合任何存储引擎间的转换。需要执行很长时间...
2014-09-26 16:31:29 2314
原创 排序之快速排序
快速排序是通过一趟排序将要排序的数据分割成独立的两部分,其中一部分的所有数据都比另外一部分的所有数据都要小,然后再按此方法对这两部分数据分别进行快速排序,整个排序过程可以递归进行,以此达到整个数据变成有序序列。 /** * @param array $numbers 需要排序的数字组 * @return array **/function ks_sort($numbers){ ...
2014-06-30 13:30:48 1428
php-redis中文帮助手册
2013-03-21
UML基础与Rose建模教程PDF
2012-08-17
UChome二次开发文档详细介绍
2011-09-06
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人