技术交流QQ群:①185473046   ②190706903   ③203744115   网站地图
登录

下次自动登录
现在的位置: 首页Redis>正文
CentOS 7.x 安装配置redis-7.0.4集群
2022年08月04日 Redis 暂无评论 ⁄ 被围观 3,298次+

准备篇

一、防火墙配置

CentOS 7.x默认使用的是firewall作为防火墙,这里改为iptables防火墙。

1、关闭firewall:

systemctl stop firewalld.service #停止firewall

systemctl disable firewalld.service #禁止firewall开机启动

systemctl mask firewalld

systemctl stop firewalld

yum remove firewalld

2、安装iptables防火墙

yum install iptables-services #安装

vi /etc/sysconfig/iptables #编辑防火墙配置文件

# sample configuration for iptables service

# you can edit this manually or use system-config-firewall

# please do not ask us to add additional ports/services to this default configuration

*filter

:INPUT ACCEPT [0:0]

:FORWARD ACCEPT [0:0]

:OUTPUT ACCEPT [0:0]

-A INPUT -m state --state RELATED,ESTABLISHED -j ACCEPT

-A INPUT -p icmp -j ACCEPT

-A INPUT -i lo -j ACCEPT

-A INPUT -p tcp -m state --state NEW -m tcp --dport 22 -j ACCEPT

-A INPUT -p tcp -m state --state NEW -m tcp --dport 6379 -j ACCEPT

-A INPUT -j REJECT --reject-with icmp-host-prohibited

-A FORWARD -j REJECT --reject-with icmp-host-prohibited

COMMIT

:wq! #保存退出

systemctl restart iptables.service #最后重启防火墙使配置生效

systemctl enable iptables.service #设置防火墙开机启动

/usr/libexec/iptables/iptables.init restart #重启防火墙

二、关闭SELINUX

vi /etc/selinux/config

#SELINUX=enforcing #注释掉

#SELINUXTYPE=targeted #注释掉

SELINUX=disabled #增加

:wq! #保存退出

setenforce 0 #使配置立即生效

三、调整内核参数

vi /etc/sysctl.conf

vm.overcommit_memory = 1  #设置为1,使redis在低内存下能正常运行

:wq! #保存退出

sysctl -p #设置立即生效

说明:

vm.overcommit_memory参数可选值:0、1、2

0表示内核将检查是否有足够的可用内存供应用进程使用,如果有足够的可用内存,内存申请允许,否则,内存申请失败,并把错误返回给应用进程

1表示内核允许分配所有的物理内存,而不管当前的内存状态如何

2表示内核允许分配超过所有物理内存和交换空间总和的内存

安装篇

1、下载安装包

下载地址:https://github.com/redis/redis/archive/7.0.4.tar.gz

上传安装包到服务器/usr/local/src目录

2、升级gcc版本

redis源码编译需要先gcc的版本大于等于5

gcc -v 查看gcc版本

yum -y install gcc gcc-c++ #安装gcc

yum -y install tcl

#升级到gcc版本,redis-6.0.x版本需要gcc 5.3以上,CentOS 7.x默认是gcc version 4.8.5

yum -y install centos-release-scl

yum -y install devtoolset-9-gcc devtoolset-9-gcc-c++ devtoolset-9-binutils

scl enable devtoolset-9 bash #版本临时生效

echo "source /opt/rh/devtoolset-9/enable" >>/etc/profile #永久生效

3、安装Redis

三台服务器Redis安装部分相同

Redis主节点:192.168.21.100

Redis从节点1:192.16.21.101

Redis从节点2:192.168.21.102

在三台服务器上执行相同的操作

mkdir -p /usr/local/redis_db #创建数据存放目录

cd /usr/local/src

tar -zxvf redis-7.0.4.tar.gz

cd redis-7.0.4

make

make install PREFIX=/usr/local/redis-7.0.4

4、配置Redis

4.1创建日志目录

mkdir -p /usr/local/redis-7.0.4/log

4.2拷贝配置文件模板

cp /usr/local/src/redis-7.0.4/redis.conf  /usr/local/redis-7.0.4/redis.conf

4.3修改配置文件

vi  /usr/local/redis-7.0.4/redis.conf

daemonize yes #以后台daemon方式运行redis

pidfile /usr/local/redis-7.0.4/redis_6379.pid

port 6379

bind 127.0.0.1  192.168.21.100   #主节点配置文件用这个,ip地址为主节点服务器ip

bind 127.0.0.1   #两台从节点配置文件用这个

replicaof  192.168.21.100  6379  #只在两台从节点添加这一行,ip地址为主节点服务器ip

masterauth  123456  #只在两台从节点添加这一行,密码是主节点requirepass中设置的redis数据库连接密

timeout 300 #客户端超时设置,单位为秒

loglevel notice #设置日志级别,支持四个级别:debug、verbose、notice、warning

logfile "/usr/local/redis-7.0.4/log/redis.log" #日志记录方式,默认为标准输出,logs不写文件,输出到空设备/deb/null

databases 16 #开启数据库的数量

save 900 1

save 300 10

save 60 10000

rdbcompression yes #启用数据库lzf压缩

dbfilename dump.rdb

dir "/usr/local/redis_db"

requirepass 123456  #设置redis数据库连接密码

maxclients 10000 #同一时间最大客户端连接数,0为无限制

