CentOS 7 配置 Redis 7 多实例 在CentOS 7 中编译安装 Redis 7,并实现单机多实例操作。
如在服务器192.168.10.80的服务器上创建两个redis实例,请求端口为17090,17091。操作如下:
编译安装redis 下载redis 方法,可以从redis官网[1],下载完直接上传服务器,也可以直接在服务器使用wget下载。
1 wget https://github.com/redis/redis/archive/redis-7.0.7.tar.gz
编译安装 解压纹下载的安装包,编译安装,指定安装目录。
1 2 3 4 tar -zxvf redis-7.0.7.tar.gz cd redis-7.0.7 sudo make -j 4 PREFIX=/usr/local/redis-server/ USE_SYSTEMD=yes install
安装结束,会显示以下提示:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 cd src && make install make[1]: Entering directory `/home/user/upload/redis-7.0.7/src' CC Makefile.dep make[1]: Leaving directory `/home/user/upload/redis-7.0.7/src' make[1]: Entering directory `/home/ian/upload/redis-7.0.7/src' rm -rf redis-server redis-sentinel redis-cli redis-benchmark redis-check-rdb redis-check-aof *.o *.gcda *.gcno *.gcov redis.info lcov-html Makefile.dep CC cli_common.o CC redis-benchmark.o LINK redis-server INSTALL redis-sentinel INSTALL redis-check-rdb INSTALL redis-check-aof LINK redis-benchmark LINK redis-cli ------ 省略输出 ------- Hint: It' s a good idea to run 'make test' ;) INSTALL redis-server INSTALL redis-benchmark INSTALL redis-cli make[1]: Leaving directory `/home/user/upload/redis-7.0.7/src'
编译出错了,也可以使用以下命令来清除编译文件:
如果有提示systemd相关的报错,需要安装依赖。主要的依赖是systemd-devel。其它的依赖,比如python3和tcl也可一并安装。
1 sudo yum install python3 tcl systemd-devel
tcl包在make test时会用到。
配置多实例 在上一步,已经装redis程序安装到/usr/local/redis-server/目录中。接下来,需要分别配置两人个实例,创建两人个实例配置文件,数据存储路径,日志等。
1 sudo mkdir -p /usr/local/redis-server/{17090,17091}/{etc,logs,data,run}
配置实例17090 从编译目录下复制redis的config文件到实例17090的配置目录中:
1 sudo cp redis.config /usr/local/redis-server/17090/etc/17090.conf
修改实例17090的配置文件,主要修改参数如下:
bind 0.0.0.0
port 17090
dbfilename dump17090.rdb
dir /usr/local/redis-server/17090/data/
pidfile /usr/local/redis-server/17090/run/redis_17090.pid
logfile “/usr/local/redis-server/17090/log/redis-17090.log”
supervised systemd
requirepass your_secret_password
配置实例17091 从编译目录下复制redis的config文件到实例17091的配置目录中:
1 sudo cp redis.config /usr/local/redis-server/17091/etc/17091.conf
修改实例17090的配置文件,主要修改参数如下:
bind 0.0.0.0
port 17091
dbfilename dump17091.rdb
dir /usr/local/redis-server/17091/data/
pidfile /usr/local/redis-server/17091/run/redis_17091.pid
logfile “/usr/local/redis-server/17091/log/redis-17091.log”
supervised systemd
requirepass your_secret_password
启动两个实例 启动实例17090
1 sudo /usr/local/redis-server/bin/redis-server /usr/local/redis-server/17090/etc/17090.conf &
启动实例17091
1 sudo /usr/local/redis-server/bin/redis-server /usr/local/redis-server/17091/etc/17091.conf &
防火墙配置 1 2 3 sudo firewall-cmd --permanent --add-port=17090/tcp sudo firewall-cmd --permanent --add-port=17091/tcp sudo firewall-cmd --complete-reload
接下来看一下两个实例的进程输出如下:
1 2 3 4 5 6 sudo ps aux | grep redis root 20815 0.0 0.1 241392 4580 pts/0 S 21:20 0:00 sudo /usr/local/redis-server/bin/redis-server /usr/local/redis-server/17090/etc/17090.conf root 20817 0.0 0.2 196200 9208 pts/0 Sl 21:20 0:02 /usr/local/redis-server/bin/redis-server 0.0.0.0:17090 root 21008 0.0 0.1 241392 4588 pts/0 S 21:29 0:00 sudo /usr/local/redis-server/bin/redis-server /usr/local/redis-server/17091/etc/17091.conf root 21010 0.0 0.2 196200 9184 pts/0 Sl 21:29 0:02 /usr/local/redis-server/bin/redis-server 0.0.0.0:17091 user 21348 0.0 0.0 112812 948 pts/0 S+ 22:13 0:00 grep --color=auto redis
至些服务器多实例配置结束,还缺少一个systemd的管理配置文件,继续挖个坑,后面有时间补上。以上配置,记录备忘。
[1] https://redis.io/download/