
小菜鸡历险记
less_cold
一个想要成为大哥的小白
展开
-
kafka相关
kafka作为一种常用的消息队列,经历了大家的检验。他的技术架构(集群)如下所示: 一个集群可以有多个broker,每台机器都部署了kafka,作为一个broker。他们可以接收同一个topic的消息,可以根据partation来区分消息。接收方可以订阅对应的topic的partation。订阅方式有两种,一种是kafka给消费方推送消息,这种方式kafka需要自己维护根据消费方回调...原创 2020-02-24 18:03:18 · 607 阅读 · 0 评论 -
面试常见基本题目总结及php实现(第三部分:杂七杂八来一套)
1链表反转(不建立数组,用2个传递量来处理)function ReverseList($head){ $pre=null; while($head!=null){ $next=$head->next; $head->next=$pre; $pre=$head; $head=$next; } return $pre;}链表的一些别的操作,例如...原创 2017-09-07 15:42:12 · 243 阅读 · 0 评论 -
面试常见基本题目总结及php实现(第一部分:排序算法)
稳定性是指假定在待排序的记录序列中,存在多个具有相同的关键字的记录,若经过排序,这些记录的相对次序保持不变第一部分:排序算法(下面的都是内部排序,只使用内存的排序算法)1.插入排序(最坏时间复杂度O(n^2),平均时间复杂度O(n^2)),稳定的就是把前面的排好,然后把后面的往前面中插入。代码如下所示<?php//从小到大$array=array(12,1,4,2...原创 2017-09-06 23:38:32 · 384 阅读 · 0 评论 -
设计模式
我自己看的我认为很多设计模式看起来和java不同的最主要问题是PHP是弱类型,体现不出那些包含原始类的那种情况。1、创建型模式:单例模式、工厂模式(简单工厂、工厂方法、抽象工厂)、创建者模式、原型模式。参考:http://www.thinkphp.cn/topic/14357.html2、结构型模式:适配器模式、桥接模式、装饰模式、组合模式、外观模式、享元模式、代理模式。...原创 2017-09-24 19:00:21 · 233 阅读 · 0 评论 -
数据库报错ERROR 1030 (HY000): Got error 28 from storage engine
在操作数据库的过程中报错,代码不能执行。报错信息为:ERROR 1030 (HY000): Got error 28 from storage engine该问题属于机器的磁盘空间不足所引起的。可以通过df -h来查看磁盘空间的使用情况。会发现可用磁盘空间一定十分的小,甚至是没有。这个时候就要清理磁盘空间。我们需要知道哪个文件夹占的比较大,通过du命令来查看。du -sh * 来查看信息,从而删除...原创 2018-03-19 10:14:15 · 5826 阅读 · 0 评论 -
FIS管理工具
我们在本地开发,要把程序传到服务器上才能看到效果,每开发一个文件上传一个文件太麻烦了,或者用github来管理也太过麻烦。注意:重点是我在本地开发的是看不到效果的!这个时候我们就要使用百度的一款开源工具——FIS资料地址是:http://fis.baidu.com最简单的使用方法如下:在自己的项目下建立一个fis-conf.js文件,fis-conf.js中的内容:fis.match('*', {...原创 2018-03-08 10:19:36 · 587 阅读 · 0 评论 -
怎么新建git分支
我的代码部署在aaa上,我要建立一个分支,把aaa的代码放到我的分支进行开发。第一步:先从git上clone一个下来git clone git@吧啦吧啦第二步:进入该文件夹内第三步:创建一个分支并与远程分支关联git checkout -b aaa origin/aaa 本地分支 远程分支第四步:把代码拉下来。git pull第五步:新建分支...原创 2018-03-08 10:11:44 · 407 阅读 · 0 评论 -
redis使用命令行操作Could not connect to Redis at 127.0.0.1:6379: Connection refused not connected
正常我们在安装好redis,并正常启动时。找到redis-cli 运行即可使用redis的命令行。但是我们在使用的过程中,启动redis时没有使用默认的端口。所以会报错Could not connect to Redis at 127.0.0.1:6379: Connection refused not connected在使用redis命令行时要加上port即./redis-cli -p 你的端...原创 2018-02-08 16:12:31 · 1997 阅读 · 0 评论 -
windows没有声音的一种情况
今天调试直播课,发现只有画面,没有声音。各种找日志和程序,没有找到问题。去请教别人,结果发现我的电脑压根没声音。尴尬。然后就开始找为什么没有声音?先去设备管理器看看有没有禁用喇叭。发现没有。然后在喇叭处右键,打开“播放设备”。发现是自己外接屏幕的锅。播放设备默认了外接屏幕。把他改为自己的喇叭就好了。原创 2018-02-07 20:09:12 · 590 阅读 · 0 评论 -
设备标识用户的唯一
即便大家在不同的应用中,通过用户设备的标识码,我们也可以统计出用户的行为,进行相应内容的推送。在安卓设备中,通过获取用户的uid就可以知道这是一个唯一的用户,用户的各种行为习惯都会被采集分析,安卓用户如果想拒绝这种服务,只能通过更换设备。在苹果设备中,苹果限制app不可以获取用户的uid,只能通过idfa作为临时uid,来区别用户。苹果用户如果想要拒绝这种服务,可以更改自己设备的idfa,甚至可以...原创 2018-03-06 19:25:45 · 1490 阅读 · 0 评论 -
网站流量统计指标
IP:一天内来访问的不同的ip数量。PV:网站的访问量,一个页面的访问量,点击打开一次和刷新一次都算作是一次UV:判断一天内访问网站的设备数量。通过cookie来判断是不是同一台电脑。...原创 2018-03-06 19:10:57 · 886 阅读 · 0 评论 -
phpstorm全局搜索
有的时候我们想要在整个项目中搜索一个字符串,就需要采用phpstorm中的全局搜索,快捷键是ctrl+shift+f。但是按下去之后没有任何反应?因为ctrl+shift+f已经被占用了,如果有输入法的话就打不开,尤其是win10自带的中文输入法,ctrl+shift+f是简繁体的转化。要打开英文的原装输入法才行。再按ctrl+shift+f就能够打开全局搜索了。...原创 2018-02-26 18:52:54 · 38401 阅读 · 2 评论 -
PHP Fatal error: Call to a member function query() on a non-object in
在调用函数$this->_db->query($sql)时,报错 PHP Fatal error: Call to a member function query() on a non-object in。一开始以为这个函数不能用,后来发现是自己$this->_db不存在。我的问题在于静态变量,在类内调用直接使用$DBNAME,应该是self::DBNAME这个前面整理过,却又没原创 2018-01-29 20:55:00 · 2997 阅读 · 0 评论 -
mysql数据库中的information_schema库
information_schema库是mysql中自带的一个数据库。用于保存其他各个数据库的数据库名,表名和字段名、数据类型等信息。这个数据库是一个只读数据库,不能够对其进行写操作。这就为我们想要获取某个数据库有什么表、什么字段、什么类型提供了信息。下面介绍一下都有其中一些表:column表中就介绍了某个库某个表有什么字段。...原创 2018-03-19 10:24:23 · 429 阅读 · 0 评论 -
为用户导出数据为excel
今天使用了两种方法实现了该功能:一种是js的,一种是php的不需要使用网上搜到的jquery的插件table2excel具体实现如下所示:1.js方法的 function exportExcel(tableid) { tableToExcel(tableid); } var tableToExcel = (function() { var uri = 'data:...原创 2018-04-23 19:20:39 · 275 阅读 · 0 评论 -
面试常见基本题目总结及php实现(第二部分:二叉树遍历)
二叉树遍历主要有三种:先序遍历(根左右),中序遍历(左根右)和后序遍历(左右根),再加一个层次遍历(按层从左到右)这三种方法又有递归和非递归的,递归的很简单,非递归的却很难。递归:先序:<?phpfunction preorder($root){ if($root!=null){ print $root->val; preorder($root-&g...原创 2017-09-07 11:02:50 · 631 阅读 · 0 评论 -
linux小知识
今天同事遇到了一个问题,整理一下。在/var/spool/postfix/maildrop中出现了很多数据文件,占用大量存储。一番搜索之后,发现是crontab的输出会以邮件的形式发送给所有者,但是机器上又没有发邮件的环境,所以导致产生大量的邮件数据文件。解决方法是:把crontab的输出指定到相应的文件或者是/dev/null输出包括两种,一种是程序的输出,一种是程序的错误。&...原创 2018-12-18 12:03:43 · 188 阅读 · 0 评论 -
时间复杂度
时间复杂度常见的最基本的几种时间复杂度如下:O(1)、O(n)、O(logn)这里的log都是以2为底的。其他的常见的复杂度O(n^2)、O(nlogn)是从这几种演变过来的。O(1)是顺序执行,不需要任何循环的算法复杂度。例如:$a=1;O(n)是循环一次的算法复杂度。例如:foreach($arr as $value) {print $value;}O(logn)是每次走两倍的循环一...原创 2018-12-13 21:10:39 · 220 阅读 · 0 评论 -
判断一个字符串是否有重复的字符
请实现一个算法,确定一个字符串的所有字符是否全都不同。这里我们要求不允许使用额外的存储结构。<?php$str = 'D-5H0F6T%Z?QM9,\72:[A8X! ;YJ#2';$ret = preg_match('/.*(.)(.*\1).*/',$str);print_r($ret);这里用到了正则表达式,\1代表第一个获取的值,()里面就是获取的值,第一个括号就是第...原创 2018-12-12 23:40:04 · 1737 阅读 · 0 评论 -
linux执行sh脚本报错syntax error: unexpected end of file
sh脚本编辑完了之后,运行报错syntax error: unexpected end of file主要原因是linux只能执行unix格式的脚本。我们编辑的sh文件是dos格式。需要改成unix格式的。在vim中,执行set ff=unix设置格式为unix即可...原创 2018-11-02 11:31:57 · 662 阅读 · 0 评论 -
Nginx配置粗略整理
Nginx配置详解参考nginx学习网站:http://tengine.taobao.org/book/chapter_02.htmluser admin;#这个是指定访问的用户worker_processes 2;#进程数,可以设置为cpu核数worker_cpu_affinity 00000001 00000010;#不同的进程使用不同的cpuworker_rlimi...原创 2018-11-01 20:12:02 · 476 阅读 · 0 评论 -
PHP文件上传中的move_uploaded_file和 $_FILES
move_uploaded_file在文件上传时,文件会存在一个临时文件当中,我们需要把文件移动保存到其他文件当中,如果不移动,过一段时间这个上传的文件就会被删除。 $_FILES能够获取到一些文件的大小,就说明文件可以上传。nginx里面有关于请求体大小限制的配置信息,如果大小超过限制 则会报错: $_FILES中的error。...原创 2018-04-28 15:50:06 · 1091 阅读 · 0 评论 -
nginx.conf的配置中关于上传包大小的一些指标
keepalive_timeout请求完成后,连接还要保持多久,跟长连接有关系。client_max_body_size限制请求体的大小,client_header_timeout读取请求头的超时时间,client_body_timeout读取请求实体的超时时间,proxy_connect_timeout是http请求无法立即被容器(tomcat, netty等)处理,被放在nginx的待处理池中...原创 2018-04-28 15:45:38 · 1289 阅读 · 0 评论 -
获取用户的ip地址
在全局魔术变量$_SERVER中,有三个量存储了ip第一个:HTTP_X_FORWARDED_FOR有clientip,proxy1,proxy2....代理ip。使用逗号,进行分隔。所以使用他获取用户的ip。第二个:HTTP_CLIENT_IP这个是一个可能存在的ip第三个:REMOTE_ADDR可以通过代理伪装起来,但是这个ip是与你的服务器真正进行连接的服务器。按照上面的顺序依次获取ip获取...原创 2018-04-23 20:16:48 · 1201 阅读 · 0 评论 -
git安装使用
下载下来安装即可。然后打开git-bash配置全局用户。我想要的是如何链接公司在git上的代码。第一步:生成一个.ssh文件夹,如果有,就不用生成。第二步:去git上配置.ssh下的id_rsa.pub这个文件中的密钥。第三步:进行克隆。有一个很好用的git教程:https://www.liaoxuefeng.com/wiki/0013739516305929606dd18原创 2018-01-29 14:21:28 · 419 阅读 · 0 评论 -
通过git获取分支代码
第一步:先从git上clone一个下来git clone git@吧啦吧啦第二步:进入该文件夹内第三步:创建一个分支并与远程分支关联git checkout -b dev origin/dev 本地分支 远程分支第四步:把代码拉下来。git pull原创 2018-02-05 15:22:01 · 6001 阅读 · 0 评论 -
InnoDB的主键
InnoDB表需要有一个主键.InnoDB表存储的每一行数据,是按照主键的顺序在组织数据进行存储,也就是我们常说的聚簇索引。当没有主键的时候,会选择第一个不为NULL 的唯一键作为主键,否则MySQL则会创建一个隐藏的自增字段来做主键(一个很明显的原因是,如果他不创建,InnoDB的行锁都没法用了)。那么,这个MySQL隐藏的自增主键和我们自己显示创建的自增加主键有什么区别?因为隐藏,我们没法通过...转载 2018-02-09 16:00:14 · 656 阅读 · 0 评论 -
MySQL Key值pri uni 和mul,以及extra中的auto-increment
pri 表示主键,唯一 在新建表时加上primary key例如: id bigint(20) unsigned primary key not null uni 表示唯一 在新建表时加上unique例如: id bigint(20) unsigned UNIQUE default NULL mul 可以重复,添加了索引 CREATE INDEX原创 2018-01-24 21:18:03 · 2162 阅读 · 0 评论 -
ubuntu下mysql常用操作
1. 查看mysql状态:service mysql status (查看所有服务的状态: service --status-all)2. 启动mysq: service mysql start3. 关闭mysql: service mysql stopubuntu中的mysql有的时候连不上,可能是因为mysql服务被关掉了,查看一下mysql的状态,如果真的是关掉了,再原创 2016-09-07 11:27:24 · 784 阅读 · 0 评论 -
PHP中::、->、$this和self
对于类的属性和方法,如果是常量const或者静态量static,那么实例调用该属性和方法时,就需要使用::。否则就使用->。在类的定义内部需要引用自身的各个属性和方法时,当属性和方法是常量const或者静态量static,就是用self进行调用。否则就是用$this。总的来说就是self::和$this->这两个。原创 2018-01-25 10:08:54 · 273 阅读 · 0 评论 -
thinkphp5的路由(自我总结)
路由规则指的便是前端页面中的URL请求到服务器端Ap框架中一个模块的一个动作的映射关系。thinkphp5的这个路由真的是试了两个小时才初步有成果,找到了怎么进行访问。在public下的index.php中,链接到了thinkphp下的start.php中。其中有\think\Route::bind('admin');原来应该是index,我把他改成了admin。其实l原创 2017-03-15 09:59:19 · 2330 阅读 · 0 评论 -
模板技术Smarty
一、什么是smarty?smarty是一个使用PHP写出来的模板PHP模板引擎,它提供了逻辑与外在内容的分离,简单的讲,目的就是要使用PHP程序员同美工分离,使用的程序员改变程序的逻辑内容不会影响到美工的页面设计,美工重新修改页面不会影响到程序的程序逻辑,这在多人合作的项目中显的尤为重要。也就是说原来的页面可以直接由PHP文件生成,通过Smarty将PHP文件与HTML文件分开来实现页转载 2017-10-19 14:43:54 · 319 阅读 · 0 评论 -
.tpl文件是什么
以前用过的前端页面都是.html格式的,现在出现了.tpl文件,是template的缩写,发现他就是前端页面,写的也是html。应该是前端模板Smarty的一个格式。可以在Dreamviewer中打开,进行可视化编辑。应该也可以使用PS打开。原创 2018-01-24 20:23:36 · 46713 阅读 · 0 评论 -
.bash_profile和.bashrc
他们两个是用户的配置文件,位于用户的主目录文件夹下, 注意是用户的主目录,区分是不是root用户和其他用户,如果没有就自己添加。我们平常写命令的窗口就是bash这个窗口其实就是一个交互式判断获取bash的方法分为loginshell和no-loginshell。其中,loginshell是指我们通过用户名密码进行登陆打开的方式,这种方式读取的配置文件为.bash_pro原创 2018-01-24 19:41:57 · 242 阅读 · 0 评论 -
为什么nginx和php直接拷过来就能用?尤其是php!
nginx的压缩包里包含了启动nginx的脚本,所以不用安装,只需要通过该脚本进行启动即可。 php从别人那里拷贝过来,拷贝的是编译过的php,我们平常的安装就是下载下来,编译之后就能用了,所以直接把别人编译的php拷贝过来就能用。这只是我个人的理解,如果有哪位大佬有更好的理解,请赐教。跪求!原创 2018-01-23 21:08:28 · 924 阅读 · 0 评论 -
CGI代表的是什么?
我理解的 CGI 是狭义上的 CGI,即不包含 FastCGI。对一个 CGI 程序,做的工作其实只有:从环境变量(environment variables)和标准输入(standard input)中读取数据、处理数据、向标准输出(standard output)输出数据。环境变量中存储的叫 Request Meta-Variables,也就是诸如 QUERY_STRING、PATH_转载 2018-01-23 20:19:26 · 274 阅读 · 0 评论 -
二进制开关
在开发的过程中,有的时候需要一些状态,所以我们采用状态码,也就是二进制开关来进行控制。有的时候采用二进制开关转十进制来代替某些id。为什么这么做现在还不清楚?待更。原创 2018-01-25 17:46:36 · 994 阅读 · 0 评论 -
长连接、短连接和websocket
在TCP传输过程中,分为长连接和短连接。其中:长连接是指当三次握手完成后,传输一次数据,但是不断开连接,可以一直进行数据传输。HTTP1.1默认使用长连接。短连接是指当三次握手完成后,传输一次数据,就四次挥手,断开连接;之后需要继续传输时,又要三次握手。HTTP1.0默认使用短连接。通过keep-alive的值可以设定是长连接还是短连接。以PHP程序的生命周期为例:短连原创 2018-02-01 19:26:53 · 421 阅读 · 0 评论 -
CLI请求
其实就是命令行界面请求,command line interface之前做笔试的时候就常用到命令行调用phpphp是可以区分出是不是CLI请求的。原创 2018-02-01 19:32:25 · 344 阅读 · 0 评论 -
表的引擎选择InnoDB
从InnoDB与MyISAM的区别及支持场景来说明,并给出一些比较明显的特性和注意点。性能角度:1.MyISAM类型的表强调的是局限场景下的性能,其单线程只插入或只读取比InnoDB类型更快。主要因为MyISAM使用的表锁的开销小于InnoDB的行锁开销,另外MyISAM实现简单,在读取到索引后直接操作磁盘,本身没有像InnoDB要维护InnoDB bufferpool等代价。同时如果数据比较离散...转载 2018-02-09 15:34:47 · 346 阅读 · 0 评论