霜天部落 | 专注PHP研发,研究LAMP高性能架构部署与优化

PHP7:Mongodb API使用

编译安装PHP7 Mongdb扩展
#先安装一个依赖库

1
2
3
4
5
6
7
8
9
yum -y install openldap-devel
wget https://pecl.php.net/get/mongodb-1.1.1.tgz  
/home/server/php7/bin/phpize   #根据自己编译的PHP环境而定
./configure with-php-config=/home/server/php7/bin/php-config
make && make install

#如果成功,生成一个mongodb.so扩展在lib/php/extensions/no-debug-non-zts-20151012/
修改php.ini配置
extension=mongodb.so

注: Read more ›

Ubuntu16.04安装redis和redis扩展

1、安装redis服务

sudo apt-get install redis-server
一般情况下上面redis-server是能够正确安装的,我反正就是这样安装上的。
如果是在不行就可以参照oschina上的这篇
安装完成后可以

ps aux | grep redis
查看redis服务是否启动

if (没有启动)
sudo service redis-server start
如果启动了然后可以

redis-cli
进入redis的命令行(127.0.0.1:6379: >就这样样子),这下你就可以尽情的玩了,可是不php结合起来你确定你能玩的很尽兴,还是耽搁几分钟来装个php扩展吧

2、安装php扩展
下载redis扩展:

1
2
3
4
5
6
7
8
#redis
wget http://download.redis.io/releases/redis-3.0.7.tar.gz

#phpredis 非php7使用 下载后文件名为:phpredis-develop
wget https://codeload.github.com/phpredis/phpredis/zip/develop

#phpredis PHP7专属 下载后文件名为:phpredis-php7
wget https://codeload.github.com/phpredis/phpredis/zip/php7

解压缩:unzip php-redis.zip
进入目录:cd php-redis
运行:phpize (ps:这个是php-dev下的编译扩展的工具,如果没有的话快点执行 sudo apt-get install php-dev安装)
运行配置文件以生成Makefile:./configure
生成共享库(比如redis.so):make
命令行会提示执行”make test”,虽然不是必须的,但小心驶得万年船啊~兄弟!!如果此处没有问题的话那我们继续

安装:sudo make install
最后会得到提示已经将软件安装到了/usr/lib/php/20151012/,这个安装的本质就是把我们之前生成的共享库文件拷贝过来,就这样。

最后直接在php.ini的文件里加上extension=redis.so就行了

浅析UGC,PGC和OGC

        一般认为Web2.0(论坛、博客为代表)和Web3.0(社交平台、微博客为代表)的相继流行,UGC(User-generated Content,用户生产内容,也称UCC,User-created Content)功不可没。随着移动互联网的发展,网上内容的创作又被细分出PGC(Professionally-generated Content,专业生产内容,也称PPC,Professionally-produced Content)和OGC(Occupationally-generated Content,职业生产内容),甚至有UGC、PGC和OGC谁是主 流的讨论。

Read more ›

linux开启nscd服务缓存加速

在我使用的阿里云主机上有观察到开启了一个服务nscd ,后来谷哥了下该服务的作用。了解到nscd会缓存三种服务passwd group hosts,所以它会记录三个库,分别对应源/etc/passwd, /etc/hosts 和 /etc/resolv.conf每个库保存两份缓存,一份是找到记录的,一份是没有找到记录的。每一种缓存都保存有生存时间(TTL)。其作用就是在本 当中增加cache ,加快如DNS的解析等的速度。 Read more ›

用redis实现计数器

社交产品业务里有很多统计计数的功能,比如:

  • 用户: 总点赞数,关注数,粉丝数
  • 帖子: 点赞数,评论数,热度
  • 消息: 已读,未读,红点消息数
  • 话题: 阅读数,帖子数,收藏数

统计计数的特点

  • 实时性要求高
  • 写的频率很高
  • 写的性能对MySQL是一个挑战

可以采用redis来优化高频率写入的性能要求。 Read more ›

应对 Memcached 缓存失效,导致高并发查询 DB 的几种思路

当Memcached缓存失效时,容易出现高并发的查询DB,导致DB压力骤然上升。

这篇blog主要是探讨如何在缓存将要失效时,及时地更新缓存,而不是如何在缓存失效之后,如何防止高并发的DB查询。

个人认为,当缓存将要失效时,及时地把新的数据刷到memcached里,这个是解决缓存失效瞬间高并发查DB的最好方法。那么如何及时地知道缓存将要失效? Read more ›