0

0

Redis的装配、使用以及php中扩展redis并实现php操作redis的一个例子

php中文网

php中文网

发布时间:2016-06-13 12:23:06

|

954人浏览过

|

来源于php中文网

原创

Redis的安装、使用以及php中扩展redis并实现php操作redis的一个例子

1、下载源码包redis-2.8.21.tar.gz,并将其上传到指定目录/urs/src,然后对其进行解压:

[[email protected] src]# tar -xvf redis-2.8.21.tar.gz

进入解压后的目录,并执行下面命令,指定安装目录为/urs/local/redis

[[email protected] src]# cd redis-2.8.21 

[[email protected] redis-2.8.21]# make PREFIX=/usr/local/redis install

立即学习PHP免费学习笔记(深入)”;

安装redis成功后,可以在/usr/local/redis看到一个bin的目录,里面包括了以下文件:

[[email protected] ~]# cd /usr/local/redis/bin/

[[email protected] bin]# ls

redis-benchmark  redis-check-aof  redis-check-dump  redis-cli  redis-sentinel  redis-server

 

2、添加redis启动脚本到服务中:

/etc/rc.d/init.d目录,创建一个文件,名为redis(说明:/etc/rc.d/init.d/目录下的脚本在系统启动的时候某些指定脚本将被执行),然后在文件中添加如下内容:

[[email protected] ~]# vim /etc/init.d/redis

#!/bin/bash 

# Init file for redis 

# chkconfig: - 80 12 

# description: redis daemon 

# processname: redis 

# config: /etc/redis.conf 

# pidfile: /var/run/redis.pid 

source /etc/init.d/functions

BIN="/usr/local/redis/bin"

CONFIG="/etc/redis/redis.conf"

PIDFILE="/var/run/redis.pid"

### Read configuration 

[ -r "$SYSCONFIG" ] && source "$SYSCONFIG"

RETVAL=0

prog="redis-server"

desc="Redis Server"

start() {

        if [ -e $PIDFILE ];then

             echo "$desc already running...." 

             exit 1

        fi

        echo -n $"Starting $desc: " 

        daemon $BIN/$prog $CONFIG

        RETVAL=$?

        echo 

        [ $RETVAL -eq 0 ] && touch /var/lock/subsys/$prog

        return $RETVAL

}

stop() {

        echo -n $"Stop $desc: " 

        killproc $prog

        RETVAL=$?

        echo 

        [ $RETVAL -eq 0 ] && rm -f /var/lock/subsys/$prog $PIDFILE

        return $RETVAL

}

restart() {

        stop

        start

}

case "$1" in

  start)

        start

        ;;

  stop)

        stop

        ;;

  restart)

        restart

        ;;

  condrestart)

        [ -e /var/lock/subsys/$prog ] && restart

        RETVAL=$?

        ;;

  status)

        status $prog

        RETVAL=$?

        ;;

   *)

        echo $"Usage: $0 {start|stop|restart|condrestart|status}" 

        RETVAL=1

esac

exit $RETVAL

 

