本文首先讲述在Centos7中redis的安装与设置,然后讲解如何使得php支持redis。
一、redis安装与设置
下载:
cd /usr/local/src(我的软件包统一放在这个目录)
wget http://download.redis.io/releases/redis-4.0.6.tar.gz
解压:
tar -zxvf redis-4.0.6.tar.gz
编译:
cd redis-4.0.6
make
编译之后在src目录下会生成几个执行文件,其中redis-server用于启动redis服务器,redis-cli则是用于连接redis服务器的客户端,这时已经可以直接使用了。但是为了方便软件的统一管理,我一般都把源码安装的软件放在/usr/local下面,所以这里首先创建几个目录:
mkdir /usr/local/redis
mkdir /usr/local/redis/bin(用于存放执行文件)
mkdir /usr/local/redis/etc(用于存放配置文件)
然后把redis的配置文件和需要使用的执行文件复制到这两个目录中:
cp src/redis-server /usr/local/redis/bin/redis-server
cp src/redis-cli /usr/local/redis/bin/redis-cli
cp redis.conf /usr/local/redis/etc/redis.conf
启动redis服务器:
cd /usr/local/redis
bin/redis-server
出现以下界面则说明redis-server启动成功:
启动redis客户端:
bin/redis-cli
执行“ping”,若出现“PONG”,则说明客户端已成功连接redis服务器,可以开始使用redis了:
但是我们会发现redis-server一直是在前台运行的,可以通过修改配置文件让redis-server在后台运行。
vim etc/redis.conf,修改daemonize配置项如下:
daemonize yes
然后启动redis-server的时候指定配置文件(不指定则不使用配置文件中的设置):
bin/redis-server etc/redis.conf
会发现redis-server已经可以在后台执行了:
为了安全起见,我们还可以在配置文件中设置redis-cli连接redis-server的密码。
vim etc/redis.conf,通过requirepass参数指定密码:
requirepass 123456
重启redis-server(可以在已经连接了redis-server的redis-cli中执行“shutdown”,也可以直接杀死redis-server进程,然后重新运行redis-server)。
启动redis-server之后再次使用redis-cli连接redis-server,进行其他操作之前已经需要先输入密码了:
设置redis为系统服务:
vim /etc/systemd/system/redis.service
[Unit]
Description=redis
After=network.target
[Service]
Type=forking
ExecStart=/usr/local/redis/bin/redis-server /usr/local/redis/etc/redis.conf
PrivateTmp=True
[Install]
WantedBy=multi-user.target
设置redis开机自启动:
systemctl enable redis.service
以后可以直接执行systemctl指令启动redis服务:
systemctl start redis.service
一、php支持redis
下载phpredis扩展包:
cd /usr/local/src
git clone https://github.com/phpredis/phpredis.git
(若未安装git,可以使用yum安装:yum install git)
编译安装:
cd phpredis
/usr/local/php/bin/phpize(取决于你安装php之后phpize文件的位置)
./configure --with-php-config=/usr/local/php/bin/php-config(取决于你安装php之后php-config文件的位置)
make
make install
修改php配置文件:
vim /etc/php.ini
extension=redis.so
重启php-fpm服务:
systemctl reload php-fpm.service
在浏览器中打印phpinfo(),查看php是否已支持redis,若已成功支持,则f可以开始使用php来操作redis了。
简易php测试脚本:
$redis = new Redis();
$redis->connect('127.0.0.1', 6379, 30);//连接
$redis->auth('123456');//认证
$res->set('num', 100);//设值
$ret = $redis->get('num');//取值
echo $ret;