安装低版本微信

2023-08-30
阅读 1 分钟
926
1.先安装最新版本微信,并登录。2.使用cmd命令行保存用户数据方式卸载应用: {代码...} 3.使用cmd命令安装旧版本apk:[链接]adb install -r -d [低版本微信apk]注意1.使用夜神6.6.1(android 5)2.打开夜神安装目录找到adb.exe3.目录框cmd打开

GitBook简明安装教程

2022-02-12
阅读 3 分钟
2.7k
gitbook完整安装依赖的软件比较多:nodejs 依赖环境,gitbook命令行基于nodejsnvm 管理nodejs多版本,gitbook依赖的nodejs版本比较老,可能与系统已有的冲突gitbook-cli 主程序gitbookcalibre 生成epub、pdf下面详细介绍在本地如何安装 GitBook。最终安装的gitbook版本: {代码...} 环境要求NodeJS(v4.0.0及以上), 推荐v1...

玩转 Ubuntu 18 桌面版

2020-06-20
阅读 17 分钟
12.3k
Ubuntu 的软件源配置文件是 /etc/apt/sources.list。将系统自带的该文件做个备份,将该文件替换为下面内容,即可使用 TUNA 的软件源镜像。

Golang的json包

2019-11-10
阅读 10 分钟
4.4k
encoding/json是官方提供的标准json, 实现RFC 7159中定义的JSON编码和解码。使用的时候需要预定义struct,原理是通过reflection和interface来完成工作, 性能低。

Twitter-Snowflake:自增ID算法

2019-10-26
阅读 4 分钟
1.4k
Twitter 早期用 MySQL 存储数据,随着用户的增长,单一的 MySQL 实例没法承受海量的数据,后来团队就研究如何产生完美的自增ID,以满足两个基本的要求:

从零开始基于go-thrift创建一个RPC服务

2019-07-13
阅读 14 分钟
18.9k
Thrift 是一种被广泛使用的 rpc 框架,可以比较灵活的定义数据结构和函数输入输出参数,并且可以跨语言调用。为了保证服务接口的统一性和可维护性,我们需要在最开始就制定一系列规范并严格遵守,降低后续维护成本。

gRPC入坑记

2019-07-07
阅读 9 分钟
6k
由于gRPC主要是谷歌开发的,由于一些已知的原因,gRPC跑demo还是不那么顺利的。单独写这一篇,主要是gRPC安装过程中的坑太多了,记录下来让大家少走弯路。

Protobuf 小试牛刀

2019-07-07
阅读 8 分钟
6.1k
本文以PHP为例。 环境: CentOS 6.8 proto 3.8 PHP 7.1.12 PHP protobuf扩展 3.8.0 go1.12.5 linux/amd64 本文示例仓库地址: [链接] 是什么 Protobuf是一种平台无关、语言无关、可扩展且轻便高效的序列化数据结构的协议,可以用于网络通信和数据存储。 官方文档:[链接] 作为数据交换协议,常见的还有JSON、XML。相比JS...

PHP技术栈

