Swoft 踩坑笔记五 - Redis缓存

既然我们要用到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_的,这样就获取不了了。

例图
在这里插入图片描述

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

猜你喜欢

转载自blog.csdn.net/weikaixxxxxx/article/details/84549650