返回列表 发帖

Discuz!X2.5+Redis+Memcached

笺注:这是在 CentOS8_lnmp1.7_LNMP 的基础上进行的。


Redis是一个基于内存、键值对的开源存储数据库;在内存中存储数据,防止高并发影响数据库性能,减少数据库压力,提高查询速度。


Discuz!X2.5使用Redis

管理中心》全局》性能优化》内存优化:
图片1.png
注释:默认情况下,Redis是需要额外安装的。


下载Redis的软件包:(可实现离线安装)
http://download.redis.io/releases/redis-6.0.8.tar.gz
http://pecl.php.net/get/redis-5.3.2.tgz

上传Redis的软件包:
[root@centos8 src]# pwd
/root/lnmp1.7-full/src
[root@centos8 src]# ll redis-*
-rw-r--r-- 1 root root  266814 7月   2 09:14 redis-5.3.2.tgz
-rw-r--r-- 1 root root 2247528 3月   3 18:40 redis-6.0.8.tar.gz

安装Redis:
[root@centos8 ~]# cd lnmp1.7-full
[root@centos8 lnmp1.7-full]# ./addons.sh

图片2.png

安装或取消安装:
图片3.png

Redis安装成功:
图片4.png


重启Redis:
[root@centos8 ~]# systemctl restart redis

Redis会随系统的启动而启动:
[root@centos8 ~]# systemctl is-enabled redis
enabled


查询Redis的配置文件:
[root@centos8 ~]# php -i |grep redis
Additional .ini files parsed => /usr/local/php/conf.d/007-redis.ini
redis
redis.arrays.algorithm => no value => no value
redis.arrays.auth => no value => no value
redis.arrays.autorehash => 0 => 0
redis.arrays.connecttimeout => 0 => 0
redis.arrays.consistent => 0 => 0
redis.arrays.distributor => no value => no value
redis.arrays.functions => no value => no value
redis.arrays.hosts => no value => no value
redis.arrays.index => 0 => 0
redis.arrays.lazyconnect => 0 => 0
redis.arrays.names => no value => no value
redis.arrays.pconnect => 0 => 0
redis.arrays.previous => no value => no value
redis.arrays.readtimeout => 0 => 0
redis.arrays.retryinterval => 0 => 0
redis.clusters.auth => no value => no value
redis.clusters.cache_slots => 0 => 0
redis.clusters.persistent => 0 => 0
redis.clusters.read_timeout => 0 => 0
redis.clusters.seeds => no value => no value
redis.clusters.timeout => 0 => 0
redis.pconnect.connection_limit => 0 => 0
redis.pconnect.echo_check_liveness => 1 => 1
redis.pconnect.pool_pattern => no value => no value
redis.pconnect.pooling_enabled => 1 => 1
redis.session.lock_expire => 0 => 0
redis.session.lock_retries => 10 => 10
redis.session.lock_wait_time => 2000 => 2000
redis.session.locking_enabled => 0 => 0
Registered save handlers => files user redis rediscluster
This program is free software; you can redistribute it and/or modify


Redis的配置文件:
[root@centos8 ~]# cat /usr/local/php/conf.d/007-redis.ini
extension = "redis.so"


在PHP测试页可以看到Redis的信息:
图片5.png


现在Discuz!X2.5支持Redis了,但还要在Discuz!X2.5的全局配置文件config_global.php中打开:
图片6.png


去到Discuz!X2.5的站点目录里修改config_global.php:
图片7.png

[root@centos8 config]# vi config_global.php
图片8.png
修改为:
$_config['memory']['redis']['server'] = '127.0.0.1';
图片9.png
注释:修改完成后,保存文件即可生效。

Redis生效了:
图片10.png
笺注:
Redis开启后,不会使数据的更新发生延迟。


对Redis进行内存清理:(点击“内存清理”即可)
图片11.png

图片12.png












######

Memcached 是一个高性能的分布式内存对象缓存系统,用于动态Web应用以减轻数据库负载。它通过在内存中缓存数据和对象来减少读取数据库的次数,从而提高数据库的访问速度。


安装Memcached的扩展php-memcache:

下载Memcached的软件包:(可实现离线安装)
https://soft.vpser.net/web/memcache/memcache-4.0.5.2.tgz
https://soft.vpser.net/web/memcached/memcached-1.6.7.tar.gz

先上传Memcached的相关软件包:
[root@centos8 src]# pwd
/root/lnmp1.7-full/src
[root@centos8 src]# ll memcache*
-rw-r--r-- 1 root root  75061 7月   2 10:09 memcache-4.0.5.2.tgz
-rw-r--r-- 1 root root 547791 3月   3 18:42 memcached-1.6.7.tar.gz

[root@centos8 ~]# cd lnmp1.7-full
[root@centos8 lnmp1.7-full]# bash addons.sh install memcached

图片13.png
注释:
Memcached有两个PHP扩展,分别是php-memcache和php-memcached;
根据实际需求选择php-memcache或php-memcached,discuz x使用的是php-memcache;功能上php-memcached更强大一些;

安装或取消安装:
图片14.png

