201906-04 PHP实现SSO单点登录步骤 HOT 一、什么是单点登录SSO(SingleSign-On) SSO是一种统一认证和授权机制,指访问同一服务器不同应用中的受保护资源的同一用户,只需要登录一次,即通过一个应用中的安全验证后,再访问其他应用中的受保护资源时,不再需要重新登录验证。二、单点登录解决了什么问题解决了用户只需要登录一次就可以访问所有相互信任的应用系统,而不用重复登录。 例如C... 继续阅读 >
201906-04 PHP代码安全有必要了解下 HOT SQL注入攻击者通过构造恶意SQL命令发送到数据库,如果程序未对用户输入的SQL命令执行判断过滤,那么生成的SQL语句可能会绕过安全性检查,插入其他用于修改后端数据库的语句,并可能执行系统命令,从而对系统造成危害例如删除id为1的帖子,sql如下:如果有人在提交post_id时输入1OR1,你的语句会组合成这样:一般比较常出现在原生的SQL操作,框架一般会解决这方面的问题。通常采用参数控制或过滤特殊字符... 继续阅读 >
201906-04 MySQL 到底是怎么解决幻读的? HOT 一、什么是幻读在一次事务里面,多次查询之后,结果集的个数不一致的情况叫做幻读。而多出来或者少的哪一行被叫做幻行。二、为什么要解决幻读在高并发数据库系统中,需要保证事务与事务之间的隔离性,还有事务本身的一致性。三、MySQL是如何解决幻读的如果你看到了这篇文章,那么我会默认你了解了脏读、不可重复读与可重复读。1.多版本并发控制(MVCC)(快照读/一致性读)多数数据库都实现了多版本并... 继续阅读 >
201906-03 为什么Redis 是单线程却能支撑高并发? HOT 最近在看UNIX网络编程并研究了一下Redis的实现,感觉Redis的源代码十分适合阅读和分析,其中I/O多路复用(mutiplexing)部分的实现非常干净和优雅,在这里想对这部分的内容进行简单的整理。几种I/O模型为什么Redis中要使用I/O多路复用这种技术呢?首先,Redis是跑在单线程中的,所有的操作都是按照顺序线性执行的,但是由于读写操作等待用户输入或输出都是阻塞的,所以I/O操作在一般情况下往往不能直接返回... 继续阅读 >
201906-03 Laravel5实现的RBAC权限管理操作示例 HOT 根据不同的权限,在菜单栏显示不同的功能,只对菜单进行了限制,若对路由也进行限制,可以根据菜单的例子,请自行完善,开发。下面请认真学习一下laravel的RBAC设计1、建表(用户表、角色表、权限表、用户角色表、角色权限表)CREATE TABLE IF NOT EXISTS mr_role(id int(11) PRIMARY KEY AUTO_INCREMENT COMMENT '自增id',name varchar(30) NOT N... 继续阅读 >
201906-03 workerman定时任务 HOT 一、下载workermanhttps://www.workerman.net/download二、下载workerman/mysqlhttp://doc3.workerman.net/6402011、定时函数为匿名函数(闭包)use \Workerman\Worker;use \Workerman\Lib\Timer;require_once './Workerman/Autoloader.php';$task = new Worker();// 开启多少个进程运行定时任务,注意多进程并发问题$task->count = 1;$task->onWorkerStart ... 继续阅读 >
201906-01 Mysql数据库的分布式锁有哪几种? HOT 悲观锁Mysql实现分布式悲观锁:直接创建一张锁表,然后通过操作该表中的数据来实现了。当我们要锁住某个方法或资源时,我们就在该表中增加一条记录,想要释放锁的时候就删除这条记录。创建这样一张数据库表:CREATE TABLE `methodLock` ( `id` int(11) NOT NULL AUTO_INCREMENT COMMENT '主键', `method_name` varchar(64) NOT NULL&nb... 继续阅读 >
201906-01 整理了Git遇到错误时如何解决的一些坑 HOT 在工作中,你总是与代码打交道,上传代码的时候,相信你不是用svn,就是用Git版本控制器,下面是最近这几天整理下来经常会遇到的Git的一些错误的解决访问,希望能帮助到你。 继续阅读 >
201905-31 面试中,经常考到的MySQL题 HOT 1. 如何设计一个高并发的系统 ① 数据库的优化,包括合理的事务隔离级别、SQL语句优化、索引的优化 ② 使用缓存,尽量减少数据库 IO ③ 分布式数据库、分布式缓存 ④ 服务器的负载均衡 继续阅读 >
201905-31 基础:永远不要在 MySQL 中使用“utf8” HOT 最近我遇到了一个 bug,我试着通过 Rails 在以“utf8”编码的 MariaDB 中保存一个 UTF-8 字符串,然后出现了一个离奇的错误: 我用的是 UTF-8 编码的客户端,服务器也是 UTF-8 编码的,数据库也是,就连要保存的这个字符串“ <…”也是合法的 UTF-8。 问题的症结在于,MySQL 的“utf8”实际上不是真正的 UTF-8。 继续阅读 >
201905-31 主从配置,读写分离是MySQL性能优化重点 HOT 有些大型网站为了软解大量的并发访问,除了在网站实现分布式负载均衡,远远不够。到了数据业务层、数据访问层,如果还是传统的数据结构,或者只是单单靠一台服务器扛,如此多的数据库连接操作,数据库必然会崩溃,数据丢失的话,后果更是不堪设想。 继续阅读 >
201905-30 Mysql语句性能优化52条 HOT 这里总结了52条对sql的查询优化,下面详细来看看,希望能帮助到你1,对查询进行优化,应尽量避免全表扫描,首先应考虑在where及orderby涉及的列上建立索引。2,应尽量避免在where子句中对字段进行null值判断,创建表时NULL是默认值,但大多数时候应该使用NOTNULL,或者使用一个特殊的值,如0,-1作为默认值。3,应尽量避免在where子句中使用!=或<>操作符,MySQL只有对以下操作符才使用索引:<,<=... 继续阅读 >
201905-30 PHP实现页面静态化 HOT 随着网站的内容的增多和用户访问量的增多,无可避免的是网站加载会越来越慢,受限于带宽和服务器同一时间的请求次数的限制,我们往往需要在此时对我们的网站进行代码优化和服务器配置的优化。 现在很多网站在建设的时候都要进行静态化的处理,为什么网站要进行静态化处理呢?我们都知道纯静态网站是所有的网页都是独立的一个html页面,当我们访问的时候不需要经过数据的处理直接就能读取到文件,访问速度就可想而知了,而其对于搜索引擎而言也是非常友好的一个方式。 继续阅读 >
201905-29 PHP导出成PDF你用哪个插件 HOT 首先查询了相关的类库,有FPDF,zendPDF,TcPDF等等。首先看了下先选择了FPDF,可以说除了中文字符以外没有什么问题,中文乱码而且看了下最新版本没有很好的解决方案,所以只能放弃。后来就专门找支持中文的发现了TcPDF,开始也是中文字体支持不是很好,但是发现了有人做了中文的语言包才使得TcPDF更加完美起来。 继续阅读 >
201905-29 深入理解MySQL优化“套路” 说起 MySQL 的查询优化,相信大家收藏了一堆奇技淫巧:不能使用 SELECT *、不使用 NULL 字段、合理创建索引、为字段选择合适的数据类型..... 你是否真的理解这些优化技巧?是否理解它背后的工作原理?在实际场景下性能真有提升吗?我想未必。 因而理解这些优化建议背后的原理就显得尤为重要,希望本文能让你重新审视这些优化建议,并在实际业务场景下合理的运用。 继续阅读 >
201905-28 Redis Stream——作为消息队列的典型应用场景 HOT Redis作为一个嵌入式的存储系统跑在各个IoT设备上,各个设备使用 Redis Stream 暂存产生的时序数据,然后再异步的推送到云端。云上部署的各个业务程序,会读取推送的原始数据,基于一定的规则进行分析,然后将结果写入可靠的数据存储系统。用户读取结果,在APP或者web页面上进行展示,从而整个系统形成一个闭环。 继续阅读 >
201905-28 日均7亿交易量,如何设计高可用的MySQL架构? HOT 对分布式数据库来说,我们从 2015 年以来,就一直跟踪着业界很多的分布式数据库的产品。 我们应用级的分布式解决方案也好,包括我们的分布式访问层的解决方案也好,可能有些场景还真的是无法应对的。 我们也在探索,随着生态圈和国内技术的逐步成熟,我们也在考虑分布式数据库技术的探索和引入的事情,同时从另外一个角度来说,在现在这种国际的关系形势下,需要做一些技术的储备,有自主支撑下来的能力。 继续阅读 >
201905-24 月薪3K的程序员和月薪30K的程序员区别在哪? HOT 众所周知,PHP被戏称为“最好用的语言”,虽然这是调侃,但也在一定程度上证明了PHP的实用性和重要性。PHP于1994年正式开始使用,当时只是很简单的一些性能,产生基本的动态网页程序。而后经过不断改进,加入大量创新技术,而今PHP7.4也已经被推出去,被广大程序员们使用。PHP总共有3个阶段:第一:初级:可以完成分配给你的任务,即人家让你干什么你就干,做出来的东西符合要求。(代码级别,根据要求写代码)第二:... 继续阅读 >
201905-23 Python凭什么成为黑客最喜欢的高级语言? HOT 很多在六星教育培训的学员们在经过几个月的学习后,就能找到一份满意的工作。前期一般以8K——10K的薪酬起步,但是随着项目经验的增加,基本过了一段时间后,薪酬就会进入一个快速增长期,距离心中理想的薪酬越来越近! 继续阅读 >
201905-23 MySQL百万级数据量分页查询方法及其优化 HOT 方法1: 直接使用数据库提供的SQL语句 语句样式: MySQL中,可用如下方法: SELECT * FROM 表名称 LIMIT M,N 适应场景: 适用于数据量较少的情况(元组百/千级) 原因/缺点: 全表扫描,速度会很慢 且 有的数据库结果集返回不稳定(如某次返回1,2,3,另外的一次返回2,1,3). Limit限制的是从结果集的M位置处取出N条输出,其余抛弃. 继续阅读 >
201905-20 “PHP是世界上最好的语言”这个梗怎么来的? 新推出PHP应用课程,入门篇与进阶篇适应不同需求的学员,最大满足每个人不同的需要。你想理解“php是世界上最好的语言”这个梗吗?那就来六星教育学习PHP! 继续阅读 >
201902-16 网站升级HTTPS操作步骤,php程序员必备 现在越来越多的网站开始使用https协议,其实百度从2014年底就已经开始支持https了,并且据说在排名上,同权重的网站,开启https会优待提升排名。 继续阅读 >