6月
23
redis特性
redis
是一种key-value
存储。它跟memcached
类似,不过数据可以持久化,而且支持的数据类型很丰富。value类型有字符串,哈希,链表,集合和有序集合。支持在服务器端计算集合的并,交和补集(difference)等,还支持多种排序功能。所以Redis也可以被看成是一个数据结构服务器。
redis
的所有数据都是保存在内存中(效率高),然后不定期的通过异步方式保存到磁盘上(这称为“半持久化模式”);也可以把每一次数据变化都写入到一个append only file(aof)里面(这称为“全持久化模式”)。
redis使用场景
1. 取最新N个数据的操作
2. 排行榜应用,取TOPN操作
3. 需要精确设定过期时间的应用
4. 计数器应用
5. Uniq操作,获取某段时间所有数据排重值
6. 实时系统,反垃圾系统
7. Pub/Sub构建实时消息系统
8. 构建队列系统
9. 缓存
redis
的特性使得它有足够的魅力。在php站点中,php redis
的使用也越来越多。redis的特性以及应用场景 可以参考下边的文章:
http://www.cnblogs.com/markhe/articles/5689102.html
想要使用php redi
s扩展,必然先要安装redis
。
6月
23
下载phpmyadmin
https://www.phpmyadmin.net/downloads/
当前,phpmyadmin
的最新版本是4.7.0。与php7
以及mariadb10.1.22
适配。
cd /usr/local/src/phpmyadmin
wget https://files.phpmyadmin.net/phpMyAdmin/4.7.0/phpMyAdmin-4.7.0-all-languages.tar.gz
tar -xzvf phpMyAdmin-4.7.0-all-languages.tar.gz
mkdir /data/www/phpmyadmin
mv /usr/local/src/phpmyadmin/phpMyAdmin-4.7.0-all-languages /data/www/phpmyadmin
6月
23
前因
由于mysql
被收购,闭源等原因。很多公司和用户选择了使用mariadb
。关于mysql
和mariadb
的比较,可以参考下边的文章。
http://www.oschina.net/news/80081/mariadb-is-not-only-mysql-replacement
依赖包的安装以及清除旧版本
yum groupinstall -y Development Tools
yum -y install gcc gcc-c++ make cmake readline-devel zlib-devel ncurses ncurses-devel
yum -y install libevent man libxml2 libxml2-devel openssl-devel bison bison-devel libaio-devel
rpm -qa|grep mysql
rpm -qa|grep mariadb
rpm -e --nodeps mariadb-libs-5.5.50-1.el7_2.x86_64
安装好依赖包后,清除掉旧版本的mysql
和mariadb
。
6月
23
网络上有很多关于如何配置 Nginx + FPM 的文章,但它们更多从操作的角度出发,告诉我们怎么做,但却没有告诉我们为什么要这么做,本文从 Nginx 与 FPM 的工作机制出发,探讨配置背后的原理,让我们真正理解 Nginx 与 PHP 是如何协同工作的。
要说 Nginx 与 PHP 是如何协同工作的,首先得说 CGI (Common Gateway Interface) 和 FastCGI 这两个协议。
CGI 是 Web Server 与后台语言交互的协议,有了这个协议,开发者可以使用任何语言处理 Web Server 发来的请求,动态的生成内容。但 CGI 有一个致命的缺点,那就是每处理一个请求都需要 fork 一个全新的进程,随着 Web 的兴起,高并发越来越成为常态,这样低效的方式明显不能满足需求。就这样,FastCGI 诞生了,CGI 很快就退出了历史的舞台。FastCGI,顾名思义为更快的 CGI,它允许在一个进程内处理多个请求,而不是一个请求处理完毕就直接结束进程,性能上有了很大的提高。
6月
21
下载
官方地址: http://php.net/downloads.php
Nginx官网提供了三个类型的版本
1. Mainline version:Mainline 是 Nginx 目前主力在做的版本,可以说是开发版
2. Stable version:最新稳定版,生产环境上建议使用的版本
3. Legacy versions:遗留的老版本的稳定版
打开下载页面,选择适合的版本(当前最新版本是7.1.4),进入镜像页面。找到对应的镜像地址。进入存储目录,开始下载。
cd /usr/local/src/php
wget http://cn2.php.net/distributions/php-7.1.4.tar.gz
tar -xzvf php-7.1.4.tar.gz
cd php-7.1.4
下载完成后,用tar
解压。
准备编译环境
在编译安装php之前,需要安装一些依赖包。
yum -y install libxml2 libxml2-devel openssl openssl-devel curl-devel libjpeg-devel libpng-devel freetype-devel libmcrypt-devel bzip2 bzip2-devel libzip-devel libxslt-devel
yum跳过已经安装过的依赖包。
6月
19
似花还似非花,也无人惜从教(jiāo)坠。抛家傍路,思量却是,无情有思(sì)。萦损柔肠,困酣娇眼,欲开还闭。梦随风万里,寻郎去处,又还被莺呼起。
不恨此花飞尽,恨西园落红难缀。晓来雨过,遗踪何在?一池萍碎。春色三分,二分尘土,一分流水。细看来,不是杨花,点点是离人泪。
作品简介
水龙吟·次韵章质夫杨花词》写于作者因为“乌台诗案”被贬黄州的第二年(1081年)。全词咏柳,是作者少有的婉约词作,也是北宋时期咏物的名篇。词中刻画了一个思妇的形象。以杨花喻人,在对杨花的描写过程中,完成对人物形象的塑造。这比章质夫的闺怨词要高一层。
6月
19
概念
linux用户分root用户和其他用户。其他用户,如:nginx
,mariadb
,nobody
等。其他用户即普通用户。linux用户的读,写,执行
权限实际上是不同用户所能访问文件的不同的假象,就是用户的权限是由组来决定的。对于用户,用户组:
1. 一个用户至少要属于一个用户组。
2. 一个用户可以属于多个用户组。
用户组主要还是方便分配权限,而用户本身差别不大,各个用户之间主要不同是:
1. 是否拥有密码
2. home目录(普通用户可以有一个以自己用户名命名的home目录,存放的地址是home/username
,root用户的home目录就是/root
)
3. shell
像nobody这样用来执行nginx的工作进程的用户,一般不分配密码和shell,甚至连home目录都没有。
为什么不分配密码?如果设置了密码,程序无法自动使用。由于不会有人使用这个用户登录系统,所以就没有必要分配shell。(备注:其实严格上说是有分配shell,只是分配的shell是/sbin/nologin这个特殊的shell,没有任何其他功能,主要功能是防止你登陆。)
6月
15
场景
有一个礼物记录表,表名'send_gift_log',送一次礼物,增加一条记录。表里边有下边这些字段:
1. senderid (赠送人uid)
2. sendernickname (赠送人昵称)
3. giftid (礼物id)
4. giftname (礼物昵称)
5. giftcount (礼物个数)
6. accepterid (收礼人uid)
7. accepternickname (收礼人昵称)
8. logdate (赠送时间)
9. roomid (房间id)
10. ……
索引:senderid
,accepterid
,roomid
,giftid
。
赠送人的昵称随时会改变。如果赠送人昵称改变了,他再赠送礼物,表里就会记录他当前的昵称。同样,收礼人的昵称也会改变。
6月
14
铁生了锈要果断请他离开
管理者遇到的一个最典型、最纠结的困难之一,就是老员工处理问题。团队成长过程中必然有老员工和新员工,老员工甚至可能是你的朋友或者前同事。这种情况下,文化管理尤其重要,一旦管理不当就会出现很大问题。我们可以称这种情况为预期管理,预期如果没有管理好,有些人就会产生失落感,甚至对于公司的方向和文化产生质疑。一旦一个很卓越的员工对公司文化质疑,后果将会很严重。
图一:团队中的金、铁、土、锈