自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(27)
  • 收藏
  • 关注

转载 Redis高可用详解:持久化技术及方案选择

上一篇文章介绍了Redis的内存模型,从这篇文章开始,我将依次介绍Redis高可用相关的内容——持久化、复制(及读写分离)、哨兵、以及集群。 本文将先说明上述几种技术分别解决了Redis高可用的什么问题,然后详细介绍Redis的持久化技术,主要是RDB和AOF两种持久化方案。在介绍RDB和AOF方案时,不仅介绍其作用及操作方法,同时还会介绍持久化实现的一些原理细节及需要注意的问题。最后,介...

2018-08-01 13:50:34 194

转载 php中websocket内容

在PHP中,开发者需要考虑的东西比较多,从socket的连接、建立、绑定、监听等都需要开发者自己去操作完成,对于初学者来说,难度方面也挺大的,所以本文的思路如下:1、socket协议的简介2、介绍client与server之间的连接原理3、PHP中建立socket的过程讲解4、用一个聊天室作为实例详细讲解在PHP中如何使用socket一、socket协议的简介  WebSo...

2018-07-23 09:09:58 476

转载 缓存问题及解决

作者:白开心链接:https://zhuanlan.zhihu.com/p/37891249来源:知乎著作权归作者所有。商业转载请联系作者获得授权,非商业转载请注明出处。 前几天,我司出了个篓子。当时正值某喜闻乐见的关键比赛结束,一堆人打开我司app准备看点东西,结果从来没有感受到过这么多关注量的该功能瞬间幸福到眩晕,触发了熔断,结果就是大量兴致冲冲打开app准备看该比赛结果的人被迫刷...

2018-07-18 14:49:56 340

转载 php防止恶意刷新与刷票的方法

一般来说,恶意刷新就是不停的去刷新提交页面,导致出现大量无效数据,下面我们来总结一下php 防止恶意刷新页面方法总结。防止恶意刷页面的原理是:要求在页面间传递一个验证字符串, 在生成页面的时候 随机产生一个字符串, 做为一个必须参数在所有连接中传递。同时将这个字符串保存在session中。点连接或者表单进入页面后,判断session中的验证码是不是与用户提交的相同,如果相同,则处理,不相同则认为是...

2018-07-15 21:43:51 2169

转载 php实现ip防盗刷

代码如下:<?php //查询禁止IP $ip =$_SERVER['REMOTE_ADDR']; $fileht=".htaccess2"; if(!file_exists($fileht))file_put_contents($fileht,""); $filehtarr=@file($fileht); if(in_array($ip."\r\n",$filehtarr))die("Wa...

2018-07-15 18:32:20 804

转载 树应用实现-无限极分类(引用&递归)

