Author: admin

『浅入浅出』MySQL 和 InnoDB

作为一名开发人员,在日常的工作中会难以避免地接触到数据库,无论是基于文件的 sqlite 还是工程上使用非常广泛的 MySQLPostgreSQL,但是一直以来也没有对数据库有一个非常清晰并且成体系的认知,所以最近两个月的时间看了几本数据库相关的书籍并且阅读了 MySQL 的官方文档,希望对各位了解数据库的、不了解数据库的有所帮助。…

    

服务端指南 | 良好的 API 设计指南

设计一套良好的 API 接口。

版本号

RESTful API 中,API 接口应该尽量兼容之前的版本。但是,在实际业务开发场景中,可能随着业务需求的不断迭代,现有的 API 接口无法支持旧版本的适配,此时如果强制升级服务端的 API 接口将导致客户端旧有功能出现故障。实际上,Web 端是部署在服务器,因此它可以很容易为了适配服务端的新的 API 接口进行版本升级,然而像 Android 端、IOS 端、PC 端等其他客户端是运行在用户的机器上,因此当前产品很难做到适配新的服务端的 API 接口,从而出现功能故障,这种情况下,用户必须升级产品到最新的版本才能正常使用。

为了解决这个版本不兼容问题,在设计 RESTful API 的一种实用的做法是使用版本号。一般情况下,我们会在 url 中保留版本号,并同时兼容多个版本。

GET】 /v1/users/ // 版本 v1 的查询用户列表的 API 接口

mongoDB No suitable servers found 错误解决

一、问题描述
用PHP连接mongoDB时报 No suitable servers found (`serverSelectionTryOnce` set): [connection refused calling ismaster on ‘127.0.0.0:20000’]  错误
二、分析问题
通过查阅各方面的资料,此问题的原因在于,操作系统开启了IPV6支持,但mongod未开启ipv6支持。或者如果是主从的话,可能主从的顺序弄错了。
三、解决问题

1、解决办法有以下3个:

(1)删除操作系统中ipv6解析,删除/etc/hosts'中的'::1 localhost, 这一行

(2)开启mongod的ipv6支持,参数:./bin/mongod –filePermissions 0777 –ipv6

(3) 调整主从顺序。

(4) 也有可能是连接时用的replicaSet参数不对造成的

mongodb导入bson数据

mongorestore -h 127.0.0.1:27017 -d u_67you --directoryperdb /data/u_67you

-h:MongoDB所在服务器地址

-d:需要恢复的数据库实例,例如:u_67you,当然这个名称也可以和备份时候的不一样,比如u_67you2

--directoryperdb:备份数据所在位置,例如:/data/u_67you

--drop:恢复的时候,先删除当前数据,然后恢复备份的数据。就是说,恢复后,备份后添加修改的数据都会被删除,慎用哦!

【译】一行代码就将你的PHP-FPM内存占用降低至少一半

标题直译:如何减少PHP-FPM (php5-fpm)内存占用50%
原标题:How to reduce PHP-FPM (php5-fpm) RAM usage by about 50%
英文原文:http://linuxbsdos.com/2015/02...

PHP-FPMPHPFastCGI过程管理器。在类Unix操作系统(包括Linux以及BSD系统)中,PHP-FPM通过安装php5-fpm(Linux)或者php56-fpm(FreeBSD 10.1

        

或许是 Nginx 上配置 HTTP2 最实在的教程了

前言

从 2015 年 5 月 14 日 HTTP/2 协议正式版的发布到现在已经快有一年了,越来越多的网站部署了 HTTP2,HTTP2 的广泛应用带来了更好的浏览体验,只要是 Modern 浏览器都支持,所以部署 HTTP2 并不会带来太多困扰。

虽然 h2 有 h2c (HTTP/2 Cleartext) 可以通过非加密通道传输,但是支持的浏览器初期还是比较少的,所以目前部署 h2 还是需要走加密的,不过由于 Let’s Encrypt 大力推行免费证书和证书的廉价化,部署 h2 的成本并不高。…