自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+

molaifeng的专栏

道阻且长,行则将至;行而不辍,未来可期

  • 博客(224)
  • 资源 (5)
  • 论坛 (64)
  • 收藏
  • 关注

原创 浅谈 Redis

前言Redis 作为一个高性能的内存数据库,其读效率达到 10w qps/s,写也能到达 4-5w qps/s。今天就来简单的聊下其底层的实现,达到知其然并知其所以然。redisServerRedis 作为典型的 C/S 模式,客户端连接到服务端,然后进行交互。那么就来看看服务端的数据结构// server.hstruct redisServer { …… redisDb *db;...

2020-03-20 19:13:07 160 1

原创 浅谈 PHP

这篇博客分三个部分陈述,分别是PHP进程管理器、PHP启动流程和PHP优化。 谈到PHP进程管理器,不得不讲下它的进化过程,CGI--->FastCGI--->PHP-FPM。 CGI全称是“公共网关接口”(Common Gateway Interface),是外部应用程序(CGI程序)与Web服务器之间的接口标准。...

2015-11-15 15:35:37 898 1

原创 微信支付趟过的坑

这段时间在做微信支付开发,在公司的公众号审批下来后,我这边的测试用例也已经开发完毕,于是拿着具体的数据来调试了,大段大段的代码就不贴了,demo里有,这里就说说调试过程中遇到的坑。        第一坑:redirect_url参数错误。因为我选择的的“JS API”支付,这种支付需要网页授权,先获取code,再拿code去获取openid和prepay_id。这个网页授权需要登录微信

2015-01-21 15:49:48 88377 41

原创 简单聊聊硬盘

文章目录前言结构实物图逻辑图盘片、盘面和磁头磁道、柱面和扇区、簇/块磁盘容量计算CHS & LBA磁盘读取响应时间IOPS前言再过几个小时就 2021 了,趁着 2020 还有富余的几个小时,把这个月的博客给更新上。最近一直在补计算机底层的知识,于是把今年最后一更交给硬盘了。注:全文硬盘都是指机械硬盘,也就是 HDD 硬盘。结构实物图逻辑图盘片、盘面和磁头一张盘上下两面,每面都有一个磁头对应着。上图显示四个磁头,对着两个盘片,每个盘片上下两面。磁道、柱面和扇区、簇/块

2020-12-31 23:04:44 77

原创 解决 Got error 28 from storage engine

下午开发的时候,发现页面成白板了,于是开始 debug。由于此项目的认证信息是通过 HTTP 接口获取的,查看日志,发现 “array_merge(): Argument #1 is not an array”,于是去目标服务器追踪了下,方面也是一个 HTTP 接口调用,返回的是 null,再顺着看过去,发现最终的那个接口查了数据库,然后卡在那了,再查看具体的消息为 “Got error 28 from storage engine”,又是 MySQL 的问题。基于以往的经验,是不是内存满了或是硬盘满了,

2020-11-26 16:04:08 2072 4

原创 读取csv并导出新的csv

