![](https://img-blog.csdnimg.cn/20201014180756930.png?x-oss-process=image/resize,m_fixed,h_64,w_64)
技术总结
文章平均质量分 81
faker_wang
https://baijunyao.com/git 大牛博客
展开
-
MySQL · 性能优化 · MySQL常见SQL错误用法
MySQL · 性能优化 · MySQL常见SQL错误用法前言MySQL在2016年仍然保持强劲的数据库流行度增长趋势。越来越多的客户将自己的应用建立在MySQL数据库之上,甚至是从Oracle迁移到MySQL上来。但也存在部分客户在使用MySQL数据库的过程中遇到一些比如响应时间慢,CPU打满等情况。阿里云RDS专家服务团队帮助云上客户解决过很多紧急问题。现将《ApsaraDB专家诊断报告》中出现的部分常见SQL问题总结如下,供大家参考。常见SQL错误用法1. LIMIT 语句分页查询是最常用原创 2021-04-21 10:25:31 · 203 阅读 · 0 评论 -
2020年最新版MySQL面试题(一)
数据库基础知识一、为什么要使用数据库1.数据保存在内存优点:存取速度快缺点:数据不能永久保存2.数据保存在文件优点:数据永久保存缺点:①速度比内存操作慢,频繁的IO操作;②查询数据不方便。3.数据保存在数据库①数据永久保存;②使用SQL语句,查询方便效率高;③管理数据方便。二、什么是SQL?定义:结构化查询语言(Structured Query Language)简称SQL,是一种数据库查询语言。作用:用于存取数据、查询、更新和管理关系数据库系统。三、什么是MySQL?MySQL原创 2020-07-29 09:25:39 · 591 阅读 · 1 评论 -
redis有序集合性能 列表、集合、有序集合
1.1 列表 列表(list)类型是用来存储多个字符串,元素从左到右组成一个有序的集合.列表中的每个字符串被称为元素(element),一个列表最多可以存储(2的32次方)-1个元素.在redis中,可以对列表两端插入(push)和弹出(pop),还可以获取指定范围的元素列表、获取指定所有下标的元素等.列表类型有两个特点:①列表中的元素是有序的,这就意味着可以通过索引下标获取某个元素或者某...转载 2018-11-05 11:39:56 · 361 阅读 · 0 评论 -
论一个好的APP接口的自我修养
首先,一个好接口要长得好看。在这个看脸的社会,颜值总是放在第一位的。接口代码也是如此,脏乱差的代码,其他人一眼都不想看,更别说维护和修改了。我们对人的要求一般是“干净整洁讲卫生”,对代码类似,至少要做到“空格缩进有标准”吧。如果你不知道什么是好的标准,那么遵循PEP8啊。下面是一个外援的代码:图1:外援代码整容前这个代码我看起来是有点难受的:为什么这个函数跟上一个函数之间空4行,下一个函...原创 2018-10-24 16:27:06 · 319 阅读 · 0 评论 -
摘自:共勉!来自一个10年开发经验的PHPer老司机经验之谈
从哪里看到这个,已经记不清了,但是就想做一个分享一、平和的心态,必胜的信念心态决定一切,要写一手好的程序,没有好的心态是不行的。遇事不可急躁,不可轻言放弃,编程过程中遇到困难是常事,一定要有必胜的信念。在程序开发过程中,尤其是初中级程序员,写出的程序或架构会遇到很多问题,其中一些问题比较弱智,而有些问题根本没有碰到过,于是不可太过急躁,应该逐个排查问题的最初源泉,将其干掉。急躁的心态去开发系...原创 2018-10-25 11:30:33 · 431 阅读 · 1 评论 -
两种实现php无限极分类(推荐第二种)
一、两种实现php无限极分类使用php递归实现php无限极分类通过foreach循环实现无限极分类这种方式比较好理解public function getTree1(items,items,items,pid=0){array=[];foreach(array = []; foreach (array=[];foreach(items as $key =&g...原创 2018-10-16 16:24:22 · 365 阅读 · 0 评论 -
长连接、短连接、长轮询和WebSocket
对这四个概念不太清楚,今天专门搜索了解一下,总结一下:长连接:在HTTP 1.1,客户端发出请求,服务端接收请求,双方建立连接,在服务端没有返回之前保持连接,当客户端再发送请求时,它会使用同一个连接。这一直继续到客户端或服务器端认为会话已经结束,其中一方中断连接。优势:减少了连接请求,降低TCP阻塞,减少了延迟,实时性较好。劣势:可能会影响性能,因为它在文件被请求之后还保持了不必要的连接很长...原创 2018-10-16 14:56:49 · 351 阅读 · 0 评论 -
sql语句如何去除重复的数据
有重复数据主要有一下几种情况:1.存在两条完全相同的纪录这是最简单的一种情况,用关键字distinct就可以去掉example: select distinct * from table(表名) where (条件)2.存在部分字段相同的纪录(有主键id即唯一键)如果是这种情况的话用distinct是过滤不了的,这就要用到主键id的唯一性特点及group by分组example:se...原创 2018-10-18 16:07:44 · 40892 阅读 · 1 评论 -
php中生成二维码图片
PHP如何生成二维码图片在我们开发过程中,往往我们会遇到将某个商品或者将某个活动生成一个二维码,当用户扫描二维码时候,用户可以直接跳转到商品详细页面或者活动详情页面。那我们如何生成一个二维码图片呢,来,看这里哦!!!1.封装代码篇:function qrcodeLogo($url='',$logo='',$filepath,$level=3,$size=20){ Vendor('p...原创 2018-10-13 11:35:23 · 1154 阅读 · 0 评论 -
在php中如何产生随机字符串
当我们在开发的时候,我们会遇到这些业务场景:如给用户信息一个随机的字符串作为一个唯一的认证方式、给商家一个特定的标识、给某些商品一个代表、存为一个session标识作为缓存、给redis一个键值对等等。我们很多场景都会需要一个随机字符串使用,这里小王给大家,封装了一个可以获取一个随机字符串的一个函数,我这里使用了26个大小写的字母组合,你使用时后可以加上字母和数字,还可以加上特殊字符,做些改变都...原创 2018-10-13 11:26:19 · 761 阅读 · 0 评论 -
php获取上传图片的宽和高
需求在开发时候,为了服务器压力变小,前端页面展示好展示,我们对于上传的图片大小有个严格的限制。不能让图片太大,否则不仅仅服务器压力方面有问题,前端显示也会出现问题,因此我们要在源头上也就是后台做个限制。在后台上传图片资源进行大小和宽高限制。代码实现 /** * 判断上传文件的宽高 */ public function judge_img($url){ ...原创 2018-10-13 11:13:12 · 4424 阅读 · 0 评论 -
项目流程管理
目标人群:技术经理、项目经理项目结构流程图:原创 2019-03-14 10:55:23 · 265 阅读 · 0 评论 -
转:秒杀系统优化方案之缓存、队列、锁设计思路
链接:https://segmentfault.com/a/1190000008888926转载 2019-02-21 11:36:27 · 212 阅读 · 0 评论 -
转自:【高并发简单解决方案】redis队列缓存 + mysql 批量入库 + php离线整合
链接:https://segmentfault.com/a/1190000004136250转载 2019-02-21 11:35:17 · 212 阅读 · 0 评论 -
Web开发中,什么级别才算是高并发
这篇文章对于高并发的理解很有深度,从这里我们可以对于高并发提供了一个解决方向这并不是一个回答的问题的文章,而是由此引发的一个思考。大家心里仔细想想,当你们听到高并发网站时,心里对这个网站是个什么概念?首先想到的是淘宝吗?带着问题,我们一起思考技术写这个话题是因为我对搜索引擎给我的答案很不满意,然后决定把思考的一些东西分享出来,希望可以大家彼此讨论下。我们经常在面试的时候,被问到有没有高...转载 2019-02-21 15:28:20 · 565 阅读 · 0 评论 -
在阿里云服务器上搭建 SVN 服务端
一、SVN 服务端搭建流程1、安装 svnapt-get install subversion// 方式二:yum install subversion ps:查看版本svnserve --version2、创建版本库先建目录mkdir /usr/xq/svn创建版本库svnadmin create /usr/xq/svnsubversion目录说明:db目录:...转载 2018-12-06 18:13:14 · 1205 阅读 · 0 评论 -
常见的网站服务器架构有哪些?
这篇文章简单粗暴了对架构的介绍初始阶段的网站架构一般来讲,大型网站都是从小型网站发展而来,一开始的架构都比较简单,随着业务复杂和用户量的激增,才开始做很多架构上的改进。当它还是小型网站的时候,没有太多访客,一般来讲只需要一台服务器就够了,这时应用程序、数据库、文件等所有资源都在一台服务器上应用服务和数据服务分离随着网站业务的发展和用户量的增加,一台服务器就无法再满足需求了。大量用...转载 2018-12-05 19:20:45 · 213 阅读 · 0 评论 -
秒杀系统优化方案之缓存、队列、锁设计思路
一、为什么难秒杀系统难做的原因:库存只有一份,所有人会在集中的时间读和写这些数据。例如小米手机每周二的秒杀,可能手机只有1万部,但瞬时进入的流量可能是几百几千万。又例如12306抢票,亦与秒杀类似,瞬时流量更甚。主要需要解决的问题有两个:1. 高并发对数据库产生的压力2. 竞争状态下如何解决库存的正确减少(超卖问题)对于第一个问题,已经很容易想到用缓存来处理抢购,避免直接操作数据库,例如...转载 2018-11-23 19:20:13 · 1025 阅读 · 0 评论 -
Nginx的优化和压力测试
我们要测试 nginx 的负载能力,需要借助压力测试工具。本博客是使用 Apache 服务器自带的一个 web 压力测试工具 ApacheBench ,简称 ab。ab 是一个命令行工具,即通过 ab 命令行,模拟多个请求同时对某一 URL 地址进行访问,因此可以用来测试目标服务器的负载压力。ab 的安装ab 的安装可以去官网下载,如果不想安装 apache,又想使用 ab 命令,可以直接安装...转载 2018-11-19 11:33:52 · 416 阅读 · 0 评论 -
tp5中渲染页面将时间戳转换显示为日期时间格式
<td>{$vo.create_time|date="Y-m-d H:i:s",###}</td>原创 2018-10-13 11:05:55 · 9932 阅读 · 4 评论 -
php面试题汇总
8、redis集群怎么做1、Redis集群提供了以下两个好处1、将数据自动切分(split)到多个节点2、当集群中的某一个节点故障时,redis还可以继续处理客户端的请求。2、集群的方案:redis-cluster集群,采用无中心结构,每个节点保存数据和整个集群状态,每个节点都和其他所有节点连接,主要通过节点的配置,辅以redis的主从来完成集群。由于这块东西我使用得很少,所以只是平时抽...转载 2018-10-12 13:57:07 · 784 阅读 · 0 评论 -
使用redis将系统消息,发送给所有app用户
初衷 现在有个需求,就是后台发布一个系统消息,所有的用户都将接收后台发布的消息。 这个问题该如何解决? 解决方案使用激光推送 我在代码中使用了第三方工具,使用极光推送,但是发现我们的服务器,再使用用出现了,服务器瘫痪,这个解决方案不可执行使用redis缓存 直接看代码/** * @发送 */ public function se...原创 2018-07-18 18:37:27 · 1323 阅读 · 0 评论 -
tp5开发PayPal
首先在你项目下安装composer引入paypal的sdk 首先在composer.json添加引入paypal 在linux服务器你的项目地址执行指令 指令:composer require “braintree/braintree_php”<?php/** * Created by PhpStorm. * User: baiwuya * Date: 2018/6/2...原创 2018-07-18 11:21:33 · 909 阅读 · 0 评论 -
分布式数据存储算法
1 概念 分布式数据存储中,数据是分布式在不同的服务器上的,那么每条数据应该存储到哪台服务器?取的时候又应该去哪台服务器去取?分布式数据存储算法就是解决此类问题的算法2 hash算法 2.1 过程 客户端开始操作数据 服务器对数据的key进行hash计算,得到一个数字 服务器对得到的数字与服务器数量做取余计算,得到服务器的编号 服务器在相应的服务器上进行操作 hash算法的数据存...转载 2018-07-17 19:33:30 · 476 阅读 · 0 评论 -
原 跳跃表的原理及实现(详细的对跳跃表进行详细讲解)
跳跃表的原理 学过数据结构的都知道,在单链表中查询一个元素的时间复杂度为O(n),即使该单链表是有序的,我们也不能通过2分的方式缩减时间复杂度。 这里写图片描述如上图,我们要查询元素为55的结点,必须从头结点,循环遍历到最后一个节点,不算-INF(负无穷)一共查询8次。那么用什么办法能够用更少的次数访问55呢?最直观的,当然是新开辟一条捷径去访问55。 这里写图片描述如上图...转载 2018-07-17 18:37:32 · 876 阅读 · 0 评论 -
详解 Redis 应用场景及应用实例(转载),这篇文章对redis使用很有深度,让人恍然大悟感觉
Redis是一个开源的使用ANSI C语言编写、支持网络、可基于内存亦可持久化的日志型、Key-Value数据库,并提供多种语言的API。从2010年3月15日起,Redis的开发工作由VMware主持。 1. MySql+Memcached架构的问题实际MySQL是适合进行海量数据存储的,通过Memcached将热点数据加载到cache,加速访问,很多公司都曾经使用过这样的架构,但随着业务...转载 2018-07-17 15:12:09 · 538 阅读 · 0 评论 -
每个用户对系统消息的读、删除(不是瞬间并发,但是达到每个用户都有这个系统消息,用户的系统消息可以删除)
系统消息简介 客户需求是:后台发布了一个公告,每个用户在手机app端必须出现这个公告,第一次想法是,建立一个表专门存储系统消息,但是如果用户足够多的时候,并发量特别大,一千个用户,连续发布两条系统消息,并发会出现问题(服务器不太好),所以必须找到一个解决方法。我的解决办法是:发布的一个系统消息,我存储在系统消息表,当用户点击查看的时候我才将这条新的数据插入到用户读的消息表中。这样只有用...原创 2018-06-28 15:58:46 · 513 阅读 · 0 评论 -
在阿里云linux安装composer
1、执行如下命令(安装composer): curl -sS https://getcomposer.org/installer | php 注意: 如果上述方法由于某些原因失败了,你还可以通过 php >下载安装器: php -r “readfile(‘https://getcomposer.org/installer‘);” | php ...原创 2018-07-16 16:26:50 · 2098 阅读 · 0 评论 -
如何将代码传到GitHub,一些配置和准备工作
转自:https://blog.csdn.net/qq_20044689/article/details/51659665转载 2018-07-16 14:14:51 · 156 阅读 · 0 评论 -
七牛前期配置
七牛 1.登陆七牛 配置七牛推流域名,播放地址域名。配置存储空间,配置加速域名 配置:ak sk hux_name原创 2018-06-07 17:25:24 · 181 阅读 · 0 评论 -
前端页面产生了一个对象,如何将对象提交到后台也是对象
将对象提交到后台出现的情况 开发中遇到一个问题?就是我在前台使用js中循环中一个一个数组,但是当我提交到前台时候,发现提交到后台只是文字表示对象对象,这是什么问题,身边同事让我转对象字符串,发现和前台提交后台的数据相同的,达到我需要的数据结构。现在开始贴代码了,走过路过过来看看,不足的地方请大家拍砖指教。转入正题。。 代码端 前台的js代码成数组 这里在前端产生的数...原创 2018-07-06 14:57:41 · 11165 阅读 · 0 评论 -
paypal开发网站
1.教程https://developers.braintreepayments.com/start/tutorial ...原创 2018-07-31 14:02:19 · 360 阅读 · 0 评论 -
PHP —— 观察者模式
观察者模式当一个对象或事件发生变化时,其他的对象实例或者事件需要跟着发生相应改动或者进行相应动作的一对多关系可进行应用。如:订单状态变化(支付完成)后需要进行,短信通知,公众号推送等一系列相应操作时。可将订单类看成一个被观察者,短信通知类,公众号通知,app推送等相关通知类视为观察者。具体实现和调用步骤:分别实现 SplSubject、SplObserver类,在SplSubject实现...原创 2018-10-12 13:55:41 · 619 阅读 · 0 评论 -
git解决冲突的方法
You are not currently on a branch, so I cannot use any症状:有一次pull的时候又出现冲突,这回用“git reset --hard FETCH_HEAD”方法都不行了,出现:$ git pullYou are not currently on a branch, so I cannot use any‘branch..merge...原创 2018-10-12 13:53:38 · 1858 阅读 · 0 评论 -
python开发大全、系列文章、精品教程
python基础教程 python基础系列教程——Python的安装与测试:python解释器、PyDev编辑器、pycharm编译器python基础系列教程——Python库的安装与卸载python基础系列教程——Python3.x标准模块库目录python基础系列教程——Python中的编码问题,中文乱码问题python基础系列教程——python基础语法全解python...转载 2018-09-10 12:03:19 · 657 阅读 · 0 评论 -
关于tp5使用微信支付宝app支付、扫码支付
业务需求 客户需要在app上、web网站上接入微信支付支付 2.准备 前期准备商家在微信、蚂蚁金服申请支付,具体流程参考支付文档申请流程 3.配置 前期我将一些配置配置在与database.php文件目录的config.php文件下,具体代码如下:配置<?phpreturn [ // +-------------------------------------...原创 2018-09-11 18:35:09 · 3634 阅读 · 0 评论 -
tp5展示数据去除查到重复的数据
去掉查询数据库重复数据 在开发过程中遇到一个,不知道什么原因连表查询的数据出现重复,使用了php自带函数array_unique()这个,无法实现我的需求,使用到返回的数据为null。 因此我需要找到一个办法去除查询到重复的数据,我想到两种方法。 第一种: foreach循环将那查询到的数据for循环,当出现重复的id时候,我将这个数据只保留一次到一个空...原创 2018-09-11 17:17:27 · 13386 阅读 · 0 评论 -
workman如何实现异步任务
问题遇到一个问题,php是单线程,无法实现多线程。现在我需要使用一个场景是多个链接使用一个线程,也就是在一个连接进程,再开进程来处理2.解决方案 workman如何实现异步任务。workman可以帮我解决问题, 给予文档一个解答 问: 如何异步处理繁重的业务,避免主业务被长时间阻塞。例如我要给1000用户发送邮件,这个过程很慢,可能要阻塞数秒,这个过程中因...原创 2018-08-30 11:50:26 · 5266 阅读 · 0 评论 -
workman安装以及使用
前期重点文档 文档地址自己体会 Workerman是一款纯PHP开发的开源高性能的PHP socket 服务框架。 Workerman不是重复造轮子,它不是一个MVC框架,而是一个更底层更通用的socket服务框架,你可以用它开发tcp代理、梯子代理、做游戏服务器、邮件服务器、ftp服务器、甚至开发一个php版本的redis、php版本的数据库、php版本的nginx、php版本的ph...原创 2018-08-24 11:06:33 · 13310 阅读 · 0 评论 -
Docker入门与实战讲解
简述Docker 是一个开源的应用容器引擎,让开发者可以打包他们的应用以及依赖包到一个可移植的容器中,然后发布到任何流行的 Linux 机器上,也可以实现虚拟化。容器是完全使用沙箱机制,相互之间不会有任何接口(类似 iPhone 的 app)。几乎没有性能开销,可以很容易地在机器和数据中心中运行。最重要的是,他们不依赖于任何语言、框架包括系统。Docker是什么? Docker是基于G...转载 2018-08-13 11:08:38 · 174 阅读 · 0 评论