久久久久av_欧美日韩一区二区在线_国产精品三区四区_日韩中字在线

Discuz! 官方交流社區(qū)

標(biāo)題: Discuz!使用Redis緩存多站點(diǎn)分庫(kù)和避免清空所有的數(shù)據(jù)教程! [打印本頁(yè)]

作者: allthebest    時(shí)間: 2021-3-11 05:49
標(biāo)題: Discuz!使用Redis緩存多站點(diǎn)分庫(kù)和避免清空所有的數(shù)據(jù)教程!
Discuz!內(nèi)存級(jí)緩存介紹

緩存層的引入是為了解決MYSQL自身對(duì)高并發(fā)處理的性能瓶頸,目前產(chǎn)品緩存層采用主流的Key-Value對(duì)形式,內(nèi)存級(jí)的緩存產(chǎn)品很多,支持的內(nèi)存優(yōu)化接口有 Memcache、eAccelerator、Alternative PHP Cache(APC)、Xcache、Redis 五種,優(yōu)化系統(tǒng)將會(huì)依據(jù)當(dāng)前服務(wù)器環(huán)境依次選用接口,單服務(wù)器環(huán)境中推薦使用APC,多服務(wù)器環(huán)境中推薦使用Redis或Memcache。

現(xiàn)存問(wèn)題說(shuō)明

有不少站長(zhǎng)在一個(gè)服務(wù)器上安裝多個(gè)站點(diǎn),且同時(shí)使用Redis作為緩存過(guò)程中發(fā)現(xiàn),當(dāng)使用后臺(tái)->全局->性能優(yōu)化->內(nèi)存優(yōu)化->內(nèi)存清理,會(huì)把redis緩存的全部站點(diǎn)的內(nèi)容都清空。
(, 下載次數(shù): 77)

改進(jìn)方案

具體實(shí)現(xiàn)如下:


1、修改文件config\config_global.php

  1. $_config['memory']['redis']['serializer'] = 1;
復(fù)制代碼


下方增加一行

  1. $_config['memory']['redis']['db'] = 1;//這里可以填寫(xiě)0到15的數(shù)字,每個(gè)站點(diǎn)使用不同的,redis默認(rèn)是16個(gè)庫(kù),也可以增加庫(kù)

  2. 2、修改文件source\class\memory\memory_driver_redis.php

  3. 在 [code]@$this->obj->setOption(Redis::OPT_SERIALIZER, $config['serializer']);
復(fù)制代碼


下方加上一行

  1. $this->select($config['db']);
復(fù)制代碼


3、將flushAll改成flushdb避免后臺(tái)清理影響全部站點(diǎn);

  1. function clear() {

  2. return $this->obj->flushAll();

  3. }
復(fù)制代碼


改成

  1. function clear() {

  2. return $this->obj->flushdb();

  3. }
復(fù)制代碼

作者: pcyi    時(shí)間: 2023-2-8 21:30
感謝分享!太實(shí)用了!
這么好的教程,現(xiàn)在還沒(méi)人評(píng)論,搶沙發(fā)
作者: pcyi    時(shí)間: 2023-2-8 21:59
經(jīng)過(guò)對(duì)比發(fā)現(xiàn) X3.5已經(jīng)默認(rèn)是這樣的設(shè)置
  1. $_config['memory']['prefix'] = 'p1oXuh_';
  2. $_config['memory']['redis']['server'] = '127.0.0.1';
  3. $_config['memory']['redis']['port'] = 6379;
  4. $_config['memory']['redis']['pconnect'] = 1;
  5. $_config['memory']['redis']['timeout'] = 0;
  6. $_config['memory']['redis']['requirepass'] = '';
  7. $_config['memory']['redis']['db'] = 0;
復(fù)制代碼
source\class\memory\memory_driver_redis.php

已經(jīng)默認(rèn)
  1. function clear() {
  2.                 return $this->obj->flushDb();
  3.         }
復(fù)制代碼
指定數(shù)據(jù)庫(kù)
  1.     @$this->obj->setOption(Redis::OPT_SERIALIZER, Redis::SERIALIZER_NONE);
  2.                                 $this->select(isset($config['db']) ? $config['db'] : 0);
復(fù)制代碼



作者: c-hr    時(shí)間: 2024-11-19 10:21
謝謝分享




歡迎光臨 Discuz! 官方交流社區(qū) (http://www.9999xn.com/) Powered by Discuz! W1.0