自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

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

原创 PHP批量导出20万条数据解决消耗内存和时间问题

在项目中使用php批量导出数据到Excel中,大量数据2w,5w,10w数据就要面临问题1、导出时间变得很慢,少则1分钟,多则好几分钟,数据量一旦上来,还可能面临导不出来的困窘(这种导出效率正常人都会受不了,更何况是要求苛刻的用户)。2、导出消耗大量的内存资源,即使把php内存使用设置为无限大,当多个用户同时使用导出功能导出大量数据的时候,服务器内存使用就会直线往上升,报警,甚至宕机,严重...

2019-06-18 17:43:03 2965 1

原创 两个线程交替打印A1B2C3D4E5输出,6种实现方式

JUC实现两个线程交替打印

2022-06-23 11:01:52 976 1

原创 php实现代理模式静态+动态代理

代理模式就是代理目标对象,实现对其访问控制,通过代理人来完成实现功能静态代理就是显示地代理目标对象,思想是静态代理在使用时,需要定义接口或者父类,被代理对象与代理对象一起实现相同的接口或者是继承相同父类使用时需要注意:代理对象与目标对象要实现相同的接口,然后通过调用相同的方法来调用目标对象的方法代码实现统一的接口interface IUser{ public function save();}目标对象实现接口:class User implements IUse

2021-05-27 16:07:46 640

原创 位运算的奇技淫巧

判断奇偶数 (奇数)a&1==1 (偶数)a&1==0整除2 a>>1取最低位的1 a&(~(a-1))判断两个数是否相等 a^b==1 不相等 a^b==0是相等求一个数二进制位有几个1,用消去1的次数来统计 a&(a-1) 消去最后一位1...

2021-03-15 11:36:07 201

原创 go语言中的互斥锁sync.Mutex

