Swoft 踩坑笔记五 - Redis缓存

本文详细介绍如何在Swoole中集成Redis,包括hiredis的安装与配置,解决Class 'SwooleCoroutineRedis' not found错误,以及如何在CLI与Swoft间共享Redis数据。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

既然我们要用到redis了,那么我们就要应要求,下载hiredis
在这里插入图片描述
如果你还没安装redis,就去安装吧。重启防火墙后要是swoft一直无响应就重启下服务器。或增加8081和8099端口:

-A INPUT -m state --state NEW -m tcp -p tcp --dport 8081 -j ACCEPT
-A INPUT -m state --state NEW -m tcp -p tcp --dport 8099 -j ACCEPT

记得重启防火墙。

安装hiredis
https://github.com/redis/hiredis/releases
下载tar.gz版的。
解压至/usr/local
cd 进hiredis
编译:

# make

安装:

# make install

然后运行示例

$result = cache()->set('nameFunc', 'stelin3');
$name   = cache()->get('nameFunc');

return [$result, $name];

报错 Class 'Swoole\Coroutine\Redis' not found

原因是
在这里插入图片描述

所以呢,你需要重新编译安装swoole

# phpize

加入 enable-async-redis

# ./configure --prefix=/usr/local/swoole/ --enable-async-mysql --enable-openssl --enable-async-redis

# make && make install

再次运行
在这里插入图片描述

注意,如果你需要在cli里获取swoft设置的,那么你就得加前缀redis_ ,同理,想在swoft获取,也得在cli里设置的时候加redis_前缀。

目前没有设置前缀的地方,我觉得默认为redis_前缀不合理,应该没有前缀才对。不然的话,我们假设之前的项目就有redis的数据了,而数据各有各的前缀,然而到了swoft,默认获取是会给你加上redis_的,这样就获取不了了。

例图
在这里插入图片描述

当然,我们可以改框架源码,但是这样我觉得不太好。

下一篇:代码调试

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值