您当前的位置: 首页 >  redis

少林码僧

暂无认证

  • 1浏览

    0关注

    317博文

    0收益

  • 0浏览

    0点赞

    0打赏

    0留言

私信
关注
热门博文

redis安装以及php扩展

少林码僧 发布时间:2017-06-05 00:07:57 ,浏览量:1

启动安装:  http://elain.blog.51cto.com/3339379/705846
redis下载:  https://github.com/nicolasff/phpredis/downloads
多台服务安装:   http://www.vquickphp.com/?a=blogview&id=30
 
 
开机加自启动:
echo "redis-server /etc/redis.conf" >>/etc/rc.local 
 
以前有想过用 Memcache 实现M/S架构的负载均衡方案,直到听说了 Redis 后才发现它做得更好。
发了几天时间研究了一下 Redis ,感觉真的很不错,特整理一下!
 
以下操作都是在 SUSE Linux 11 下安装了好了PHP为例子,如果安装过程中有提示缺少的包可以使用
zypper search rpm-name 进行查询,然后用 zypper install rpm-name 安装
 
一:memcache 和 Redis 对比总结
 
[memecache 特点]
1:速度最快(没有自测,但网上有详细的测试用例)
2:支持水平扩展,可以任意添加节点
 
[redis 特点]
1:速度没有memcache快
2:支持M/S的主从备份
3:可以支持多数据库
4:操作指令很丰富
4:支持异步数据持久化(以文件保存)
 
总结:
1:如果是简单的数据缓存建议使用MEMCACHE。
2:如果要对单一操作的数据量非常的大则使用MEMCACHE
3: 如果想做性能很好的缓存集群可以用Redis(M/S读写分离,如weibo中的排行榜等)
4: 如果在高并发下又想保存数据则可以用Redis (如更新热门文章浏览次数,memcachedb也不错)
 
二:Redis 的详细安装,
 
将 redis 安装到 /usr/local/webserver/redis
 
1:从 http://redis.io/download 上下载安装包
 
wget http://redis.googlecode.com/files/redis-2.2.15.tar.gz
tar zxvf redis-2.2.15.tar.gz
cd redis-2.2.15
make
 
mkdir -p /usr/local/webserver/redis/conf
mkdir -p /usr/local/webserver/redis/run
mkdir -p /usr/local/webserver/redis/db
cp redis.conf /usr/local/webserver/redis/conf/
cd src
# 将 src 目录下所有可执行文件复制到安装目录
cp redis-benchmark redis-check-aof redis-check-dump redis-cli redis-server mkreleasehdr.sh /usr/local/webserver/redis/
 
2:修改配置文件中的如下选项 
------- vi /usr/local/webserver/redis/conf/redis.conf --------
daemonize yes
pidfile /usr/local/webserver/redis/run/redis.pid
dir /usr/local/webserver/redis/db
--------------------------------------------------------------
 
3:创建服务脚本
 
------- vi /usr/local/webserver/redis/start.sh ---------
#!/bin/bash
/usr/local/webserver/redis/redis-server /usr/local/webserver/redis/conf/redis.conf
--------------------------------------------------------
 
------- vi /usr/local/webserver/redis/stop.sh ---------
#!/bin/bash
kill `cat /usr/local/webserver/redis/run/redis.pid`
--------------------------------------------------------
 
chmod a+x /usr/local/webserver/redis/start.sh /usr/local/webserver/redis/stop.sh
 
 
4:启动 redis 服务
/usr/local/webserver/redis/start.sh
验证证服务是否成功: 
netstat -nlpt | grep 6379
 
5:启动客户端验证
/usr/local/webserver/redis/redis-cli
>set key1 val1
>get key1
 
 
三:Redis Master/Slave 主从集群配置
 
这里我们以本机配置 1台Master + 2台Slave 为例子,其中:
 
Master IP:127.0.0.1  PORT:6379
Slave1 IP:127.0.0.1  PORT:63791
Slave2 IP:127.0.0.1  PORT:63792
 
1:复制两个 Slave 目录,方便管理
cp -r /usr/local/webserver/redis /usr/local/webserver/redis-slave1
cp -r /usr/local/webserver/redis /usr/local/webserver/redis-slave2
 