将解压后的redis目录下的配置文件redis.conf拷贝到/etc/redis/redis.conf  (注意要与redis的启动脚本中的路径一致

[[email protected] ~]# mkdir /etc/redis

[[email protected] ~]# cp /usr/src/redis-2.8.21/redis.conf  /etc/redis/redis.conf

 

然后将redis添加到注册服务:

[[email protected] ~]# chkconfig --add redis 

[[email protected] ~]# chkconfig redis on

[[email protected] ~]# chkconfig --list redis

redis           0:off   1:off   2:on    3:on    4:on    5:on    6:off

重启redis

[[email protected] ~]# service redis restart

Stop Redis Server:                                         [  OK  ]

Starting Redis Server:                                     [  OK  ]

查看是否启动成功:

[[email protected] ~]# ps -ef | grep redis  

root      2984     1  0 13:40 ?        00:00:00 /usr/local/bin/redis-server 0.0.0.0:6379         

root      2989  2444  0 13:40 pts/1    00:00:00 grep redis

 

修改/etc/redis/redis.conf,设置redis进程为后台守护进程,并指定一个密码:

[[email protected] ~]# vim /etc/redis/6379.conf 

daemonize yes     //daemonize:是否以后台daemon方式运行

requirepass  20082009  //设置密码为20082009

设置完后,需要重启redis才能使设置生效:

[[email protected] ~]# service redis restart

 

修改环境变量文件,添加如下内容:

vim /etc/profile  

#set redis path

export REDIS_HOME=/usr/local/redis

export PATH=${REDIS_HOME}/bin:${PATH}

通过source /etc/profile 使其立刻生效

 

3、调用redis-cli的命令进行简单操作(注意是否启动密码验证):

[[email protected] ~]# redis-cli                

127.0.0.1:6379> ping

(error) NOAUTH Authentication required.

127.0.0.1:6379> auth 20082009   //需要输入密码

OK

127.0.0.1:6379> ping

PONG

127.0.0.1:6379> set name lebron james

(error) ERR syntax error

127.0.0.1:6379> set name "lebron james"  //有空格的字符串需要加“”

OK

127.0.0.1:6379> get name

"lebron james"

127.0.0.1:6379> set name lebronjames

OK

127.0.0.1:6379> get name

"lebronjames"

127.0.0.1:6379> 

 

4、php中扩展redis

下载php的一个扩展phpredis的源码包phpredis-2.2.4.tar.gz,将其上传到服务器指定位置,对其进行解压,然后进入解压后的目录:

tar -xvf phpredis-2.2.4.tar.gz

cd phpredis-2.2.4

phpize生成configure配置文件

[[email protected] phpredis-2.2.4]# /usr/local/php/bin/phpize 

然后执行如下命令:

[[email protected] phpredis-2.2.4]# ./configure --with-php-config=/usr/local/php/bin/php-config

[[email protected] phpredis-2.2.4]# make && make install

配置php支持phpredis,在php.ini文件添加如下内容:

vim /usr/local/php/lib/php.ini 

extension=  /usr/local/php/lib/php/extensions/no-debug-non-zts-20121212/redis.so

 

然后重启分别重启nginxphp-fpmredis

service nginx restart

service php-fpm restart

service redis restart

查看phpinfo(),显示如下,表明php扩展redis成功:


一个简单的php操作redis的例子:

connect('127.0.0.1', '6379') or die ("Could not to connect to redis"); //或者具体主机的IP地址也行   $redis->set("test", “php handle redis");   var_dump($redis->get('test'));   echo "
"; $redis->del('test'); //删除赋值 var_dump($redis->get('test')); ?>


输出结果:


从结果中可以看出,redis并没有起到作用,后来分析分析,由于之前在redis.conf文件中配置了密码登录redis的限制,现在只需要把redis.conf里面的 requirepass 20082009  这句注释掉即可:#requirepass 20082009,然后重启redisservice redis restart

再次执行php文件,显示如下结果,表明php操作redis成功:


Redis主从Master/Slave集群配置:

Master: 172.16.2.33   6379

Slave:172.16.2.42  63791

由于前面已经配置好了masterredis了,现在配置slave只需按照前面的步骤进行即可,简单步骤如下:

1)将redis的源码包redis-2.8.21.tar.gz通过scp 的方法远程复制到slave主机上,进行解压,进入解压后的文件,执行命令:make PREFIX=/usr/local/redis install,这样就在slave上安装了redis

2)接着修改环境变量文件:vim etc/profile,添加export REDIS_HOME=/usr/local/redis export PATH=${REDIS_HOME}/bin:${PATH},并通过source使其生效;

3)然后将master主机上的/etc/init.d/redis 复制到slave对应的目录上,另外把master主机上的/etc/redis/redis.conf文件也复制到slave主机上对应的目录上;

4)然后修改slave主机上的redis.conf,只需要将 # slaveof   修改为master对应的IPPORT即可:即修改为:slaveof 172.16.2.33 6379

5)接着将redis添加到chkconfig列表中:chkconfig --add redischkconfig redis on;然后重启redisservice redis restart

6)查看master主机上的信息:

[[email protected] ~]# redis-cli info replication

# Replication

role:master

connected_slaves:1

slave0:ip=172.16.2.42,port=63791,state=online,offset=924,lag=1

master_repl_offset:924

。。。

查看slave主机上的信息:

[[email protected] ~]# redis-cli -p 63791 info replication

# Replication

role:slave