Memcached的扩展php-memcache安装成功:
图片15.png


重启Memcached:
[root@centos8 ~]# systemctl restart memcached

Memcached会随系统的启动而启动:
[root@centos8 ~]# systemctl is-enabled memcached
memcached.service is not a native service, redirecting to systemd-sysv-install.
Executing: /usr/lib/systemd/systemd-sysv-install is-enabled memcached
enabled


查询Memcached的扩展php-memcache的配置文件:
[root@centos8 ~]# php -i |grep memcached
Additional .ini files parsed => /usr/local/php/conf.d/005-memcached.ini,

Memcached的扩展php-memcache的配置文件:
[root@centos8 ~]# cat /usr/local/php/conf.d/005-memcached.ini
extension = memcache.so


在PHP测试页可以看到php-memcache的信息:
图片16.png


现在Discuz!X2.5支持php-memcache了,但还要在Discuz!X2.5的全局配置文件config_global.php中打开:
图片17.png

去到Discuz!X2.5的站点目录里修改config_global.php:
图片18.png

[root@centos8 config]# vi config_global.php
修改为:
$_config['memory']['memcache']['server'] = '127.0.0.1';
图片19.png
注释:
在discuz!中打开Memcached的扩展php-memcache
在discuz!中关闭Redis
修改完成后,保存文件即可生效。


php-memcache生效了:
图片20.png
笺注:
打开php-memcache后,不会使数据的更新发生延迟。





######

卸载Memcached:
[root@centos8 ~]# cd lnmp1.7-full
[root@centos8 lnmp1.7-full]# ./addons.sh uninstall memcached
图片21.png

Memcached卸载成功:
图片22.png





######

安装Memcached的扩展php-memcached:

下载Memcached的软件包:(可实现离线安装)
https://soft.vpser.net/web/memcached/memcached-1.6.7.tar.gz
https://soft.vpser.net/web/libmemcached/libmemcached-1.0.18.tar.gz
https://soft.vpser.net/web/php-memcached/memcached-3.1.5.tgz

上传Memcached的相关软件包:
[root@centos8 src]# pwd
/root/lnmp1.7-full/src
[root@centos8 src]# ll *memcached*
-rw-r--r--  1 root root 1039649 7月   2 10:45 libmemcached-1.0.18.tar.gz
-rw-r--r--  1 root root  547791 3月   3 18:42 memcached-1.6.7.tar.gz
-rw-r--r--  1 root root   83015 7月   2 10:53 memcached-3.1.5.tgz

[root@centos8 ~]# cd lnmp1.7-full
[root@centos8 lnmp1.7-full]# bash addons.sh install memcached

图片23.png

安装或取消安装:
图片24.png

Memcached的扩展php-memcached安装成功:
图片25.png


重启Memcached:
[root@centos8 ~]# systemctl restart memcached

Memcached会随系统的启动而启动:
[root@centos8 ~]# systemctl is-enabled memcached
memcached.service is not a native service, redirecting to systemd-sysv-install.
Executing: /usr/lib/systemd/systemd-sysv-install is-enabled memcached
enabled


查询Memcached的扩展php-memcached的配置文件:
[root@centos8 ~]# php -i |grep memcached
Additional .ini files parsed => /usr/local/php/conf.d/005-memcached.ini,
memcached
memcached support => enabled
libmemcached version => 1.0.18
memcached.compression_factor => 1.3 => 1.3
memcached.compression_threshold => 2000 => 2000
memcached.compression_type => fastlz => fastlz
memcached.default_binary_protocol => Off => Off
memcached.default_connect_timeout => 0 => 0
memcached.default_consistent_hash => Off => Off
memcached.serializer => php => php
memcached.sess_binary_protocol => On => On
memcached.sess_connect_timeout => 0 => 0
memcached.sess_consistent_hash => On => On
memcached.sess_consistent_hash_type => ketama => ketama
memcached.sess_lock_expire => 0 => 0
memcached.sess_lock_max_wait => not set => not set
memcached.sess_lock_retries => 5 => 5
memcached.sess_lock_wait => not set => not set
memcached.sess_lock_wait_max => 150 => 150
memcached.sess_lock_wait_min => 150 => 150
memcached.sess_locking => On => On
memcached.sess_number_of_replicas => 0 => 0
memcached.sess_persistent => Off => Off
memcached.sess_prefix => memc.sess.key. => memc.sess.key.
memcached.sess_randomize_replica_read => Off => Off
memcached.sess_remove_failed_servers => Off => Off
memcached.sess_sasl_password => no value => no value
memcached.sess_sasl_username => no value => no value
memcached.sess_server_failure_limit => 0 => 0
memcached.store_retry_count => 2 => 2
Registered save handlers => files user memcached redis rediscluster


Memcached的扩展php-memcached的配置文件:
[root@centos8 ~]# cat /usr/local/php/conf.d/005-memcached.ini
extension = memcached.so


在PHP测试页可以看到php-memcached的信息:
图片26.png


但Discuz!X2.5不支持php-memcached:
图片27.png





相关文章:
UPUPW_Np7.0_OPcache+Memcache+Redis

返回列表