2019-06-04
阅读 3 分钟
4.7k
本文旨在给要学习 PHP 的新手一个大概的认知轮廓,在心里有个学习的结构,有的放矢,避免走太多弯路。大神请忽略。入门阶段预备知识1、掌握基本HTML、JS、CSS语法;熟悉 Bootstrap。 参考: [链接] [链接] [链接]验收最低标准:模仿写出jd.com或者vip.com首页第一屏内容。2、熟悉Linux命令行 熟悉常用发行版系统(CentOS...

《用OpenResty搭建高性能服务端》笔记

2019-05-24
阅读 14 分钟
3.5k
《用OpenResty搭建高性能服务端》是OpenResty系列课程中的入门课程,主讲人:温铭老师。课程分为10个章节,侧重于OpenResty的基本概念和主要特点的介绍,包括它的指令、nginx_lua API、缓存、如何连接数据库、执行阶段等,并通过几个实际的操作和代码片段,告诉大家学习中如何搭建开发、测试环境,如何调试、查找和解决...

PHPer书单

2019-03-17
阅读 4 分钟
3.7k
想提升自己,还得多看书!多看书!多看书!下面是我收集到的一些PHP程序员应该看得书单及在线教程,自己也没有全部看完。共勉吧!当然,如果你有好的书想分享给大家的或者觉得书单不合理,可以去Github 52fhy/phper-book-list 通过pull request 进行提交。不会pull request的同学可以参考:github的pull request是指什么...

Linux命令行文本工具

2019-03-17
阅读 15 分钟
3.6k
浏览文件 {代码...} 示例:1、查看前10行 {代码...} 2、跟踪查看最后100行 {代码...} wc 命令 wc 用于统计文件的行数、单词数、字符数等。 不带参数时默认输出一行,字段格式为: {代码...} 常用参数: {代码...} grep grep (global search regular expression(RE) and print out the line,全面搜索正则表达式并把行打印...

ELK实践(二):收集Nginx日志

2018-12-23
阅读 9 分钟
4k
Nginx访问日志 这里补充下Nginx访问日志使用的说明。一般在nginx.conf主配置文件里需要定义一种格式: {代码...} 上面的格式我是基于默认的加了一个$request_time。 然后子配置使用: {代码...} 即可。 Filebeat采集日志数据到ElasticSearch 配置: {代码...} 配置详情: {代码...} 配置说明: filebeat.prospectors: ty...

ELK实践(一):基础入门

2018-12-02
阅读 15 分钟
4.7k
虽然用了ELK很久了,但一直苦于没有自己尝试搭建过,所以想抽时间尝试尝试。原本打算按照教程 《ELK集中式日志平台之二 — 部署》(作者:樊浩柏科学院) 进行测试的,没想到一路出了很多坑,所以又按照自己成功搭建的流程写了本文。

Elasticsearch实践(四):IK分词

2018-12-01
阅读 6 分钟
15.3k
环境:Elasticsearch 6.2.4 + Kibana 6.2.4 + ik 6.2.4 Elasticsearch默认也能对中文进行分词。 我们先来看看自带的中文分词效果: {代码...} {代码...} 结果: {代码...} 我们发现,是按照每个字进行分词的。这种在实际应用里肯定达不到想要的效果。当然,如果是日志搜索,使用自带的就足够了。 analyzer=default其实调...

Elasticsearch实践(三):Mapping

2018-12-01
阅读 9 分钟
7.6k
版本:Elasticsearch 6.2.4。 Mapping类似于数据库中的表结构定义,主要作用如下: 定义Index下字段名(Field Name) 定义字段的类型,比如数值型,字符串型、布尔型等 定义倒排索引的相关配置,比如是否索引、记录postion等 Mapping完整的内容可以分为四部分内容: 字段类型(Field datatypes) 元字段(Meta-Fields) Mapp...

Elasticsearch实践(二):搜索

2018-11-25
阅读 16 分钟
7.5k
本文以 Elasticsearch 6.2.4为例。 经过前面的基础入门,我们对ES的基本操作也会了。现在来学习ES最强大的部分:全文检索。 准备工作 批量导入数据 先需要准备点数据,然后导入: {代码...} 这样我们就导入了1000条数据到ES。 注意:accounts.json每行必须以\n换行。如果提示The bulk request must be terminated by a n...

MySQL数据库设计规范

2018-10-21
阅读 7 分钟
3.1k
MySQL数据库与 Oracle、 SQL Server 等数据库相比,有其内核上的优势与劣势。我们在使用MySQL数据库的时候需要遵循一定规范,扬长避短。本规范旨在帮助或指导RD、QA、OP等技术人员做出适合线上业务的数据库设计。在数据库变更和处理流程、数据库表设计、SQL编写等方面予以规范,从而为公司业务系统稳定、健康地运行提供...

Redis使用lua脚本

2018-10-21
阅读 3 分钟
10.6k
版本:自2.6.0起可用。时间复杂度:取决于执行的脚本。 使用Lua脚本的好处: 减少网络开销。可以将多个请求通过脚本的形式一次发送,减少网络时延。 原子操作。redis会将整个脚本作为一个整体执行,中间不会被其他命令插入。因此在编写脚本的过程中无需担心会出现竞态条件,无需使用事务。 复用。客户端发送的脚本会永久...

Elasticsearch实践(一):基础入门

2018-10-21
阅读 8 分钟
3.5k
注:最新(截止到2018-09-23)的 Elasticsearch 是 6.4.1。5.x系列和6.x系列虽然有些区别,但基本用法是一样的。

PHP之高性能I/O框架:Libevent(一)

2018-07-02
阅读 8 分钟
3.3k
Libevent 是一个用C语言编写的、轻量级的开源高性能I/O框架,支持多种 I/O 多路复用技术: epoll、 poll、 dev/poll、 select 和 kqueue 等;支持 I/O,定时器和信号等事件;注册事件优先级。PHP提供了对应的扩展 libevent、 Event 。

PHP多进程系列笔记(五)

2018-06-26
阅读 8 分钟
4.2k
前面几节都是讲解pcntl扩展实现的多进程程序。本节给大家介绍swoole扩展的swoole_process模块。 swoole多进程 swoole_process 是swoole提供的进程管理模块,用来替代PHP的pcntl扩展。 首先,确保安装的swoole版本大于1.7.2: {代码...} 注意:swoole_process在最新的1.8.0版本已经禁止在Web环境中使用了,所以也只能支持...

PHP多进程系列笔记(四)

2018-06-25
阅读 2 分钟
1.8k
本节主要讲解Posix常用函数和进程池的概念,也会涉及到守护进程的知识。本节难度较低。 Posix常用函数 posix_kill 向指定pid进程发送信号。成功时返回 TRUE , 或者在失败时返回 FALSE 。 {代码...} $sig=0,可以检测进程是否存在,不会发送信号。 示例: {代码...} 注:通过 kill -l 可以看到Linux下所有的信号常量。 p...

PHP 多进程系列笔记(三)

2018-06-22
阅读 6 分钟
2k
本节讲解几个多进程的实例。 多进程实例 Master-Worker结构 下面例子实现了简单的多进程管理: 支持设置最大子进程数 Master-Worker结构:Worker挂掉,Master进程会重新创建一个 {代码...} ~~~防盗版声明:本文系原创文章,发布于公众号飞鸿影的博客(fhyblog)及博客园,转载需作者同意。~~~ 多进程Server 下面我们...

PHP多进程系列笔记(二)

2018-06-19
阅读 5 分钟
3.1k
僵尸进程是指的父进程已经退出,而该进程dead之后没有进程接受,就成为僵尸进程(zombie)进程。任何进程在退出前(使用exit退出) 都会变成僵尸进程(用于保存进程的状态等信息),然后由init进程接管。如果不及时回收僵尸进程,那么它在系统中就会占用一个进程表项,如果这种僵尸进程过多,最后系统就没有可以用的进程表项,...

PHP多进程系列笔记(一)

2018-06-18
阅读 5 分钟
3.6k
PCNTL在PHP中进程控制支持默认是关闭的。您需要使用 --enable-pcntl 配置选项重新编译PHP的 CGI或CLI版本以打开进程控制支持。

使用XHProf分析PHP性能瓶颈(二)

2018-06-18
阅读 3 分钟
3k
上一篇文章里,我们介绍了如何基于xhprof扩展来分析PHP性能,并记录到日志里,最后使用xhprof扩展自带的UI在web里展示出来。本篇文章将讲述2个知识点:

使用XHProf分析PHP性能瓶颈(一)

2018-06-18
阅读 5 分钟
6k
安装xhprof扩展 {代码...} 配置php.ini {代码...} 注:xhprof已经很久没有更新过了,截至目前还不支持php7,php7可以使用 [链接]。 配置xhprof环境 需要把xhprof压缩包里的两个目录复制到指定目录(假设定义到 /work/xhprof/): {代码...} 然后在项目框架的入口文件添加: {代码...} 代码解析: $xhprof_data中记录了程序...

curl_multi实现并发

2018-04-24
阅读 4 分钟
3.2k
普通请求 curl_normal.php {代码...} use time:0.830 s curl_multi并发 curl_multi.php {代码...} use time:0.259 s curl_multi并发优化:curl_multi_select 在上个示例里当$active > 0时,执行curl_multi_exec($mh,$active)而整个批处理句柄没有全部执行完毕时,系统会不停地执行curl_multi_exec()函数。这样可能会轻...

swoole_event_add实现异步

2018-04-22
阅读 8 分钟
2.9k
swoole提供了swoole_event_add函数,可以实现异步。此函数可以用在Server或Client模式下。 swoole_event_add属于AsyncIO,必须运行在CLI 模式。 异步tcp客户端 stream_socket_client实现tcp同步客户端 示例: {代码...} 上述代码是同步执行的。如何变成异步呢? stream_socket_client实现tcp异步客户端 由于fread读取响...