maxmemory 4096MB #设定redis最大使用内存,值要小于物理内存,但是一般线上生产环境,Redis 的内存尽量不要超过 10g,超过 10g 可能会有问题。

appendonly yes #开启日志记录,相当于MySQL的binlog

appendfilename "appendonly.aof" #日志文件名,注意:不是目录路径

appendfsync everysec #每秒执行同步,还有两个参数always、no一般设置为everysec,相当于MySQL事物日志的写方式

:wq! #保存退出

4.4添加redis系统环境变量

vi /etc/profile #把redis服务加入系统环境变量:在最后添加下面这一行

export PATH=$PATH:/usr/local/redis-7.0.4/bin

:wq! #保存退出

source /etc/profile #使配置立即生效

5、启动redis数据库

5.1手动启动

/usr/local/redis-7.0.4/bin/redis-server /usr/local/redis-7.0.4/redis.conf

#测试redis主从是否同步

#进入主库控制台

/usr/local/redis-7.0.4/bin/redis-cli -h 192.168.21.100 -a 123456

set name osyunwei.com #写数据

get name #读取数据

exit #退出redis数据库控制台

#进入两台从库控制台

/usr/local/redis-7.0.4/bin/redis-cli -h 127.0.0.1 -a 123456

get name #能够读取到数据,说明主从同步成功

[root@localhost ~]# /usr/local/redis-7.0.4/bin/redis-cli -h 127.0.0.1 -a 123456

Warning: Using a password with '-a' or '-u' option on the command line interface may not be safe.

127.0.0.1:6379> get name

"osyunwei.com"

127.0.0.1:6379>

#1000个并发连接,10000个请求,测试127.0.0.1端口为6379的redis服务器性能

redis-benchmark -h 127.0.0.1 -p 6379 -c 1000 -n 10000 -a 123456

5.2 配置脚本启动

vi /usr/local/redis-7.0.4/redis.sh

#!/bin/bash

#应用名称

APP_NAME=redis-7.0.4

#Redis端口

REDISPORT=6379

#Redis安装目录

DIR=/usr/local/redis-7.0.4

#Redis进程文件

PIDFILE=/usr/local/redis-7.0.4/redis_6379.pid

#Redis配置文件

CONF="/usr/local/redis-7.0.4/redis.conf"

#Redis密码

AUTH='123456'

#使用说明,用来提示输入参数

usage() {

echo "Usage: ./redis.sh [start|stop|restart|status]"

exit 1

}

#检查程序是否在运行

is_exist() {

if [ -f $PIDFILE ]

then

pid=$(cat $PIDFILE)

else pid=

fi

#如果不存在返回1,存在返回0

if [ -z "${pid}" ]; then

return 1

else

return 0

fi

}

#启动方法

start() {

is_exist

if [ $? -eq "0" ]; then

echo "${APP_NAME} is already running. pid=${pid} ."

else

echo "Starting Redis server..."

$DIR/bin/redis-server $CONF

fi

}

#停止方法

stop() {

is_exist

if [ $? -eq "0" ]; then

$DIR/bin/redis-cli -p $REDISPORT -a $AUTH shutdown 2>/dev/null

sleep 2

while [ -x $PIDFILE ]

do

echo "Waiting for Redis to shutdown..."

sleep 1

done

echo "Redis stopped"

else

echo "${APP_NAME} is not running"

fi

}

#输出运行状态

status() {

is_exist

if [ $? -eq "0" ]; then

echo "${APP_NAME} is running. Pid is ${pid}"

else

echo "${APP_NAME} is not running."

fi

}

#重启

restart() {

stop

sleep 2

start

}

#根据输入参数,选择执行对应方法,不输入则执行使用说明

case "$1" in

"start")

start

;;

"stop")

stop

;;

"status")

status

;;

"restart")

restart

;;

*)

usage

;;

esac

:wq! #保存退出

#添加脚本执行权限

chmod +x /usr/local/redis-7.0.4/redis.sh

#执行脚本

sh /usr/local/redis-7.0.4/redis.sh start|stop|restart|status

5.3、设置开机启动Redis

cp /usr/local/src/redis-7.0.4/utils/redis_init_script  /etc/init.d/redis

vi /etc/init.d/redis #添加修改

AUTH=123456

REDISPORT=6379

EXEC=/usr/local/redis-7.0.4/bin/redis-server

CLIEXEC=/usr/local/redis-7.0.4/bin/redis-cli

PIDFILE=/usr/local/redis-7.0.4/redis_${REDISPORT}.pid

CONF="/usr/local/redis-7.0.4/redis.conf"

$CLIEXEC -p $REDISPORT -a $AUTH shutdown 2>/dev/null

:wq! #保存退出

#设置开机启动

chkconfig redis on

#启动|关闭

service redis start|stop

至此,CentOS 7.x 安装配置redis-7.0.4集群完成。

     

  系统运维技术交流QQ群:①185473046 系统运维技术交流□Ⅰ ②190706903 系统运维技术交流™Ⅱ ③203744115 系统运维技术交流™Ⅲ

给我留言

您必须 [ 登录 ] 才能发表留言!



Copyright© 2011-2024 系统运维 All rights reserved
版权声明:本站所有文章均为作者原创内容,如需转载,请注明出处及原文链接
陕ICP备11001040号-3