1. 程式人生 > >Swoft 踩坑筆記五 - Redis快取

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_的,這樣就獲取不了了。

例圖
在這裡插入圖片描述

當然,我們可以改框架原始碼,但是這樣我覺得不太好。