问题描述:
今天程序那边说测试服里面有两个项目,为了数据不冲突,想一台服务器搞两个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配置文件
#复制新的配置文件给第二个redis使用 [root@tse1 etc]# cp /etc/redis.conf redis6380.conf #配置新redis文件,避免两个redis冲突,在配置文件按照如下几个参数进行修改; [root@tse1 etc]# vim redis6380.conf 配置参数: #修改新的pid文件路径
pidfile /data/redis/redis6380/logs/redis6380.pid #指定新的端口号
port #指定新的日志文件路径
logfile "/data/redis/redis6380/logs/redis6380.log"
#指定新的数据文件路径
dir /data/redis/redis6380/data/
#指定新的转储文件路径
dbfilename dump6380.rdb #配置文件修改完成:wq保存退出
3、修改启动脚本
[root@tse1 ~]# cp /etc/init.d/redis /etc/init.d/redis6380 [root@tse1 init.d]# vim redis6380
4、关于启动脚本可以参考我另一篇文章介绍,修改相应参数即可
Centos7下Redis设置开机自启动服务:
https://www.cnblogs.com/Sungeek/p/11691231.html
5、如果上面服务都已配置完成,就可以直接启动查看是否成功
[root@tse1 /]# netstat -lntp
Active Internet connections (only servers)
Proto Recv-Q Send-Q Local Address Foreign Address State PID/Program name
tcp 127.0.0.1: 0.0.0.0:* LISTEN /redis-server
tcp 192.168.15.163: 0.0.0.0:* LISTEN /redis-server
tcp 127.0.0.1: 0.0.0.0:* LISTEN /redis-server
tcp 192.168.15.163: 0.0.0.0:* LISTEN /redis-server
6、客户端连接测试
[root@tse1 /]# /usr/local/redis/src/redis-cli -h 127.0.0.1 -p -a redis密码
127.0.0.1:> PING
PONG
127.0.0.1:> [root@tse1 /]# /usr/local/redis/src/redis-cli -h 127.0.0.1 -p -a redis密码
127.0.0.1:> PING
PONG
127.0.0.1:>