Swoft 踩坑筆記五 - Redis快取
阿新 • • 發佈:2018-11-27
既然我們要用到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_的,這樣就獲取不了了。
例圖
當然,我們可以改框架原始碼,但是這樣我覺得不太好。