ThinkPHP使用Redis
前置环境
安装PHP
安装 Redis
安装Redis
新建一个ThinkPHP6项目
PHP Redis扩展
安装PHP redis驱动。
- 安装依赖: 使用 Homebrew 安装一些必要的依赖:
brew install autoconf
- 安装PHP Redis扩展: 使用 PECL 安装 PHP Redis 扩展:
安装完成后,根据提示,编辑 PHP.ini 文件并添加以下行:pecl install redis
# 查看php.ini文件位置 php --ini | grep "Loaded Configuration File" extension="redis.so"
成功安装redis.so扩展
3. php.ini配置Redis扩展:
在php.ini中添加刚才安装完成提示的redis.so
- 重启Web服务器: 最后,重启你的 Web 服务器,使更改生效。
#如果使用brew启动的要使用brew命令重启 sudo nginx -s reload
- 查看PHP是否成功安装redis模块
php -m
ThinkPHP使用Redis
项目安装 Redis 扩展
# 在项目目录下执行如下代码,安装redis依赖
composer require predis/predis
config/database.php
<?php
// +----------------------------------------------------------------------
// | 缓存设置
// +----------------------------------------------------------------------
return [
// 默认缓存驱动
'default' => env('cache.driver', 'redis'),
// 缓存连接方式配置
'stores' => [
'file' => [
// 驱动方式
'type' => 'File',
// 缓存保存目录
'path' => '',
// 缓存前缀
'prefix' => '',
// 缓存有效期 0表示永久缓存
'expire' => 0,
// 缓存标签前缀
'tag_prefix' => 'tag:',
// 序列化机制 例如 ['serialize', 'unserialize']
'serialize' => [],
],
// redis缓存
'redis' => [
// 驱动方式
'type' => 'redis',
// 服务器地址
'host' => '127.0.0.1',
],
// 更多的缓存连接
],
];
测试Redis
<?php
namespace app\controller;
use think\facade\Cache;
use think\facade\Db;
class Index
{
public function index()
{
// 写入缓存
Cache::store('redis')->set('name', 'value');
// 从缓存中读取
$name = Cache::store('redis')->get('name');
// 使用 Redis 实例
$redis = Cache::store('redis')->handler();
// 使用 Redis 实例进行操作
$redis->set('foo', 'bar');
$value = $redis->get('foo');
return 'Hello, ' . $name;
}
}
如果不想用配置文件中的redis连接可以自己指定IP和端口
public function redisAjax(){
$redis = new Redis(['host' => '127.0.0.1', 'port' => 6379, 'password' => '']);
$onlineDevice = $redis->sMembers("setKey");
return $this->jsonSuccess($onlineDevice);
}
检查问题
1.确保已经正确安装和启用了 PHP Redis 扩展,可以通过运行 php -m | grep redis 命令来检查是否加载了 Redis 扩展。
2.检查 config/cache.php 文件中是否正确配置了 Redis 缓存存储器,并确保有名为 "redis" 的存储器配置项。
3.确保在 config/cache.php 文件中启用了 Redis 缓存存储器。
4.重启电脑(装完服务后php-fpm也重启了,redis也启动了,php-redis扩展也安装成功了,访问却报Operation timed out [tcp://127.0.0.1:6379])
如果这篇文章对你有用,可以关注本人微信公众号获取更多ヽ(^ω^)ノ ~
![微信公众号二维码](https://images.cnblogs.com/cnblogs_com/aeolian/1679458/o_wechat_gzh_qrcode.jpg)