一臺服務器同時運營多個Redis的解決方法
最近部署人人商城,發現2套程序的redis服務功能是混亂的,A程序運行的數據和B程序運行的數據存在互相干擾問題,由于數據沖突問題,需要單獨的redis,但是沒有服務器安裝redis了,于是考慮redis服務多開;經過查閱相關資料,筆者親測找到如下2中解決方法:
方法1:redis存在0-15共16個庫,在spring配置里,對不同項目配置不同數據庫,代碼如下:其中database在0-15里面隨意選取一個,問題解決。這種方法簡單但是不知道是否影響redis的運行效率。
具體的人人代碼如下:
首先要去人你的人人環境切換為redis,請參考下面
$config['setting']['cache'] = 'redis'; // 默認是mysql,改為redis
然后選擇redis的庫,
// -------------------------- CONFIG REDIS --------------------------- //
$config['setting']['redis']['server'] = '127.0.0.1';//如果redis服務器在別的機器,請填寫機器的IP地址。
$config['setting']['redis']['port'] = 6379;
$config['setting']['redis']['pconnect'] = 1;
$config['setting']['redis']['timeout'] = 1;
$config['setting']['redis']['requirepass'] = '';
方法2:利用redis多開的原理
具體方法:單實例多應用一樣,復制新的配置文件,改變配置名稱,修改配置文件里面的端口號、PID文件路徑以及日志文件路徑、 轉儲文件路徑,確保兩個或者多個redis服務不會沖突;
默認Redis程序安裝在/www/server/redis目錄下;
配置文件:/www/server/redis/redis.conf,該配置文件中配置的端口為默認端口:6379;
可以指定端口啟動多個Redis進程。
cd /www/server/redis/ #切換到redis安裝路徑下
cp redis.conf redis6380.conf #復制到新的配置文件供第二個redis使用
vim redis6380.conf #配置新redis文件,避免兩個redis沖突,在配置文件找到以下幾項,進行修改;
pidfile /var/run/redis/redis_6380.pid #指定新的PID文件路徑
port 6380 #指定新的端口號
logfile /var/log/redis/redis_6380.log #指定新的日志文件路徑
dbfilename dump_6380.rdb #指定新的轉儲文件路徑
#配置文件修改完成 保存退出
啟動多實例命令及查看啟動結果:
redis-server /www/server/redis/redis6380.conf #啟動新實例命令
netstat -lnpt #通過端口查看服務器是否啟動,結果如下:
tcp 0 0 127.0.0.1:6379 0.0.0.0:* LISTEN 1288/redis-server 1
tcp 0 0 127.0.0.1:6380 0.0.0.0:* LISTEN 4084/redis-server 1