1. 安装依赖包
sudo yum update -y sudo yum install epel-release -y sudo yum install gcc make tcl -y
2. 下载并编译redis 6
# 下载redis 6.2.x(以6.2.13为例) cd /usr/local/src sudo wget https://download.redis.io/releases/redis-6.2.13.tar.gz sudo tar xzf redis-6.2.13.tar.gz cd redis-6.2.13 # 编译安装 sudo make sudo make install
3. 创建redis系统用户和目录
# 创建redis用户 sudo groupadd redis sudo useradd -r -g redis -s /bin/false redis # 创建目录 sudo mkdir -p /etc/redis sudo mkdir -p /var/lib/redis sudo mkdir -p /var/log/redis sudo mkdir -p /var/run/redis # 设置权限 sudo chown -r redis:redis /var/lib/redis sudo chown -r redis:redis /var/log/redis sudo chown -r redis:redis /var/run/redis
4. 配置redis
# 复制配置文件 sudo cp redis.conf /etc/redis/redis.conf # 备份原始配置 sudo cp /etc/redis/redis.conf /etc/redis/redis.conf.bak # 编辑配置文件 sudo vi /etc/redis/redis.conf
在配置文件中修改以下内容:
# 绑定ip(0.0.0.0表示允许所有ip访问,生产环境建议指定ip) bind 0.0.0.0 # 端口 port 6379 # 设置密码(重要!取消注释并设置你的密码) requirepass your_strong_password_here # 以守护进程方式运行 daemonize yes # 数据目录 dir /var/lib/redis # 日志文件 logfile /var/log/redis/redis.log # 最大内存 maxmemory 256mb maxmemory-policy allkeys-lru # 开启aof持久化 appendonly yes appendfilename "appendonly.aof" # 保护模式(如果设置了密码和bind,可以关闭) protected-mode no # 设置进程文件 pidfile /var/run/redis/redis.pid
5. 创建systemd服务文件
sudo vi /etc/systemd/system/redis.service
添加以下内容:
[unit] description=redis in-memory data store after=network.target [service] type=forking user=redis group=redis execstart=/usr/local/bin/redis-server /etc/redis/redis.conf execstop=/usr/local/bin/redis-cli shutdown restart=always limitnofile=10032 [install] wantedby=multi-user.target
6. 启动redis服务
# 重新加载systemd sudo systemctl daemon-reload # 启动redis服务 sudo systemctl start redis # 设置开机自启 sudo systemctl enable redis # 检查服务状态 sudo systemctl status redis
温馨提示:到这一步已经完成安装!
7. 验证安装和密码设置
# 测试连接(会要求输入密码) redis-cli # 在redis-cli中执行: auth your_strong_password_here # 或者连接时直接指定密码 redis-cli -a your_strong_password_here # 测试命令 ping # 应该返回 pong # 查看redis信息 info
8. 防火墙配置(如果需要远程访问)
# 开放redis端口 sudo firewall-cmd --permanent --add-port=6379/tcp sudo firewall-cmd --reload # 或者仅允许特定ip访问 sudo firewall-cmd --permanent --add-rich-rule='rule family="ipv4" source address="your_ip_here" port protocol="tcp" port="6379" accept' sudo firewall-cmd --reload
9. 安全加固建议
a. 修改默认端口(可选)
# 在redis.conf中修改 port 6380
b. 重命名危险命令
# 在redis.conf中添加 rename-command flushdb "" rename-command flushall "" rename-command config "" rename-command shutdown shutdown_save
c. 使用ssl/tls加密(redis 6支持)
# 生成ssl证书 cd /etc/redis sudo openssl genrsa -out redis.key 2048 sudo openssl req -new -key redis.key -out redis.csr sudo openssl x509 -req -days 365 -in redis.csr -signkey redis.key -out redis.crt # 在redis.conf中配置 tls-port 6380 tls-cert-file /etc/redis/redis.crt tls-key-file /etc/redis/redis.key
10. 常用管理命令
# 重启redis sudo systemctl restart redis # 查看日志 sudo tail -f /var/log/redis/redis.log # 停止redis sudo systemctl stop redis # 查看redis进程 ps aux | grep redis # 测试性能 redis-benchmark -a your_password -q
注意事项:
- 将
your_strong_password_here替换为强密码 - 生产环境建议绑定特定ip而不是0.0.0.0
- 定期备份redis数据
- 监控redis内存使用情况
- 考虑使用redis sentinel或cluster实现高可用
总结
以上为个人经验,希望能给大家一个参考,也希望大家多多支持代码网。
发表评论