用 editplus 打开 csv 格式的文件,会发现编码为 ANSI。在 ANSI 里,GBK 是专门来解决中文编码的,是双字节的,不论中英文都是双字节。通常程序保存文件的编码常为 UTF-8,因此读取 csv 文件时,需要进行编码转换,把 GBK 的转为 UTF-8,导出的时候再把 UTF-8 转换为 GBK。csv 格式的文件标题,日期测试1,2020-10-29处理代码<?phpfunction utf8ToAnsi($str){ return iconv('UTF-

2020-10-29 16:19:14 102

原创 php数组使用json_encode转换的一个小坑

前段时间客服系统出现了个小问题,不能切换中继线路。之前是中继线路是固定的,也就是账号配置的时候指定的,后来为了方便,在界面上以下拉框的形式让客服选择。问了下相关人员,说是添加了一个新的中继号后就歇菜了,于是在测试环境下复现了,发现是数组转换的问题。中继号都存在数据库,php 取出来,然后用 json_encode 转换为 js 的数组,最后在页面上组装成 select 相关内容展示出来供客服操作。<?php$array = [ '8001', '8002', '800

2020-09-30 18:01:52 112

原创 解决 InnoDB: Cannot allocate memory for the buffer pool

解决 InnoDB: Cannot allocate memory for the buffer pool

2020-08-05 15:35:39 118

原创 解决uploadify上传文件session失效的问题

据线上反馈,某个页面上传文件的时候失效,刷新页面后退出系统,于是在 beta 环境上尝试复现,成功,是个稳定的 bug 的,于是开始了探索、解决之旅。打开 Chrome 浏览器控制栏,仔细观察了下上传前后请求的变化,发现每当点击上传按钮上传文件时,都会更新 session_id。嚯,这个隐隐有种熟悉的感觉,再尝试几次后,定位到是上传组件 uploadify 的问题。这是个 flash 插件,以前遇到过一次,那时是在火狐浏览器上,每次上传文件都会遇到 session 失效情形,于是就用了个 hack 方法解

2020-07-31 14:48:28 302

原创 Postman 批量测试接口

前言今天简单介绍下一个在接口开发中批量测试的工具 Postman。基础设置这个可以在官网下载,打开后界面如上所示。由于是批量测试接口,那咱们就把接口都归属到 Collections 里。按照 1、2、3 所示,点击 Create 保存,就出现如下图所示的聚合测试文件夹。接下来,就简单了,把开发的接口依次添加到此文件夹内。方法为:右键单击 接口批量测试,再点击弹出的菜单栏里的 Add Request 一栏。接着在弹窗里写下接口的名称,再点击 Save to 接口批量测试这里为了演示接口

2020-06-30 23:52:00 323

原创 安装 API 网关 APISIX

Apache APISIX 是国人开源的微服务 API 网关,目前发展势头旺盛,性能强劲,不知道此为何物的可以去 GITHUB 官方仓库文档里看看详细介绍。系统版本

2020-05-15 23:24:31 582 1

原创 Redis 之 Stream(上)

Stream 为 Redis 5.0 的一大亮点,可以功能完善的支持消息队列,是异步处理、应用解耦、限流削峰的一大利器。由于 Stream 涉及的知识点较多且出来的时间也不算长( 2018/10/17 正式 release),直接上来讲源码大家看着可能有些懵,于是把这一主题分为上、下两篇:上篇主要介绍 Stream 的应用,让大家对 Redis 的 Stream 作为消息队列有所了解;下篇就深入到...

2020-04-26 22:47:21 180

原创 Redis 之快速列表

快速列表(quicklist)是在 Redis 3.2 版本中引入的,之前版本用的是 listNode 组成的无环双链表实现的。// adlist.htypedef struct listNode { struct listNode *prev; /* 前置节点 */ struct listNode *next; /* 后置节点 */ void *value; /* 节点的值 */}...

2020-04-16 23:24:41 166

原创 Redis 之整数集合

在 Redis 中,字典和整数集合是集合的两种实现方式。

2020-04-12 00:29:45 122

原创 Redis 之跳表

跳表,又称跳跃表,在 Redis 中表现为 skiplist,是一种有序的数据结构,它通过在每个节点中维持多个指向其他节点的指针,从而达到快速访问节点的目的。在正式介绍跳表前,先来看看 Redis 中的有序集合。zadd class 87.5 alice 87.5 fred 65.5 charles 94.5 emily向 class 有序集合里插入 4 条数据,查看下底层编码实现。1...

2020-04-09 20:14:38 158

原创 Redis 之压缩列表

Redis 中的五种类型,在底层存储上并不是唯一的,而是依据 redisObject 中 encoding 来选择更适合的编码方式。比如上一篇介绍的字符串,就有 int、embstr、raw 三种,而且在不同的场景是动态变动的,比如 embstr 进行 append 操作后 encoding 就改成了 raw。127.0.0.1:6379> hmset person name molaif...

2020-04-06 19:27:06 200

原创 Redis 之简单动态字符串

介绍完字典,今天再来谈谈 Redis 中另一个广泛使用的数据结构 SDS,也被称为简单动态字符串。在看 Redis 各版本特性时,发现 SDS 结构是在 3.2 版本上做了速度和节省空间上的优化。下面是 3.2 版本之前的结构。// sds.hstruct sdshdr { int len; /* buf 数组已占用的字节数 */ int free; /* buf 数组中可用的字节数...

2020-04-04 01:23:08 125

原创 Redis 之字典

在前面 浅谈 Redis 简单介绍过字典,是用来存储数据库所有 key-value 的,同时如果指定 key 为 哈希时,字典也是其 value 的底层实现之一,今天就来聊聊字典。字典的数据结构主要由三部分组成:dict(字典)、dictht(哈希表)、dictEntry(哈希表节点)。接下来分别介绍下这三种结构。// dict.htypedef struct dict { dic...

2020-03-29 22:40:45 128

原创 Redis 管理工具 RedisInsight

Redis 安装好并运行一段时间后,如何清晰的看到 Redis 占了多大内存,有多少个 KEY,所占的网络如何,这个在 RedisInsight 下就是一目了然了,特别方便。下载也特别简单,到此网站下载你想要的版本就行。...

2020-03-16 19:14:43 2492

原创 测试环境搭建 redis-cluster

Linux 版本2.6.32-431.el6.x86_64Redis 版本redis-5.0.7安装见此博客集群搭建创建目录创建 redis-cluster 目录,并在里面创建如下目录mkdir -p /usr/local/redis-cluster/cd /usr/local/redis-cluster/mkdir 7001 7002 7003 7004 7005 70...

2020-03-16 19:09:39 144

原创 解决跨域上传文件时报错

下午群里@我说,上传文件有问题,看了下,发现报如下错误has been blocked by CORS policy: The "Access-Control-Allow-origin' header contains multiple values''*,* but only one is allowed.字面意思是设置了重复跨域了。于是开始着手解决问题:这个上次附件是页面上 js 直接调...

2020-03-05 18:49:37 282

原创 linux 下批量操作善用 \

有快两个月没写博客了,今天就水一遍,主要源于本月中旬的一个需求,批量打包文件,但又懒得写 shell 脚本,想起了平常安装工具时的 \ 分成多行的符号,那么就简单了,只需写成如下即可tar czvf image.tar.gz a.png b.png \c.png \d.png \e.png...

2020-02-29 16:13:57 122

原创 Go 错误处理

错误处理在默认情况下,当发生错误后(panic) ,程序就会退出(崩溃)如果我们希望:当发生错误后,可以捕获到错误,并进行处理,保证程序可以继续执行。还可以在捕获到错误后,给管理员一一个提示(邮件短信…)基本说明Go 语言追求简洁优雅,所以,Go 语言不支持传统的 try…cact…finally 这种处理。Go 中引入的处理方式为: defer, panic, recov...

2019-12-31 22:03:24 86

原创 Go 数组、切片和 map

数组数组可以存放多个同一类型数据。数组也是一种数据类型,在 Go 中,数组是值类型。package mainimport "fmt"func main() { var hen [6]float64 hen[0] = 1.00 hen[1] = 1.00 hen[2] = 2.00 hen[3] = 3.00 hen[4] = 4.00 hen[5] = 50.00...

2019-11-30 18:25:01 235

原创 Go 面向对象

引言Go 的面向对象,语法清奇,思路独特,和传统的面向对象语言如 Java 完全不同,可开阔思路。结构体谈到面向对象,就不得不提其载体 structtype 结构体名称 struct{ field1 type field2 type}以上便是其定义的语法,使用也很简单type Student struct { Name,Address string Age in...

2019-10-31 23:38:06 137

原创 结构体大小计算、typedef、函数指针小记

结构体大小计算计算结构体大小的规则:每一个成员的偏移量都必须是该成员的倍数。结构体的大小必须是该结构体字节数最大成员的倍数。先来说说什么是偏移量,某个成员的实际地址和结构体首地址之间的距离struct data { int a; char b; int c;}因为 a 为首地址,因此偏移量为 0同时 int a 在内存中占 4 个字节,也就是是 b 的偏移量;由于 4...

2019-09-06 10:42:30 264

原创 Go 初探

缘由现在用 Go 的公司越来越多,学 Go 的童鞋也越来越多,于是我便随大流开始学 Go,这篇博客便记录今晚安装及成功运行第一个 Hello World 的例子。安装进入 https://studygolang.com/dl 下载 https://dl.google.com/go/go1.13.windows-amd64.msi ,由于没有连上 Linux 环境,便在 Windows 上安...

2019-09-05 23:40:26 260

原创 Asterisk 控制台为什么日志不显示颜色

今天在群里有个人问到请问下,这个彩色日志是怎样设置打印出来的,我的这些呼叫日志怎么都是白色的呢于是追踪了下。在 Linux 终端上显示颜色的代码,格式为%c[%d;%d;%dm%s%c[%d;%dm如,下面两个实例echo -e "\033[44;37;5m ME \033[0m"echo -e "\e[32;1m[OK]\e[0m"字色 背景 ...

2019-08-12 17:10:27 217

原创 Heartbeat 安装教程

准备两台虚拟机10.254.124.22710.254.124.228虚拟 IP10.254.124.22关闭防火墙service iptables stop配置网络和主机名分别在两台服务器上的 /etc/hosts 加上10.254.124.227 Master10.254.124.228 Slave修改主机名vim /etc/sysconfig/network...

2019-07-10 17:45:19 305

原创 利用 inotifywait 和 rsync 实现文件秒级同步

安装 inotifywaityum install -y inotify-tools安装 rsyncyum install -y xinetd配置 rsync把 /etc/xinetd.d/rsync 里面的 disable 值由 yes 改为 no,启动 xinetd,“service xinetd start”,再看看 netstat -tunlp | grep 873 ,发现 ...

2019-07-05 11:24:36 241

原创 yum 安装 php7

安装 epel 和 remi 源wget https://dl.fedoraproject.org/pub/epel/epel-release-latest-7.noarch.rpmrpm -ivh epel-release-latest-7.noarch.rpmwget http://rpms.remirepo.net/enterprise/remi-release-7.rpmrpm ...

2019-06-27 18:07:50 1416

原创 浏览器跨域解决方案

今天介绍一个实用的浏览器跨域方案。比如 A 网址嵌入了 B 网址的页面,这时 B 网址的页面想要调用 A 网址的页面的方法,因为域名不同,由于浏览器同源策略的限制会被 blocked 掉的。一下给出一个方法在 A 网址的写下window.addEventListener("message",function(obj){ console.log(obj);});再在 B 网址的页面里...

2019-06-14 17:25:03 151

原创 Asterisk 简介

Asterisk 定义Asterisk 是一个应用于 VOIP 的开放源代码的 PBX 系统;可以运行在 Linux,BSD,Windows(仿真的)以及 OS X 上;提供了语音邮箱服务(Voicemail)、电话会议、交互式语音应答(IVR)、呼叫队列,它还可以支持三方呼叫,主叫标识;支持 4 类 VOIP 的协议;通过使用相对便宜的硬件,它可以与几乎全部基于标准的电话设备进行互联操作。与...

2019-05-31 22:32:51 360

原创 C 和指针第 9 章 字符串、字符和字节 笔记

这章总体来说,简单,基本就是进一步介绍了字符串、字符和字节常用函数的使用,以及注意的事项。9.1 字符串基础字符串就是一串零个或多个字符,并且以一个模式为全 0 的 NUL 字节结尾。头文件 string.h 包含了使用字符串函数所需的原型和声明。9.2 字符串长度就是它所包含的字符个数。size_t strlen(char const *string);size_t 定义在 st...

2019-04-28 23:05:24 96

原创 C 和指针第 8 章 数组 笔记

这一章很重要,分别讲述了一维数组、多维数组以及指针数组,下面分别介绍一维数组数组名int a; int b[10];变量 a 称为标量,因为它是个单一的值,这个变量的类型是一个整型。在 C 数组名的值 b 是一个指针常量,也就是数组第 1 个元素的地址。它的类型决定数组元素的类型:如果它们是 int 类型,那么数组名的类型就是“指向 int 的常量指针”;如果它们是其他类型,那么数组...

2019-04-20 23:58:36 136

原创 C 和指针第 7 章 函数 笔记

这章主要介绍了函数的相关信息,但没有涉及到函数指针高级操作,这章很简单,以下简要说下函数定义类型名函数名 (形式参数)代码块intfunc(int a, int b){ return a+b;}函数声明以下为函数原型的格式类型名 函数名 (形式参数);int *func(char *str, int value);注意,没有声明函数原型的函数,会被编译器缺省认定(默...

2019-04-16 23:49:36 95

原创 C 和指针第 6 章 指针 笔记

第六章标题就是指针,可见重要程度,接下来我就总结下各个小节的知识点。内存和地址这里说的内存其实是 虚拟内存,而不是 物理内存,两者通过 内存映射 来管理,也就是将 虚拟内存地址 映射到 物理内存地址。同时记住以下两点1、内存中的每个位置由一个独一无二的地址标识2、内存的每个位置都包含一个值关于内存中的地址和内容,可以看下两张图名字和内存位置之间的关联并不是硬件所提供的,它是由编...

2019-04-14 19:36:00 119

原创 C 和指针第 5 章 操作符和表达式 笔记

总述这章标题为操作符和表达式,主要讲述了操作符、布尔值、左值和右值、表达式求值,下面分别简要介绍下操作符算术操作符+、- 、*、/、%这里说下 / 和%,前者求商,后者用来求模也就是求余数,例如#include <stdio.h>int main(void){ printf("10/3=%d\n", 10/3); // 10/3=3 printf("1...

2019-04-10 00:00:26 89

原创 C 和指针 1 至 4 章笔记

第 1 章 快速上手主要通过讲解一个例子,来让读者对 C 有一个的大概印象。#include <stdio.h>#include <stdlib.h>#include <string.h>#define MAX_COLS 20#define MAX_INPUT 1000int read_column_numbers(int columns[], ...

2019-04-07 22:51:46 91

原创 GoAccess 分析 Nginx 日志

安装yum install -y glib2 glib2-devel GeoIP-devel ncurses-devel zlib zlib-develyum install gccyum install -y GeoIP-updateyum install -y goaccess安装成功后,可以查看[root@molaifeng log]# goaccess -VGoAccess...

2019-04-05 22:21:05 366

FaustCplus的swf文件

解决因客户端flash版本升级而无法预览图片的bug

2014-08-05

epel.repo

yum install http://mirro rs.yun-idc.com/epel/6/i386/epel-release-6-8.noarch.rpm时报错“epel-release-6-8.noarch.rpm: does not update installed package”,可以下载此repo,再yum install -y docker-io

2016-06-06

XHProf简明教程

XHProf是Facebook开源的php性能分析工具,是php的一个扩展。windows平台可以通过此链接下载,同时还需下载制图工具Graphviz,最后去github下载相关的代码(只需xhprof_html、xhprof_lib、examples)。

2015-09-17

使用PHPMailer发送邮件

使用PHPMailer发送邮件的DEMO

2015-07-16

php_curl-5.4.3-VC9-x64的php_curl.dll

在windows上开发,下的是php_curl-5.4.3-VC9-x64版的wamp,在使用curl模块时出现错误,明明已经加载了,但是还是报curl没有加载的错误,后来在网上找了下,发现该版本的php_curl.dll有问题,于是又下载了份,覆盖掉本机上的,发现有用,资源就在附件内。

2015-01-04

molaifeng的留言板

发表于 2020-01-02 最后回复 2020-01-02

nusoap如何封装请求头

发表于 2014-02-19 最后回复 2019-10-30

symfony2 生产环境报“Oops! An Error Occurred”

发表于 2014-10-19 最后回复 2018-08-28

redis添加密码后,存储不了session

发表于 2015-07-31 最后回复 2015-07-31

在linux上用oenoffice的unoconv转码失败

发表于 2014-03-11 最后回复 2015-06-18

如何理解int *number = 100

发表于 2015-05-25 最后回复 2015-05-25

关于修改ac文件,如何再生成swf

发表于 2014-07-16 最后回复 2014-10-30

chrome下js替换选中的字符无效

发表于 2014-09-08 最后回复 2014-09-09

请教sql语句,多表查询一对多分页

发表于 2014-05-08 最后回复 2014-05-08

CentOS安装go后,执行./go,提示 /libexec/ld-elf.so.1: bad ELF interpreter:

发表于 2014-03-29 最后回复 2014-03-30

利用PHPExcel导出excel后格式不一致

发表于 2014-03-07 最后回复 2014-03-10

php解析cas返回的xml

发表于 2014-03-06 最后回复 2014-03-06

php中,如何通过soap传递两个参数,(ms-security下)

发表于 2014-02-27 最后回复 2014-02-28

服务器上file_put_contents写入文件失败

发表于 2014-02-21 最后回复 2014-02-22

file_get_contents把类似file:///文件移到服务器上

发表于 2013-12-12 最后回复 2013-12-15

strtoupper回导致中文乱码么

发表于 2013-11-25 最后回复 2013-11-25

svn cleanup 出错

发表于 2013-10-24 最后回复 2013-10-25

echo数组单元的值不全

发表于 2013-10-14 最后回复 2013-10-16

为什么用exec执行一个命令时,在脚本内执行不成功,放到服务器命令行就可以了,我在/etc/sudoers也做了配置

发表于 2013-09-24 最后回复 2013-09-27

jquery父页面向子页面传值后,radio选不中

发表于 2013-07-12 最后回复 2013-07-18

虚拟机与主机ping不通

发表于 2013-02-22 最后回复 2013-05-30

ladp_connect连接成功后,为什么ladp_bind绑定不成功

发表于 2013-04-23 最后回复 2013-05-02

一道for循环题

发表于 2013-04-11 最后回复 2013-04-17

memory_limit和memory_get_usage的关系

发表于 2013-03-11 最后回复 2013-03-11

php数组的限制于memory_limit的关系

发表于 2013-02-21 最后回复 2013-02-22

一个超大数组的展示问题

发表于 2013-01-31 最后回复 2013-01-31

关于document.表单名 写法疑惑

发表于 2013-01-30 最后回复 2013-01-30

关于showModalDialog弹出的页面里的刷新问题

发表于 2013-01-10 最后回复 2013-01-24

js分割字符串

发表于 2013-01-17 最后回复 2013-01-18

关于稀疏数组的疑惑

发表于 2012-09-24 最后回复 2012-12-26

php调用java的webservice接口

发表于 2012-12-10 最后回复 2012-12-11

php webservice 接收xml文件

发表于 2012-11-29 最后回复 2012-11-29

如何用order by 查询 栏目下最贵的商品

发表于 2012-03-24 最后回复 2012-11-23

Out of range value for column 'tel' at row 1

发表于 2012-07-10 最后回复 2012-11-23

拔掉网线使用无线路由上网后,虚拟机ping不通主机

发表于 2012-08-13 最后回复 2012-11-23

mysql安装后如何设置密码,登录后找不到mysql库

发表于 2012-08-29 最后回复 2012-11-23

pgsql里的数据库文件存在哪

发表于 2012-10-09 最后回复 2012-11-23

1G文件在服务器上可以正常下载,但超过4G就下载后文件为0kb

发表于 2012-10-15 最后回复 2012-11-23

字符串转化为数字???

发表于 2012-11-22 最后回复 2012-11-22

sqlite时间不同步

发表于 2012-11-14 最后回复 2012-11-19

空空如也

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

TA关注的人 TA的粉丝

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