初识Redis邂逅

WBOY
풀어 주다: 2016-06-07 15:28:56
원래의
1157명이 탐색했습니다.

最近由于一块业务系统瓶颈的原因,需要找一个能够实现数据快速汇总的工具做一个中间缓存。具体场景是这样的:服务器收集WEB机群的日志集中处理,日志中有大量重复信息,需要汇总做COUNT次数统计。最开始用的MYSQL,后来发现写入瓶颈,造成数据库写入线程阻塞

最近由于一块业务系统瓶颈的原因,需要找一个能够实现数据快速汇总的工具做一个中间缓存。具体场景是这样的:服务器收集WEB机群的日志集中处理,日志中有大量重复信息,需要汇总做COUNT次数统计。最开始用的MYSQL,后来发现写入瓶颈,造成数据库写入线程阻塞,日志处理线程只能等到不然会把放在内存里的数据库写入队列塞满。后来按业务做了分表,数据库写入和日志处理都改成了多线程。仍然不能解决问题,服务器负载也飙升。最后经过组里讨论,决定采用redis。正好也趁此机会研究下。

一、安装

先说下安装环境和过程:
操作系统:centos5.4
redis版本:redis-2.8.7.tar.gz
过程如下:

cd /data0/software/install
mkdir install_redis
cd install_redis
wget http://download.redis.io/releases/redis-2.8.7.tar.gz
tar zxvf redis-2.8.7.tar.gz
cd redis-2.8.7
make && make install
#修改配置文件,redis以守护进程模式运行
vi redis.conf
daemonize yes
#启动redis,指定配置文件位置
cd src/
./redis-server /usr/local/redis/redis.conf
로그인 후 복사

redis-server启动服务端,需指定配置文件位置,否则会采用默认配置启动。默认使用6379端口,据说用手机打字的四个字母,代表一个歌手。注意redis-server和redis-cli(客户端)程序都在./src目录下(汗,我找了好久)。

服务器端默认是不启动守护进程模式的,需要在配置文件中修改(daemonize yes)

src下有个负载的测试工具redis-benchmark,做了个测试,和其他人的做了对比,稍微领先点,应该是机器比较牛,不到1.7秒10W并发。结果如下:

\

执行redis-cli启动客户端程序。这样即可和redis进行交互了。输入几个测试命令:

\

二、java包、php扩展安装配置

java的环境搭建比较简单,下载一个包导入就好了。

\

php扩展安装稍麻烦点,linux安装过程如下:

tar zvxf redis-2.8.7.tar.gz
cd redis-2.8.7
/bin/phpize
./configure --with-php-config=bin/php-config
make
make install
cd ..
로그인 후 복사
由于我还要在本地电脑上做测试,也顺带在windows下做了安装,redis的安装过程比较容易,下载即可运行。扩展就有点麻烦,大致如下:

PHP5.4.x 的 redis 扩展 php_redis.dll
扩展下载地址:
https://github.com/nicolasff/phpredis/downloads
包含 Non Thread Safe 和 Thread Safe 两个版本
首先把 php_redis.dll 和 php_igbinary.dll 放入PHP的ext文件夹,
然后在php.ini配置文件里添加如下代码:
extension=php_igbinary.dll extension=php_redis.dll
重启WebServer
注意:
extension=php_igbinary.dll 一定要放在 extension=php_redis.dll 的前面,否则此扩展不会生效。

测试代码如下:

\

관련 라벨:
원천:php.cn
본 웹사이트의 성명
본 글의 내용은 네티즌들의 자발적인 기여로 작성되었으며, 저작권은 원저작자에게 있습니다. 본 사이트는 이에 상응하는 법적 책임을 지지 않습니다. 표절이나 침해가 의심되는 콘텐츠를 발견한 경우 admin@php.cn으로 문의하세요.
최신 이슈
인기 튜토리얼
더>
최신 다운로드
더>
웹 효과
웹사이트 소스 코드
웹사이트 자료
프론트엔드 템플릿