原因分析:
出现这个问题的主要原因还是和redis有关,因为人人商城的数据,是保存在了redis中,如果你部署多个商城,但是redis用的是同一个,那么这个多个商城间应用列表肯定会乱,因为他们在一个redis中,造成了数据之间的相互覆盖,从而产生了这个错误
解决办法:
解决办法一:让人人商城代码中,修改应用列表存储名称。改为其他名称,每一个数组,用不同的名字去命名,可以避免这个错误,但是这样只能解决一个地方,不能根治这个错误,
具体操作如下:文件位置:addons\ewei_shopv2\core\model\plugin.php
在这个文件中,全局搜索coms2 和 plugins2 两个文本,然后批量修改为其他文本,保存后刷新缓存,即可解决该问题
解决办法二:修改redis配置,部署多个redis。部署步骤如下
想一台服务器搞两个Redis实例,
然后自己这边查询了一下,确实可以这么整,只需要区分端口号和区分配置文件方面就行,
原理与nginx和tomcat等添加容器单实例多应用应该差不多,做个笔记记录一下。
1、复制新的配置文件,改变配置名称
2、修改配置文件里面的端口号、PID文件路径以及日志文件路径、 转储文件路径,确保两个或者多个redis服务不会冲突。
我这边搭建的Redis目录:
redis data directory : /data/redis/redis6379/data
redis log directory : /data/redis/redis6379/logs
redis install directory : /usr/local/redis
redis config file directory : /etc/
redis startup script : /etc/init.d/redis
可以指定端口启动多个Redis进程。
1、切换到redis目录,新建个redis数据和日志目录
[root@tse1 redis]# mkdir -p /data/redis/redis6380/{data,logs}
[root@tse1 redis6380]# pwd
/data/redis/redis6380
2、切换到redis配置文件目录cp一份redis配置文件
[root@tse1 etc]# cp /etc/redis.conf redis6380.conf
[root@tse1 etc]# vim redis6380.conf
配置参数:
pidfile /data/redis/redis6380/logs/redis6380.pid
port 6380
logfile "/data/redis/redis6380/logs/redis6380.log"
dir /data/redis/redis6380/data/
dbfilename dump6380.rdb
3、修改启动脚本
[root@tse1 ~]# cp /etc/init.d/redis /etc/init.d/redis6380
[root@tse1 init.d]# vim redis6380
来源地址:http://www.itu666.com/index.php/archives/9/
本文由:转载 作者:xiaoshu发表,转载请注明来源!