go协程并发不安全,如下面的例子开启100个协程sum+10计算求和package mainimport ( "fmt" "time")var sum = 0func main(){ for i := 0; i < 100; i++ { go add(10) } //防止提前退出 time.Sleep(2 * time.Second) fmt.Println("和为:",sum)}func add(i...

2021-01-18 18:02:56 244

原创 go管道channel几点注意

1.关闭channel后不能在发送数据,会引起panic错误package mainfunc main(){ c := make(chan int, 10) c <- 1 c <- 2 close(c) c <- 3 //panic错误}运行文件后结果panic错误但是可以接收数据,接收数据返回零值package mainimport "fmt"func main(){ c := make(chan int, 10) c <- 1

2021-01-18 17:43:38 354

原创 Mysql中innodb引擎表页大小16KB超出大小怎么办?

我们都知道innodb的页块大小默认为16kb,表中数据是存放在B-tree官方文档中给出the maximum row size for the default innodb_page_size of 16KBinnodb的页块中,但如果表中一行的数据长度超过了16k,这时候就会出现行溢出,溢出的行是存放在另外的地方,存放该溢出数据的页叫uncompresse blob page。还需注意的是,innodb采用聚簇索引的方式把数据存放起来,即B+TREE结构,因此每个页块中至少有两行数据,否.

2020-07-16 12:31:50 10255 4

原创 用php实现找出数组中唯一不重复的元素

给定一个数组找出数组中唯一一个不重复的元素,要求只能遍历一次,不能使用额外的空间,怎么实现?首先我回反问下数组中重复元素是相邻的吗?如果是相邻的可以用异或运算,一个数异或它本身是0例如 0^1 = 1 1^0=1,0^0= 01^1=0只有在两个比较的位不同时其结果是1,否则结果为0数组元素是[1,1,2,3,3,4,4,5,5]用php代码实现function NumberOf1($arr){ $res = -1; $len = count($arr); .

2020-05-20 14:54:39 547

原创 聊一聊go的协程

最近在学习go语言,学习到了协程,来记录下学习的心路历程先来看下例子:打印5个hello和5个worldpackage mainfunc say(s string) { for i := 0; i < 5; i++ { println(s) }}func main() { go say("Hello") go say("World")}go 启动协程的方式就是使用关键字 go,后面一般接一个函数或者匿名函数执行上述代码发现什

2020-05-18 16:38:46 152

原创 使用xpath爬取网页文章url标题

本文使用python3# -*- coding:utf-8 -*-import requests# 由于XPath属于lxml库模块,所以首先要安装库lxml pip install lxmlfrom lxml import etreeimport csvurl = "https://news.sina.com.cn/china/"# 爬取页面url地址# 根据url获取页面...

2019-10-24 11:56:59 6024

原创 PHP对象类型在内存堆栈中的分配情况

对象在PHP里面和整型、浮点型一样,也是一种数据类,都是存储不同类型数据用的,在运行的时候都要加载到内存中去用,那么对象在内存里面是怎么体现的呢?内存从逻辑上说大体上是分为4段,栈空间段、堆空间段、代码段、初始化静态段,程序里面不同的声明放在不同的内存段里面。数据段(data segment)通常是指用来存放程序中已初始化且不为0的全局变量如:静态变量和常量代码段(code segmen...

2019-09-30 11:24:42 216

原创 str_replace,strtr,preg_replace区别

php中在字符串的替换模块有3个函数,str_replace(),preg_replace(),以及strtr()。在编程过程中,这三个函数的执行效率有所不同,str_replace()函数比preg_replace()函数执行效率快,而strtr()函数的执行效率又高于str_replace(),所以在编程中建议使用strtr()函数。str_replace():str_replace(...

2019-09-24 11:28:33 1236

原创 python用flask实现百度搜索框

使用是python3.7版本安装flask库 pip install flask打开百度网址https://www.baidu.com/分析百度的输入框。按F12键查看代码元素输入框text的名称为‘wd’https://www.baidu.com/s?wd=python&rsv_spt=1&rsv_iqid=0xc9849ea400022122&amp...

2019-09-24 11:18:17 3283

原创 php工作中几点优化方法

一、从php代码层面几点优化建议1.尽量静态化: 如果一个方法能被静态,那就声明它为静态的,速度可提高1/4 当然了,测试方法需要在十万级以上次执行,效果才明显。 其实静态方法和非静态方法的效率主要区别在内存:静态方法在程序开始时生成内存,实例方法在程序运行中生成内存,所以静态方法可以直接调用,实例方法要先成生实例,通过实例调用方法,静态速度很快,但是多了会占内存。...

2019-09-11 15:53:23 203

原创 css实现好看的单选按钮和复选框

效果如图片所示:代码如下:<!DOCTYPE html><html><head><meta charset="UTF-8"><title></title></head><style type="text/css">/*复选框*/.gcs-checkbox { displ...

2019-08-21 16:17:17 1460

原创 使用php实现redis分布式锁

redis来实现分布式锁的原理就是将程序中一个唯一的key写入redis中,当有其他分布式应用要访问时候此key时,就去redis中读取,读取到了则说明此数据正在被处理,读取不到则说明可以进行处理;但是,想将分布式锁处理的妥当,还真不是一件轻松地事情,继续往后看。在redis实现的分布式锁中,我们需要强调以下几点,只有保证了以下几点,才可说是确保了锁的实现:(1)互斥,在任何时刻,对于...

2019-08-21 11:41:17 1627 1

原创 工作中PHP常用方法函数整理

1.打印信息,方便排错function debug($data){ if(empty($data)){ var_dump($data); die; } if(!is_array($data)){ echo "<pre style='background-color: #000;color: #fff;fon...

2019-08-15 10:55:31 253

原创 实现页面跳转

实现跳转,URL为跳转页面的地址<!DOCTYPE html><html><head><meta http-equiv="refresh" content="0;URL=****"></></head></html>谢谢,ALL!...

2019-08-14 18:16:58 104

原创 php实现ipv4和ipv6地址转换成数字类型存储数据库中

ip地址分两种ipv4和ipv6ipv4地址在php代码中使用ip2long()函数实现将ip地址转化成10位整数$ip = $_SERVER['REMOTE_ADDR'];$ipnum = ip2long($ip);echo $ipnum;以整数存储,查询较快将转化后的数字转换回ip地址使用long2ip()函数echo long2ip($ipnum);ipv6的...

2019-08-14 18:10:23 838

原创 如何保证消息队列中的消息不被重复消费

如何保证消息不被重复消费啊(如何保证消息消费时的幂等性)?首先就是比如rabbitmq、rocketmq、kafka,都有可能会出现消费重复消费的问题,正常。因为这问题通常不是mq自己保证的,是给你保证的。然后我们挑一个kafka来举个例子,说说怎么重复消费吧。想好例子在写谢谢,ALL!...

2019-08-01 15:10:16 590 1

原创 python3实现翻译小工具

使用python3.7实现翻译的小工具,效果如图所示使用自带的安装包tkinter 创建窗口爬取有道翻译,作为翻译的结果,直接上代码# 实现用窗口翻译from tkinter import *from tkinter import messageboximport requestsimport json# 爬取有道云翻译def get_request():...

2019-04-21 13:23:50 1515 1

原创 python模拟实现QQ邮箱登录

安装库selenium 实现模拟浏览器的安装库pip install selenium使用chrome浏览器需要chromedriver驱动下载地址http://npm.taobao.org/mirrors/chromedriver/(可用)找到对应自己电脑浏览器的版本下载将解压的文件chromedriver.exe添加到系统环境变量中并将chromedriver.exe...

2019-04-10 22:02:19 5586 1

原创 python实现微信红包自动提醒

使用是python3.7版本安装itchat库 pip install itchat安装pygame库 pip install pygame微信红包提醒分三个步骤 :1 登录微信 2 设置提醒方式本例以音乐提醒 3 监控红包直接上代码# -*- coding: utf-8 -*-import itchatimport pygame '''微信红包提醒1.提醒 音...

2019-04-05 13:28:14 3294

原创 python实现刷新个人博客访问量

实现访问先安装requestspip install requests本人使用的是python3实现直接上代码# -*- coding: utf-8 -*-import requestsimport timeheaders = { 'User-Agent': 'Mozilla/5.0 (Windows NT 6.1; Win64; x64) AppleWebKit...

2019-04-04 15:17:59 2592

原创 print_r()、var_dump()、var_export()的区别

这三个函数都是打印信息,但是它们之间有点差异1、print_r()和var_dump()已经见过一次某个变量,再次见到这个变量,这两个函数会输出*RECURSION*,而不是再次打印这个变量信息,并继续迭代打印其余信息。var_export()会输出null而不是*RECURSION*,已确保输出可执行php代码。<?php $a = ['username'=>"...

2019-03-19 09:44:49 2125

原创 php实现将一个数组中数字组成一个最大数

在面试中遇到这样一个题,就是将数组中元素组成一个最大数,例子数组中元素为array(1,4,9,94,10,18) 组成最大数为994418110下面是我的思路,直接上代码function getMaxNum($arr){ //将数组中元素取出最高位组成新的数组,新数组的键是原数组的值,新数组的值是元素最高位值 foreach ($arr as $key =&gt; $value) ...

2018-12-25 12:44:09 3605 2

原创 PHP打印log日志文件,存储数据到指定文件中

在项目开发中,作为一个后端开发人员肯定是要经常观察日志等记录来查找开发或上线的各种bug分享一个打印日志记录的方法/** * [errorLog 打印错误日志记录] * @param [type] $message [打印日志记录] * @param [type] $file [日志文件名] * @return [type] [description]...

2018-12-07 11:58:45 5597

原创 windows下安装git及基本配置

1. git安装软件下载地址https://gitforwindows.org/2. 下载完成后,点击.exe安装路径自己选择,其他选项参考下图其他就一步一步点击next即可3. 配置github的ssh密钥:(1)打开Git Bash查看电脑上是否已经存在SSH密钥:输入 cd ~/.ssh如上图出现no such file or directory 说明...

2018-12-06 12:09:27 2308

原创 php实现json_encode()中文字符不转义

在项目中,php提供的接口使用json_encode()函数,在处理中文的时候, 中文都会被编码成Unicode码, 变成不可读的, 类似”\u***”的格式,如果想汉字不进行转码,这里提供三种方法1.php版本在5.3及以下自己写函数实现中文不转义function json_encode_ex($value){ if(version_compare(PHP_VERSION,'...

2018-12-06 11:23:15 4972

原创 php实现判断表达式中括号等是否匹配

&lt;?php /** * title: 判断表达式中括号是否匹配 * Description: () 匹配 )(不匹配 利用压栈和出栈 * 使用数组来模拟进栈和出栈array_push() array_pop() * @author Liu */ header("Content-Type: text/html;charset=utf-8"); functio...

2018-12-06 10:48:18 1957

转载 php设计模式

设计模式思想

2017-10-27 11:09:38 168

空空如也

空空如也

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

TA关注的人

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