返回列表 发帖
查看: 2506|回复: 2

Discuz!使用Redis缓存多站点分库和避免清空所有的数据教程!

83

主题

2795

回帖

3564

积分

功行圆满

贡献
22 点
金币
351 个
发表于 2021-3-11 05:49:36 | 显示全部楼层 |阅读模式
Discuz!内存级缓存介绍

缓存层的引入是为了解决MYSQL自身对高并发处理的性能瓶颈,目前产品缓存层采用主流的Key-Value对形式,内存级的缓存产品很多,支持的内存优化接口有 Memcache、eAccelerator、Alternative PHP Cache(APC)、Xcache、Redis 五种,优化系统将会依据当前服务器环境依次选用接口,单服务器环境中推荐使用APC,多服务器环境中推荐使用Redis或Memcache。

现存问题说明

有不少站长在一个服务器上安装多个站点,且同时使用Redis作为缓存过程中发现,当使用后台->全局->性能优化->内存优化->内存清理,会把redis缓存的全部站点的内容都清空。
02.JPG

改进方案

具体实现如下:


1、修改文件config\config_global.php

  1. $_config['memory']['redis']['serializer'] = 1;
复制代码


下方增加一行

  1. $_config['memory']['redis']['db'] = 1;//这里可以填写0到15的数字,每个站点使用不同的,redis默认是16个库,也可以增加库

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

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


下方加上一行

  1. $this->select($config['db']);
复制代码


3、将flushAll改成flushdb避免后台清理影响全部站点;

  1. function clear() {

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

  3. }
复制代码


改成

  1. function clear() {

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

  3. }
复制代码
回复

使用道具 举报

39

主题

744

回帖

900

积分

自成一派

贡献
9 点
金币
33 个
发表于 2023-2-8 21:30:10 | 显示全部楼层
感谢分享!太实用了!
这么好的教程,现在还没人评论,抢沙发
回复 支持 反对

使用道具 举报

39

主题

744

回帖

900

积分

自成一派

贡献
9 点
金币
33 个
发表于 2023-2-8 21:59:27 | 显示全部楼层
经过对比发现 X3.5已经默认是这样的设置
  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;
复制代码
source\class\memory\memory_driver_redis.php

已经默认
  1. function clear() {
  2.                 return $this->obj->flushDb();
  3.         }
复制代码
指定数据库
  1.     @$this->obj->setOption(Redis::OPT_SERIALIZER, Redis::SERIALIZER_NONE);
  2.                                 $this->select(isset($config['db']) ? $config['db'] : 0);
复制代码


回复 支持 反对

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

  • 关注公众号
  • 有偿服务微信
  • 有偿服务QQ

手机版|小黑屋|Discuz! 官方交流社区 ( 皖ICP备16010102号 |皖公网安备34010302002376号 )|网站地图|star

GMT+8, 2024-4-20 23:57 , Processed in 0.048700 second(s), 9 queries , Redis On.

Powered by Discuz! W1.0 Licensed

Cpoyright © 2001-2024 Discuz! Team.

关灯 在本版发帖
有偿服务QQ
有偿服务微信
返回顶部
快速回复 返回顶部 返回列表