一、下载对应的安装包
1.官方下载链接: https://download.redis.io/releases/
2.通过wget命令下载:
wget http://download.redis.io/releases/redis-6.0.10.tar.gz
ps: 以下安装已redis的6.0.10版本为例,请自行修改相应的内容。
二、解压安装包
2.1 解压安装包并切换目录至安装位置
# -C 参数: 解压至目标目录
tar -zxvf redis-6.0.10.tar.gz -C /usr/local
cd /usr/local/redis-6.0.10
2.2 对redis进行编译
注意:
1.编译redis 依赖 c 语言环境 , 查看目标服务器的gcc版本
2.Redis编译环境依赖gcc版本, Redis的6版本以上需要gcc版本高于5, 如果gcc版本不够,后续进行编译Redis会失败.
# 查看gcc版本
gcc -v
#升级gcc版本
#安装CentOS软件集合库
yum -y install centos-release-scl
# 安装Devtoolset-9工具集
yum -y install devtoolset-9-gcc devtoolset-9-gcc-c++ devtoolset-9-binutils
#启用Devtoolset-9 注意: 临时使用,会话关闭就退回之前的版本(也可设置永久使用,自行百度)
scl enable devtoolset-9 bash
#再次查看版本
gcc -v
2.3.执行make命令进行编译安装
# 切换目录
cd /usr/local/redis-6.0.10
#执行make命令进行编译
make
# 编译安装 默认安装到/usr/local/bin 目录下 这个目录是有环境变量的 方便直接使用redis-server、redis-cli等命令, 也可以用prefix 指定安装位置 make PREFIX=/temp install
make install
# 这个命令是检查安装是否完整的
make test
三、修改配置文件
3.1 以下是直接使用命令修改配置文件内容
#使用命令直接修改参数(懒人直接复制执行即可), 也可以自行使用vi进行文本编译
#主要是利用sed命令和正则匹配 直接修改文件内容
#把保护模式关闭,允许外部连接
sed -i "s/^protected-mode .*/protected-mode no/" redis.conf
#后台进程启动
sed -i "s/^daemonize .*/daemonize yes/" "$redis_conf"
#设置端口号 (不执行命令,则配置中默认使用6379)
sed -i "s/^port .*/port 16379 /" redis_conf
#设置绑定的ip (把下面的192.168.195.59 替换为当前机器真实的ip)
sed -i "s/^bind .*/bind 192.168.195.59 127.0.0.1 /" redis_conf
#设置访问密码 (修改命令中的密码: Test2024 )
sed -i "s/^# requirepass .*/requirepass Test2024 /" redis_conf
#设置配置日志文件位置 (可自行修改需要路径 替换 /usr/local/redis-6.0.10/redis.log )
sed -i "s/^logfile .*/logfile /usr/local/redis-6.0.10/redis.log /" redis_conf
#设置redis的工作目录, 持久化的dump.rdb文件会存放在改目录下, 但是需要手动创建好文件夹,不然redis启动时会报错
make -p /usr/local/redis-6.0.10/working
sed -i "s/^dir .*/dir /usr/local/redis-6.0.10/working /" redis_conf
#不设置系统进程管理你的redis服务 则使用下面的命令来启动redis服务
#自己启动redis进程 --daemonize yes 表示后台启动
./src/redis-server ./redis.conf
#使用redis客户端登录Redis
#-h 指定连接的ip 默认使用127.0.0.1 -p 端口号, 不指定则默认使用6379 -u 指定用户名
#-a 指定密码 会提示这样登录不安全, 这会在命令历史中留下密码
./src/redis-cli -p 16379 -a Test2024
#优雅安全的连接上Redis
./src/redis-cli
#然后在 redis-cli 提示符下输入:
#redis默认用户是default
auth default Test2024
四、设置开机自动启动和自动保活(系统服务管理Redis)
4.1.这个配置文件通过使用 systemd 的标准配置方法,将 Redis 服务器作为一个系统服务进行管理,使得 Redis 能够在系统启动时自动启动,或在出现问题时自动重启,提高了其运行的可靠性。
#设置系统进程管理redis 写入配置文件
# ExecStart 指定启动服务时执行的命令,这里是启动 Redis 服务器,并指定配置文件的路径。
# ExecStop 指定停止服务时执行的命令,这里使用 Redis 命令行工具来安全关闭 Redis 服务器。
# Restart=always 设置服务总是在停止后重启。参数可配置(no always on-success on-failure等,具体自行百度)
# RestartSec=30 设置服务在尝试重启之前等待的秒数。
#复制以下内容对安装路径和其他参数修改 直接执行即可
cat <<EOF | sudo tee /etc/systemd/system/redis.service > /dev/null
[Unit]
Description=redis-server
After=network.target
[Service]
Type=forking
ExecStart=/usr/local/redis-6.0.10/src/redis-server /usr/local/redis-6.0.10/redis.conf
ExecStop=/usr/local/redis-6.0.10/src/redis-cli shutdown
Restart=always
RestartSec=30
[Install]
WantedBy=multi-user.target
EOF
注意: Type=forking 这个参数设置子进程启动,刚好配合Redis配置文件中的daemonize 参数使用, 不配置这个Type的话, 需要把daemonize设置为no, 否则systemctl 启动Redis时候会失败。原因是: Redis是后台进程启动,导致systemd 认为服务启动是失败的。
4.2 刷新上面的系统配置
#自行检查 redis.service 内容, 不对自行修改
cat /etc/systemd/system/redis.service
#重新加载Systemd管理的所有服务
sudo systemctl daemon-reload
#启用系统管理Redis服务
systemctl enable redis.service
#启动Redis服务
systemctl start redis
#查看redis运行状态
systemctl status redis
#查看redis进程
pe -ef | grep redis
4.3.其他常用命令
#重启redis
systemctl restart redis
五、防火墙相关设置
5.1.端口开放
如果您的机器有防火墙, 那就要对上面的redis端口进行开放, 这样才可以连接上Redis
以下是一些关于防火墙相关的命令
#查看防火墙状态
systemctl status firewalld
#开启防火墙
systemctl start firewalld
#关闭防火墙
systemctl stop firewalld
#重启防火墙
service firewalld start
#若遇到无法开启
#先用
systemctl unmask firewalld.service
#然后
systemctl start firewalld.service
#查询指定端口是否开启
firewall-cmd --query-port=8088/tcp
#添加指定需要开放的端口
firewall-cmd --add-port=8088/tcp --permanent
#重载入添加的端口 新增或删除了端口的开放权限需要reload一下
firewall-cmd --reload
#查询开放的防火墙端口列表
firewall-cmd --zone=public --list-ports
#移除指定端口:
firewall-cmd --permanent --remove-port=8088/tcp
注: 若开放了端口还是连接不上你想要的端口,注意:有可能是你阿里云自带安全组策略限制的原因,这种情况需要在阿里云官方云服务器管理控制台手动开放。
根据你的Redis端口进行设置防火墙吧
Ps: 后续继续分享关于redis的哨兵集群、分片集群的部署和自动化执行脚本等