2:修改 redis-slave1 的配置文件和服务脚本
-- vi /usr/local/webserver/redis-slave1/conf/redis.conf --
port 63791
pidfile /usr/local/webserver/redis-slave1/run/redis.pid
dir /usr/local/webserver/redis-slave1/db
slaveof 127.0.0.1 6379
----------------------------------------------------------
 
-- vi /usr/local/webserver/redis-slave1/start.sh --
#!/bin/bash
/usr/local/webserver/redis-slave1/redis-server /usr/local/webserver/redis-slave1/conf/redis.conf
---------------------------------------------------
 
------- vi /usr/local/webserver/redis-slave1/stop.sh ---------
#!/bin/bash
kill `cat /usr/local/webserver/redis-slave1/run/redis.pid`
--------------------------------------------------------
 
3:修改 redis-slave2 的配置文件和服务脚本
-- vi /usr/local/webserver/redis-slave2/conf/redis.conf --
port 63792
pidfile /usr/local/webserver/redis-slave2/run/redis.pid
dir /usr/local/webserver/redis-slave2/db
slaveof 127.0.0.1 6379
----------------------------------------------------------
 
-- vi /usr/local/webserver/redis-slave2/start.sh --
#!/bin/bash
/usr/local/webserver/redis-slave2/redis-server /usr/local/webserver/redis-slave2/conf/redis.conf
---------------------------------------------------
 
------- vi /usr/local/webserver/redis-slave2/stop.sh ---------
#!/bin/bash
kill `cat /usr/local/webserver/redis-slave2/run/redis.pid`
--------------------------------------------------------
 
4:启动 M/S 服务
/usr/local/webserver/redis/start.sh
/usr/local/webserver/redis-slave1/start.sh
/usr/local/webserver/redis-slave2/start.sh
验证服务是否正常: netstat -nlpt | grep redis-server 有3个端口存在证明成功了
0 0.0.0.0:6379  
0 0.0.0.0:63791 
0 0.0.0.0:63792 
 
5:验证M/S服务是否生效
/usr/local/webserver/redis/redis-cli [默认连接端口:6379 的 Master服务]
>set key1 val1
>quit
 
/usr/local/webserver/redis/redis-cli -p 63791 [连接 Slave1 服务]
>get key1
"val1" (数据成功同步了)
 
/usr/local/webserver/redis/redis-cli -p 63792 [连接 Slave2 服务]
>get key1
"val1" (数据成功同步了)
 
 
四:安装 Redis PHP 扩展
 
Redis所有的客户端在 http://redis.io/clients [PHP选项卡] 基于性能选择安装 phpredis 
 
在 https://github.com/nicolasff/phpredis/downloads 上下载源代码包到本地然后上传到服务器.
 
tar zxvf nicolasff-phpredis-2.1.3-167-ga5e53f1.tar.gz 
cd nicolasff-phpredis-a5e53f1
phpize
 
如果出现:
Configuring for: PHP Api Version:         20041225 Zend Module Api No:      20060613 Zend Extension Api No:   220060519 Cannot find autoconf. Please check your autoconf installation and the  $PHP_AUTOCONF  environment variable is set correctly and then rerun this script.
 
用下面的方法解决:
# wget http://ftp.gnu.org/gnu/m4/m4-1.4.9.tar.gz # tar -zvxf m4-1.4.9.tar.gz # cd m4-1.4.9/ # ./configure && make && make install # cd ../ # wget http://ftp.gnu.org/gnu/autoconf/autoconf-2.62.tar.gz # tar -zvxf autoconf-2.62.tar.gz # cd autoconf-2.62/ # ./configure && make && make install
 
./configure  --with-php-config=/usr/local/php/bin/php-config 
make && make install
 
查看输出信息会告诉你 redis.so 的那个目录下,把它复制到PHP的扩展目录下
我的系统上是 /usr/lib/php5/extensions/
 
用 php --ini 找到 php.ini 的位置,加入以下行后重启WEB服务器
=========================
extension=redis.so
=========================
 
 
五:PHP负载开发方案
关注
打赏
1661398670
查看更多评论
立即登录/注册

微信扫码登录

0.3442s