最新 | 最热门 | 最高评价

+0  通过Twemproxy提升PHP/Redis的性能

Tag: Technical | PHP
老王 发于 2018年06月23日 21:15 | 点击: 2434 | 展开摘要
Twemproxy 可以说是最古老的 Redis 代理软件了,一般来说,引入代理后性能会比没有引入代理时低一些,毕竟代理会导致一些额外的性能损耗,可是 Twemproxy 却会提升性能, 这主要得益于它的 Pipelining 功能可以实现打包请求,简单点说:当代理收到多个并发请求时,它会把这些请求打包成一个请求发送给后端服务器,从而减少不必要的 RTT。关于 Pipelining 本文不做过多讨论,实际上我想说的是它的另一个功能:连接池!下面看看如何通过 Twemproxy

查看全文: http://www.udpwork.com/item/16920.html

+0  几个用于诊断HTTP响应时间情况的小工具

Tag: Technical | Linux
老王 发于 2018年05月29日 18:31 | 点击: 2781 | 展开摘要
如果有人说你的 HTTP 接口响应慢,那可能是他的电脑慢,也可能是网络本身慢,还可能是你的服务器慢,总之想搞清楚到底是哪里慢并不是一件简单的事情,好在有一些小工具可以帮你快速做出正确的判断。

Chrome DevTools:

打开开发者工具,在 Network 一栏里就能看到时间在各个阶段的分布:

Chrome Timing

关于各个阶段的说明,可以参考:Timing breakdown phases explained。

cURL:

虽然 Chrome DevT

查看全文: http://www.udpwork.com/item/16866.html

+0  如何编码事务

Tag: Technical | PHP
老王 发于 2018年04月24日 16:55 | 点击: 4149 | 展开摘要
我说的事务指的是一般的数据库事务,而不是什么分布式事务之类高大上的概念。听起来很简单,但是即便如此,想实现的优雅一点也不是一件容易的事情。 

假设有一个 QA 系统,当用户在上面提问的时候,系统保存问题,然后更新用户的提问数,最后触发一个问题已经被创建的异步事件来解耦逻辑(代码均使用 Lumen 框架):

<?php

try {
DB::beginTransaction();

$question->content = '...';

查看全文: http://www.udpwork.com/item/16806.html

+0  记录file_get_contents返回空字符串的问题

Tag: Technical | PHP
老王 发于 2018年03月21日 19:45 | 点击: 2326 | 展开摘要
群里一位大佬上午说了一句箴言:「 世界上没有什么故障是重启解决不了的,如果有,再重启一次。」,结果下午群里就有一位朋友遇到了一个诡异的老版本 PHP 问题:当使用 file_get_contents 抓取网页内容的时候,总是返回空字符串,奇怪的是换用 curl 扩展后又一切正常。不过,重启没有解决他的问题,再重启一次也不行。

既然 curl 能够正常工作,至少可以证明网络本身没问题。

首先值得怀疑的是 allow_url_fopen 配置。如果没有开启它的话,

file

查看全文: http://www.udpwork.com/item/16739.html

+0  谈谈SQL查询中回表对性能的影响

Tag: Technical | PostgreSQL
老王 发于 2018年02月27日 20:53 | 点击: 1716 | 展开摘要
运营反馈某个功能速度很慢,查了一下,定位到如下 SQL:

select id from user

where name like ‘%foobar%’

order by created_at limit 10;

业务需要,LIKE 的时候必须使用模糊查询,我当然知道这会导致全表扫描,不过速度确实太慢了,直观感受,全表扫描不至于这么慢!

我使用的数据库是 PostgreSQL,不过它和 MySQL 差不多,也可以 EXPLAIN:

SQL W

查看全文: http://www.udpwork.com/item/16676.html

+0  Automatically mount USB 3 attached to my wifi router

Tag: Linux | Technology | Windows
Haidong Ji 发于 2018年02月04日 06:18 | 点击: 2499 | 展开摘要
As discussed here, I have Seagate Ultra Slim USB 3 attached to my wifi router as a NAS (Network-attached storage). It provides a good backup/sharing storage for my home network that’s accessible from all my home computing devices, whi

查看全文: http://www.udpwork.com/item/16646.html

+0  记一次sftp故障

Tag: Technical | Linux
老王 发于 2018年01月27日 12:05 | 点击: 4018 | 展开摘要
同事在使用 sftp 连接服务器的时候出现错误信息:session is down,已经自行检查了服务器地址,端口,用户名,密码等种种可能出现低级失误的地方,结果找不到原因。

同事找到我时,开始我觉得仅凭直觉并不好下手,不过但凡遇到此类问题多半都是先找是不是有日志可看,好消息是系统日志都在 /var/log 目录里,坏消息是文件有点多,不容易立刻看出哪个是相关文件,不过这个问题好解决,我们只要再触发一次错误,然后查看 /var/log 目录下哪个文件在最近修改过即可,利用此

查看全文: http://www.udpwork.com/item/16635.html

+0  fail2ban installation and configuration notes

Tag: Linux | Python | Regex | Technology | Web
Haidong Ji 发于 2018年01月18日 10:41 | 点击: 2403 | 展开摘要
A couple of days ago one web site I volunteer to manage was under DDOS attack. I installed and configured fail2ban to protect us from future similar attacks. Here are some notes. The server is the RedHat/Fedora/CentOS variety, as you can te

查看全文: http://www.udpwork.com/item/16620.html

+0  More Manjaro config: Chinese input and clock setting

Tag: Linux | Technology
Haidong Ji 发于 2017年12月28日 11:05 | 点击: 2247 | 展开摘要
I’m enjoying running Manjaro Arch Linux on my workstation so far. Some additional notes below.

1. I had trouble getting Fcitx Chinese input working, so I used IBus instead. Here is what I installed using Manjaro’s package GUI t

查看全文: http://www.udpwork.com/item/16574.html

+0  Manjaro Linux usage notes

Tag: Linux | Technology
Haidong Ji 发于 2017年12月26日 02:45 | 点击: 2230 | 展开摘要
I’ve been using Linux Mint Cinnamon for many years. For the most part, I love it. It’s based on Ubuntu, very similar to Debian, therefore there are plenty of resources available online. But its GUI bothers me a bit occasionally.

查看全文: http://www.udpwork.com/item/16563.html

+0  谈谈JSONAPI在PHP中的应用

Tag: Technical | PHP
老王 发于 2017年12月24日 11:45 | 点击: 2226 | 展开摘要
现在服务端程序员的主要工作已经不再是套模版,而是编写基于 JSON 的 API 接口。可惜大家编写接口的风格往往迥异,这就给系统集成带来了很多不必要的沟通成本,如果你有类似的困扰,那么不妨关注一下 JSONAPI,它是一个基于 JSON 构建 API 的规范标准,一个简单的 API 接口大致如下所示:

JSONAPI

简单说明一下:根节点中的 data 用来放置主对象的内容,其中 type 和 id 是必须要有的字段,用来表示主对象的类型和标识,其它简单的属性统统放置到

查看全文: http://www.udpwork.com/item/16562.html

+0  Accessing external USB disk attached to my ASUS RT-AC68U router

Tag: Linux | Technology | Windows
Haidong Ji 发于 2017年12月06日 11:46 | 点击: 2420 | 展开摘要
I have my own cloud storage server using ownCloud for many years now, and love it. It’s like DropBox, only better.

However, even with that, it’s still nice to have a shared storage for my home network. So today I bought a Seata

查看全文: http://www.udpwork.com/item/16525.html
|<<<45678910>>>| 一共30页, 355条记录