master_host:172.16.2.33

master_port:6379

master_link_status:up

。。。

7)写同步测试(master主机上的写入数据同步到slave主机上):

Master主机上:

[[email protected] ~]# redis-cli 

127.0.0.1:6379> set name james

OK

127.0.0.1:6379> get name

"james"

Slave主机上:

[[email protected] ~]# redis-cli -p 63791

127.0.0.1:63791> get name

"james"

127.0.0.1:63791> set name "lebron james"

(error) READONLY You can't write against a read only slave. 

slave开启了只读模式,所以从将不能写入数据,可以保证数据只从主服务器同步至从服务器)

 

如果需要让slave也能写入数据,需要修改配置文件redis.conf:将slave-read-only yes 修改为slave-read-only no,然后重启redis(这样配置后可以向slave写入数据,但是不会同步到master,如下所示:)

Slave主机上:

[[email protected] ~]# redis-cli -p 63791   

127.0.0.1:63791> set name "lebron james"

OK

127.0.0.1:63791> get name

"lebron james"

Master主机上(slave主机上的数据并没有同步到master上):

[[email protected] ~]# redis-cli 

127.0.0.1:6379> get name

"james"

127.0.0.1:6379> 



版权声明:本文为博主原创文章,未经博主允许不得转载。

相关文章

PHP速学教程(入门到精通)
PHP速学教程(入门到精通)

PHP怎么学习?PHP怎么入门?PHP在哪学?PHP怎么学才快?不用担心,这里为大家提供了PHP速学教程(入门到精通),有需要的小伙伴保存下载就能学习啦!

下载

相关标签:

本站声明:本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系admin@php.cn

相关专题

更多
c++主流开发框架汇总
c++主流开发框架汇总

本专题整合了c++开发框架推荐,阅读专题下面的文章了解更多详细内容。

3

2026.01.09

c++框架学习教程汇总
c++框架学习教程汇总

本专题整合了c++框架学习教程汇总,阅读专题下面的文章了解更多详细内容。

7

2026.01.09

学python好用的网站推荐
学python好用的网站推荐

本专题整合了python学习教程汇总,阅读专题下面的文章了解更多详细内容。

11

2026.01.09

学python网站汇总
学python网站汇总

本专题整合了学python网站汇总,阅读专题下面的文章了解更多详细内容。

1

2026.01.09

python学习网站
python学习网站

本专题整合了python学习相关推荐汇总,阅读专题下面的文章了解更多详细内容。

4

2026.01.09

俄罗斯手机浏览器地址汇总
俄罗斯手机浏览器地址汇总

汇总俄罗斯Yandex手机浏览器官方网址入口,涵盖国际版与俄语版,适配移动端访问,一键直达搜索、地图、新闻等核心服务。

9

2026.01.09

漫蛙稳定版地址大全
漫蛙稳定版地址大全

漫蛙稳定版地址大全汇总最新可用入口,包含漫蛙manwa漫画防走失官网链接,确保用户随时畅读海量正版漫画资源,建议收藏备用,避免因域名变动无法访问。

14

2026.01.09

php学习网站大全
php学习网站大全

精选多个优质PHP入门学习网站,涵盖教程、实战与文档,适合零基础到进阶开发者,助你高效掌握PHP编程。

2

2026.01.09

php网站搭建教程大全
php网站搭建教程大全

本合集专为零基础用户打造,涵盖PHP网站搭建全流程,从环境配置到实战开发,免费、易懂、系统化,助你快速入门建站!

6

2026.01.09

热门下载

更多
网站特效
/
网站源码
/
网站素材
/
前端模板

精品课程

更多
相关推荐
/
热门推荐
/
最新课程
进程与SOCKET
进程与SOCKET

共6课时 | 0.3万人学习

Redis+MySQL数据库面试教程
Redis+MySQL数据库面试教程

共72课时 | 6.3万人学习

关于我们 免责申明 举报中心 意见反馈 讲师合作 广告合作 最新更新
php中文网:公益在线php培训,帮助PHP学习者快速成长!
关注服务号 技术交流群
PHP中文网订阅号
每天精选资源文章推送

Copyright 2014-2026 https://www.php.cn/ All Rights Reserved | php.cn | 湘ICP备2023035733号