Redis简介
Redis是一个基于内存的数据结构存储系统,被广泛用于缓存、消息队列、实时统计、长连接等场景,特别是在高并发的场景下表现出色。Redis提供了丰富的数据类型,支持主从复制、持久化和集群,被认为是最快的键值存储系统之一。在PHP中连接Redis可以使用PHP扩展或者Redis自带的PHP客户端,本文将介绍如何使用PHP扩展连接Redis并进行认证。
PHP扩展安装
步骤一:下载Redis扩展
Redis扩展可以从PECL官网下载,也可以从GitHub上手动下载,这里以PECL官网下载为例。打开终端执行如下命令:
pecl download redis
下载完成后会生成一个tar.gz文件,这个文件是Redis扩展的源代码压缩包。
步骤二:解压缩并编译
将Redis扩展源代码解压缩并进入目录,执行如下命令:
tar -zxf redis-x.x.x.tgz
cd redis-x.x.x
phpize
./configure --with-php-config=[PHP安装路径]/bin/php-config
make
sudo make install
其中x.x.x是Redis扩展版本号,[PHP安装路径]是PHP的安装路径。
执行这些命令会自动生成Redis扩展的.so文件,并放到PHP的扩展目录中。
Redis连接
PHP扩展提供了类似于mysqli和PDO的连接Redis的方式,可以使用Redis类或RedisCluster类来连接Redis服务器。
连接单个Redis服务器
使用Redis类连接单个Redis服务器的示例代码如下:
$redis = new Redis();
$redis->connect('127.0.0.1', 6379);
这里连接了本机上的Redis服务器,端口号是默认的6379。
如果Redis服务器需要通过密码认证,则需要使用auth方法进行认证:
$redis = new Redis();
$redis->connect('127.0.0.1', 6379);
$redis->auth('password');
其中password是Redis服务器设置的密码。
连接Redis集群
使用RedisCluster类连接Redis集群的示例代码如下:
$redis = new RedisCluster(NULL, array(
'127.0.0.1:7000',
'127.0.0.1:7001',
'127.0.0.1:7002',
));
其中NULL表示不使用RedisCluster自带的配置文件,后面的数组指定了所有节点的地址及端口号。
Redis认证
如果Redis服务器设置了密码认证,那么就需要在连接Redis服务器之后先进行认证,才能进行其他操作。
使用Redis类或RedisCluster类对象的auth方法进行认证的示例代码如下:
$redis = new Redis();
$redis->connect('127.0.0.1', 6379);
$redis->auth('password');
或者:
$redis = new RedisCluster(NULL, array(
'127.0.0.1:7000',
'127.0.0.1:7001',
'127.0.0.1:7002',
));
$redis->auth('password');
其中password是Redis服务器设置的密码。
总结
本文介绍了如何使用PHP扩展连接Redis并进行认证,需要注意的是,连接Redis服务器的方式与连接MySQL服务器的方式很类似,因为PHP扩展设计得非常一致和友好。开发者也可以使用Redis自带的PHP客户端进行连接和认证,不过Redis扩展的性能可能更好一些。