結合設計經驗與營銷實踐,提供有價值的互聯網資訊
以上是由福州網站建設的小編為你分享了"tp6 redis緩存一定要序列化嗎"文章,如果你在這方面有什么問題,隨時聯系我們
熊貓燒香 11月25日
看了下他的源碼,$serialize = $this->options['serialize'][0] ?? "serialize";意思就是如果配置文件里不配置serialize參數,默認就用serialize序列化,看到上面回答里有用trim,trim在能取到redis值的時候沒問題,但是當redis的值不存在,trim就會報一個參數為null的錯誤,所以要找一個可以兼容null值的函數,目前我找到的是strval,cache.php配置文件里改成:'serialize' => ['strval','strval']
huguo0314 2021年07月23日
TP6的緩存配置中有一個 serialize 把這個配置改一下就可以了 .
熊貓燒香 11月24日
回復 huguo0314 : 'serialize' => ['trim', 'trim']; 這樣會有個問題,如果redis沒有這個值,會報一個trim參數為null的錯誤,所以這就是tp6的一個bug
意志與靈魂 2021年07月29日
哦,好的,謝謝,我試一下
huguo0314 2021年07月27日
回復 意志與靈魂 :
看對方redis緩存的數據結構,如果是json格式,可以'serialize' => ['json_encode', 'json_decode'];
如果是純字符串的話,也可以什么都不做'serialize' => ['trim', 'trim']; 總之'serialize'為空的話,框架就默認序列化了。
意志與靈魂 2021年07月27日
今天才登上來看到,謝謝你的答復,請問是這樣子設置嗎?我這樣設置好像沒有反應,還是要序列化
'redis_pand' => [ // Pandora
'type' => 'redis',
'host' => '127.0.0.1',
'select' => '1',
'port' => '7008',
'serialize' => []
],