安装Redis
如果未安装redis,请先安装redis,文档可参考:
- windows安装redis
- linux安装redis
安装predis
项目中需要使用predis来连接和操作redis,我们用composer来安装和加载它。
项目目录命令行执行:
composer require predis/predis
安装过程:
配置Redis
在应用配置cache.php文件,file配置后新增redis配置。
打开TP中封装的think\cache\driver\Redis,查看有哪些配置可写。
写几个常用的,其他的就不写了。
return [
// 默认缓存驱动
'default' => env('cache.driver', 'file'),
// 缓存连接方式配置
'stores' => [
'file' => [
// 驱动方式
'type' => 'File',
// 缓存保存目录
'path' => '',
// 缓存前缀
'prefix' => '',
// 缓存有效期 0表示永久缓存
'expire' => 0,
// 缓存标签前缀
'tag_prefix' => 'tag:',
// 序列化机制 例如 ['serialize', 'unserialize']
'serialize' => [],
],
'redis' => [
// 缓存主机
'host' => '127.0.0.1',
// 缓存端口
'port' => '6379',
// 缓存密码
'password' => '',
// 缓存数据库
'select' => 0,
// 缓存有效期 0表示永久缓存
'timeout' => 0,
// 缓存前缀
'prefix' => ''
],
// 更多的缓存连接
],
];
Redis连接测试
在TP中发现有两种连接Redis的方式,一种就是TP原有的封装的Redis,即: think\cache\driver\Redis;另一种就是,刚才安装的predis。
TP封装的Redis操作
public function index()
{
// 字符串操作
$conn = new \think\cache\driver\Redis(config('cache.stores.redis'));
$conn->set('name', '张三');
echo $conn->get('name');
// 集合set操作
$conn = new \think\cache\driver\Redis(config('cache.stores.redis'));
$key = 'user';
$conn->sadd($key, '张三');
$conn->sadd($key, '李四');
$conn->sadd($key, '王五');
$conn->sadd($key, '赵六');
$arr = $conn->smembers($key);
print_r($arr);die;
}
虽然没有方法提示,但是执行都没问题。
结果如下:
predis Redis操作
public function index()
{
// 字符串操作
$conn = new \Predis\Client(config('cache.stores.redis'));
$conn->set('name', '李四');
echo $conn->get('name');
// 集合set操作
$conn = new \Predis\Client(config('cache.stores.redis'));
$key = 'puser';
$conn->sadd($key, ['张三','李四','王五']);
$arr = $conn->smembers($key);
print_r($arr);
}
有方法和参数提示,提示sadd的第二个参数是数组格式,汗!没提示就错了,跟TP封装的Redis竟然不一样。
结果如下:
总结:
经过测试,这两种都可以使用,使用TP封装的Redis操作,不需安装;使用predis需要安装;区别只是predis封装的redis操作更多,使用时有相应方法参数提示。大家可以根据自己的需求,挑选使用,推荐使用predis,有方法和参数提示不易出错。