$items = array( 1 => array('id' => 1, 'pid' => 0, 'name' => '江西省'), 2 => array('id' => 2, 'pid' => 0, 'name' => '黑龙江省'), 3 => array('id' => 3, 'pid' => 1, ...

2018-07-15 16:04:38 849 1

原创 如何用Redis平衡海量信息推送的实效与体量

前阵子开发了公司领劵中心的项目,这个项目是以Redis作为关键技术落地的。先说一下领劵中心的项目吧,这个项目就类似京东App的领劵中心,当然图是截取京东的,公司的就不截了。其中有一个功能叫做领劵的订阅推送。什么是领劵的订阅推送?就是用户订阅了该劵的推送,在可领取前的一分钟就要把提醒信息推送到用户的App中。本来这个订阅功能应该是消息中心那边做的,但他们说这个短时间内做不了,所以让我这个负责优惠劵的...

2018-07-11 09:54:31 209

原创 php简单防盗链处理

 有时我们希望访问我们网站的用户只能通过特定的链接或页面进入我们的网站页面,此时就需要实现防盗链技术。这就用到了http协议中的referer内容过滤。    例如在我们本地有一个网页,路径为:http://localhost/http/fdl_one.php,内容如下:<a href="fdl_two.php">click here to see more</a>    ...

2018-07-03 23:13:19 3126

转载 高性能mysql之前缀索引

有时候需要索引很长的字符列,这会让索引变得大且慢。通常可以索引开始的部分字符,这样可以大大节约索引空间,从而提高索引效率。但这样也会降低索引的选择性。索引的选择性是指不重复的索引值(也称为基数,cardinality)和数据表的记录总数的比值,范围从1/#T到1之间。索引的选择性越高则查询效率越高,因为选择性高的索引可以让MySQL在查找时过滤掉更多的行。唯一索引的选择性是1,这是最好的索引选择性...

2018-06-30 15:44:26 166

原创 Session使用方法详解

Session的声明与使用  Session的设置不同于Cookie,必须先启动,在PHP中必须调用session_start()。session_start()函数的语法格式如下:  Bool session_start(void) //创建Session,开始一个会话,进行Session初始化  注意:session_start()函数之前不能有任何输出当第一次访问网站时,Seesion_st...

2018-06-27 17:20:59 37214

原创 mysql百万级数据查询优化

1.两种查询引擎查询速度(myIsam 引擎 )InnoDB 中不保存表的具体行数,也就是说,执行select count(*) from table时,InnoDB要扫描一遍整个表来计算有多少行。MyISAM只要简单的读出保存好的行数即可。注意的是,当count(*)语句包含 where条件时,两种表的操作有些不同,InnoDB类型的表用count(*)或者count(主键),加上where c...

2018-06-27 17:19:32 36776 7

转载 GET POST区别

GET在浏览器回退时是无害的,而POST会再次提交请求。GET产生的URL地址可以被Bookmark,而POST不可以。GET请求会被浏览器主动cache,而POST不会,除非手动设置。GET请求只能进行url编码,而POST支持多种编码方式。GET请求参数会被完整保留在浏览器历史记录里,而POST中的参数不会被保留。GET请求在URL中传送的参数是有长度限制的,而POST么有。对参数的数据类型,...

2018-06-20 16:37:08 105

转载 php yeild关键字实现中间件

1.初识GeneratorGenerator , 一种可以返回迭代器的生成器,当程序运行到yield的时候,当前程序就唤起协程记录上下文,然后主函数继续操作,当需要操作的时候,在通过迭代器的next重新调起function xrange($start, $end, $step = 1) { for ($i = $start; $i <= $end; $i += $step) { ...

2018-06-19 16:25:25 518

转载 php实现网站监控--web安全

linux下网站状态监控实现(免费手机短信和MSN消息提醒) 参考了张宴的《Linux服务器系统监控框架与MSN、E-mail、手机短信报警的实现》并结合飞信的免费短信接口为服务器做了个监控脚本,在监控端服务器(公司内部服务器)部署完之后,每隔5分钟检测一次网站是否能正常访问,如果有异常则通过飞信免费发送警报短信到指定手机或者MSN上。首先需要有一个已开通飞信的手机号,并把接收警报短信的手...

2018-06-19 13:16:03 3317

转载 php垃圾回收机制

php中变量存在于一个zval(新开辟的内存区域)的变量容器中。结构如下:  类型值is_refrefcount  zval中,除了存储变量的类型和值之外,还有is_ref字段和refcount字段。is_ref:是个bool值,用来区分变量是否属于引用集合。什么意思呢,你可以这么认为:表示变量是否有一个以上的别名。 refcount:计数器,表示指向这个zval变量容器的变量个数。 两者之间有这...

2018-06-13 09:48:36 134

转载 php数组根据某字段重新排序

$arrUsers = array( array( 'id' => 1, 'name' => '张三', 'age' => 25, ), array( 'id' => 2, 'name' => '...

2018-06-11 14:27:52 3940

转载 php利用中间件完善事务--

我说的事务指的是一般的数据库事务,而不是什么分布式事务之类高大上的概念。听起来很简单,但是即便如此,想实现的优雅一点也不是一件容易的事情。假设有一个 QA 系统,当用户在上面提问的时候,系统保存问题,然后更新用户的提问数,最后触发一个问题已经被创建的异步事件来解耦逻辑(代码均使用 Lumen 框架):<?phptry {    DB::beginTransaction();    $ques...

2018-04-27 14:44:07 624

转载 linux追查线上问题常用的命令

(1)查占用cpu最多的进程方法一:核心指令:ps实际命令:ps H -eo pid,pcpu | sort -nk2 | tail执行效果如下:[work@test01 ~]$ ps H -eo pid,pcpu | sort -nk2 | tail31396 0.631396 0.631396 0.631396 0.631396 0.631396 0.631396 0.631396 0.630...

2018-04-25 08:57:21 217

原创 nginx优化--提高并发效率

一、一般来说nginx 配置文件中对优化比较有作用的为以下几项:1. worker_processes 8;nginx 进程数,建议按照cpu 数目来指定,一般为它的倍数 (如,2个四核的cpu计为8)。2. worker_cpu_affinity 00000001 00000010 00000100 00001000 00010000 00100000 01000000 10000000;为每个...

2018-04-23 09:08:48 2979

原创 php表单防止重复提交(防csrf漏洞)

Token浅谈Token,就是令牌,最大的特点就是随机性,不可预测。一般黑客或软件无法猜测出来。那么,Token有什么作用?又是什么原理呢?Token一般用在两个地方——防止表单重复提交、anti csrf攻击(跨站点请求伪造)。两者在原理上都是通过session token来实现的。当客户端请求页面时,服务器会生成一个随机数Token,并且将Token放置到session当中,然后将Token发...

2018-04-19 16:12:54 622

转载 php关于时间的处理

1.获取上个月第一天及最后一天.   echo date('Y-m-01', strtotime('-1 month'));   echo "<br/>";   echo date('Y-m-t', strtotime('-1 month'));   echo "<br/>";   上面的方法有些问题,根据bg5hfc回复做下修改 上个月第一天: echo date('Y-...

2018-04-12 09:00:13 176

转载 php匹配时间格式

php+mysql一般情况下存储时间都为时间戳,但实际需要的时候,我们很可能需要对时间进行修改,这就需要由时间戳转换到时间格式,再时间格式转换为时间戳,而php需要一定的时间格式才能转换成时间戳(表示从格林威治时间1970年01月01日00时00分00秒起至现在的总秒数),因此需要进行正则判断下面贴出代码:<?php//匹配时间格式为2012-02-16或2012-02-16 23:59:...

2018-04-08 16:14:45 1062

转载 数据库大表优化策略二

垂直拆分垂直分库是根据数据库里面的数据表的相关性进行拆分,比如:一个数据库里面既存在用户数据,又存在订单数据,那么垂直拆分可以把用户数据放到用户库、把订单数据放到订单库。垂直分表是对数据表进行垂直拆分的一种方式,常见的是把一个多字段的大表按常用字段和非常用字段进行拆分,每个表里面的数据记录数一般情况下是相同的,只是字段不一样,使用主键关联垂直拆分的优点是:可以使得行数据变小,一个数据块(Block...

2018-03-23 09:25:49 287

转载 MySQL大表优化方案(推荐一)

当MySQL单表记录数过大时,增删改查性能都会急剧下降,可以参考以下步骤来优化:单表优化除非单表数据未来会一直不断上涨,否则不要一开始就考虑拆分,拆分会带来逻辑、部署、运维的各种复杂度,一般以整型值为主的表在千万级以下,字符串为主的表在五百万以下是没有太大问题的。而事实上很多时候MySQL单表的性能依然有不少优化空间,甚至能正常支撑千万级以上的数据量:字段尽量使用TINYINT、SMALLINT、...

2018-03-23 09:20:16 225

转载 php结合redis实现高并发下的抢购、秒杀功能的实例

抢购、秒杀是如今很常见的一个应用场景,主要需要解决的问题有两个:1 高并发对数据库产生的压力2 竞争状态下如何解决库存的正确减少("超卖"问题)对于第一个问题,已经很容易想到用缓存来处理抢购,避免直接操作数据库,例如使用Redis。重点在于第二个问题常规写法:查询出对应商品的库存,看是否大于0,然后执行生成订单等操作,但是在判断库存是否大于0处,如果在高并发下就会有问题,导致库存量出现负数1234...

2018-03-23 09:17:23 245

转载 php四种基础算法:冒泡,选择,插入和快速排序法--转载

许多人都说 算法是程序的核心,一个程序的好于差,关键是这个程序算法的优劣。作为一个初级phper,虽然很少接触到算法方面的东西 。但是对于冒泡排序,插入排序,选择排序,快速排序四种基本算法,我想还是要掌握的。下面是我按自己的理解,将四个方法分析一遍。需求:分别用 冒泡排序法,快速排序法,选择排序法,插入排序法将下面数组中 的值按照从小到的顺序进行排序。 $arr(1,43,54,62,21,66,...

2018-03-07 13:22:06 159

转载 【Linux】-bash: locate: command not found--转载

【Linux】-bash: locate: command not found装好系统发现使用locate查找文件,提示-bash: locate: command not foundyum install locate 无效,看来locate不是软件名称[root@centos64 ~]# yum search locate ============================= N/S M...

2018-03-06 11:20:34 1162

空空如也

空空如也

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

TA关注的人

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