黑帽联盟

 找回密码
 会员注册
查看: 1351|回复: 0
打印 上一主题 下一主题

[建站教程] discuz2.5版本配置文件中开启redis

[复制链接]

895

主题

38

听众

3329

积分

管理员

Rank: 9Rank: 9Rank: 9

  • TA的每日心情
    难过
    昨天 22:31
  • 签到天数: 1652 天

    [LV.Master]伴坛终老

    这里以discuz2.5版本为例,因为当redis设置了密码认证的时候,2.5版本默认是无法使用redis的,前提需要在配置文件里面添加认证的相关信息,2.5版本默认是没有密码验证的

    第一步:修改redis的驱动文件:/source/class/memory/memory_driver_redis.php文件,init方法进行auth代码认证
    12.png

    第二步:打开config/config_global.php文件,设置reids相关端口配置,其中requirepass是redis认证密码
    13.png

    以上两个步骤就可以了,但是如果需要用到后台的内存清理的话,就继续设置下面,也需要修改添加一些内容进去才可以,至于为什么,看下面的解释

    打开discuz后台查看redis相关配置:全局》性能优化》内存优化
    14.png


    discuz后台内存优化中的内存清理优化

    (1)上图中redis后边有个内存清理功能,此功能会将redis当前的数据库所有数据都清空,如果该redis服务器中还有其他应用的内存数据,也会清除掉,所以可以适当优化只将属于discuz的内存清理掉。  
    (2)内存清理优化逻辑:/source/class/discuz/discuz_memory.php是内存管理的相关操作类,其中有一个clear方法就是在内存清理掉时候调用的,然后会继续调用/source/class/memory/memory_driver_redis.php中的clear方法。  
    (3)我们优化的地方就是将discuz最初配置中的前缀作为标记,将该前缀的所有key批量删除,而不会将其他应用的key也清理掉。  
    (4)下图1是/source/class/discuz/discuz_memory.php中clear方法,传递一个前缀的参数;下图2是/source/class/memory/memory_driver_redis.php中的clear方法,先查询出所有该前缀的key,然后批量删除

    15.png
                                (图1)

    16.png
                                (图2)


    最后我们也可以在服务器上登录redis,进行管理相关的key和value,如下图:查看所有keys
    17.png


    相关文章:nginx+php+mysql+redis+discuz搭建详细教程


    帖子永久地址: 

    黑帽联盟 - 论坛版权1、本主题所有言论和图片纯属会员个人意见,与本论坛立场无关
    2、本站所有主题由该帖子作者发表,该帖子作者与黑帽联盟享有帖子相关版权
    3、其他单位或个人使用、转载或引用本文时必须同时征得该帖子作者和黑帽联盟的同意
    4、帖子作者须承担一切因本文发表而直接或间接导致的民事或刑事法律责任
    5、本帖部分内容转载自其它媒体,但并不代表本站赞同其观点和对其真实性负责
    6、如本帖侵犯到任何版权问题,请立即告知本站,本站将及时予与删除并致以最深的歉意
    7、黑帽联盟管理员和版主有权不事先通知发贴者而删除本文

    勿忘初心,方得始终!
    您需要登录后才可以回帖 登录 | 会员注册

    发布主题 !fastreply! 收藏帖子 返回列表 搜索
    回顶部