Redis安装
Redis安装
1. 用 yum 安装 Redis
1. 安装 EPEL 源(如果没有的话)
sudo yum install epel-release -y
.......
Complete!
2. 安装 Redis
sudo yum install redis -y
.......
Loaded plugins: fastestmirror, langpacks, product-id, search-disabled-repos, subscription-manager
....
Complete!
3. 启动 Redis
sudo systemctl start redis
4. 设置 Redis 开机自启
sudo systemctl enable redis
5. 查看 Redis 状态
sudo systemctl status redis
[eiffelzero@192 /]# systemctl status redis
● redis.service - Redis persistent key-value database
Loaded: loaded (/usr/lib/systemd/system/redis.service; disabled; vendor preset: disabled)
Drop-In: /etc/systemd/system/redis.service.d
└─limit.conf
Active: active (running) since Sun 2025-04-27 08:16:13 PDT; 7s ago
Main PID: 55669 (redis-server)
Tasks: 3
CGroup: /system.slice/redis.service
└─55669 /usr/bin/redis-server 127.0.0.1:6379
6. 测试 Redis
redis-cli ping
如果返回 PONG,说明安装成功了!
[eiffelzero@192 /]# redis-cli ping
PONG
7. 卸载
# 1. 先停止 Redis 服务
sudo systemctl stop redis
# 2. 卸载 Redis 软件包
sudo yum remove redis
# 3. (可选)清理残留的配置文件
sudo rm -rf /etc/redis/
sudo rm -rf /var/lib/redis/
sudo rm -rf /var/log/redis/
2. 下载源码安装 (想要最新版的 Redis 推荐这种)
1. 安装编译工具
sudo yum install gcc jemalloc-devel -y
安装的包 | 作用 |
---|---|
gcc | GNU编译器套件,Redis源码是C语言写的,需要gcc来编译 |
jemalloc-devel | jemalloc是Redis默认用的高效内存分配库,提高内存管理性能,防止内存碎片 |
....
Installed:
jemalloc-devel.x86_64 0:3.6.0-1.el7
Complete!
2. 下载 Redis 最新源码
cd /usr/local/src
sudo wget http://download.redis.io/releases/redis-7.2.4.tar.gz
(如果要别的版本,把链接里的 7.2.4 换成对应版本号)
[eiffelzero@192 src]$ sudo wget http://download.redis.io/releases/redis-7.2.4.tar.gz
--2025-04-27 09:04:23-- http://download.redis.io/releases/redis-7.2.4.tar.gz
Resolving download.redis.io (download.redis.io)... 104.18.26.34, 104.18.27.34, 2606:4700::6812:1b22, ...
Connecting to download.redis.io (download.redis.io)|104.18.26.34|:80... connected.
HTTP request sent, awaiting response... 200 OK
Length: 3386861 (3.2M) [application/octet-stream]
Saving to: ‘redis-7.2.4.tar.gz’
100%[================================================================>] 3,386,861 137KB/s in 4m 50s
2025-04-27 09:09:14 (11.4 KB/s) - ‘redis-7.2.4.tar.gz’ saved [3386861/3386861]
3. 解压源码
sudo tar -zxvf redis-7.2.4.tar.gz
cd redis-7.2.4
4. 编译安装
sudo make
sudo make install PREFIX=/usr/local/redis
PREFIX 是安装目录,你可以自己指定,比如 /usr/local/redis
[eiffelzero@192 src]$ sudo make install PREFIX=/usr/local/redis
which: no python3 in (/sbin:/bin:/usr/sbin:/usr/bin)
Hint: It's a good idea to run 'make test' ;)
INSTALL redis-server
INSTALL redis-benchmark
INSTALL redis-cli
如果有提示:
重要:这不是致命错误,不会影响Redis编译安装本身!
Redis是C写的,不依赖Python,它只是用Python辅助做一些测试或者工具,比如 runtest 单元测试。
which: no python3 in (/sbin:/bin:/usr/sbin:/usr/bin)
可以补充安装环境
sudo yum install -y python3
5. 配置环境变量
echo 'export PATH=$PATH:/usr/local/redis/bin' | sudo tee -a /etc/profile
source /etc/profile
[eiffelzero@192 usr]$ echo 'export PATH=$PATH:/usr/local/redis/bin' | sudo tee -a /etc/profile
[sudo] password for eiffelzero:
export PATH=$PATH:/usr/local/redis/bin
[eiffelzero@192 usr]$ source /etc/profile
这样可以直接在终端用 redis-server、redis-cli 命令了。
6. 启动 Redis
redis-server
66245:M 27 Apr 2025 09:23:35.853 * monotonic clock: POSIX clock_gettime
_._
_.-``__ ''-._
_.-`` `. `_. ''-._ Redis 7.2.4 (00000000/0) 64 bit
.-`` .-```. ```\/ _.,_ ''-._
( ' , .-` | `, ) Running in standalone mode
|`-._`-...-` __...-.``-._|'` _.-'| Port: 6379
| `-._ `._ / _.-' | PID: 66245
`-._ `-._ `-./ _.-' _.-'
|`-._`-._ `-.__.-' _.-'_.-'|
| `-._`-._ _.-'_.-' | https://redis.io
`-._ `-._`-.__.-'_.-' _.-'
|`-._`-._ `-.__.-' _.-'_.-'|
| `-._`-._ _.-'_.-' |
`-._ `-._`-.__.-'_.-' _.-'
`-._ `-.__.-' _.-'
`-._ _.-'
`-.__.-'
66245:M 27 Apr 2025 09:23:35.854 # WARNING: The TCP backlog setting of 511 cannot be enforced because /proc/sys/net/core/somaxconn is set to the lower value of 128.
66245:M 27 Apr 2025 09:23:35.854 * Server initialized
66245:M 27 Apr 2025 09:23:35.854 * Ready to accept connections tcp
默认会用自带的 redis.conf 配置。
如果想后台启动,可以:
在 redis.conf 中修改:
# 让 Redis 成为后台进程运行。
daemonize yes
redis-server /usr/local/src/redis-7.2.4/redis.conf
7. 卸载
# 1. 找到你当时解压和编译的目录
cd /usr/local/src/redis-7.2.4
# 比如你是在 /usr/local/src/redis-7.2.4 编译的
cd /usr/local/src/redis-7.2.4
# 2. 执行 make uninstall
sudo make uninstall
# 3. (如果没有 make uninstall 脚本,手动删除安装路径)
sudo rm -f /usr/local/bin/redis-server
sudo rm -f /usr/local/bin/redis-cli
sudo rm -f /usr/local/bin/redis-benchmark
sudo rm -f /usr/local/bin/redis-check-rdb
sudo rm -f /usr/local/bin/redis-check-aof
sudo rm -f /usr/local/bin/redis-sentinel
# 4. (可选)删除配置文件和数据
sudo rm -rf /etc/redis/
sudo rm -rf /var/lib/redis/
sudo rm -rf /var/log/redis/
redis.conf
Redis configuration file example
# 1. 基础配置
bind 0.0.0.0 # 监听所有IP(内网环境安全,否则建议限定)
port 6379 # 默认端口
daemonize no # 是否开启后台启动
supervised systemd # 让systemd来管理(如果是systemctl方式)
# daemonize yes 和 supervised systemd 是互相冲突的
# systemd 这个管理器要求服务不能自己fork后台,它要直接抓住 Redis 进程管理它(比如启动、关闭、重启、拉起日志)。
# 如果你 daemonize yes,Redis会自己fork后台,systemd会找不到主进程,就会以为 Redis 掛了,进而杀掉Redis,导致 Redis 无法正常受控。
pidfile /var/run/redis_6379.pid # pid文件路径
logfile /var/log/redis_6379.log # 日志文件路径
dir /var/lib/redis/ # 数据持久化目录
# 2. 安全配置
requirepass yourStrongPassword123! # 设置访问密码(一定要改掉!)
protected-mode yes # 启用保护模式
# 3. 内存管理
maxmemory 2gb # 限制最大使用2GB内存
maxmemory-policy allkeys-lru # 淘汰策略:所有键按最近最少使用(LRU)淘汰
# 4. RDB 持久化(快照)
save 900 1 # 900秒内至少有1个key变化时保存
save 300 10 # 300秒内至少有10个key变化时保存
save 60 10000 # 60秒内至少有10000个key变化时保存
rdbcompression yes # RDB文件开启压缩
rdbchecksum yes # RDB文件写入后校验
dbfilename dump.rdb # RDB文件名
# 5. AOF 持久化(操作日志)
appendonly yes # 开启AOF
appendfilename "appendonly.aof" # AOF文件名
appendfsync everysec # 每秒fsync一次,性能和安全平衡
# 6. 慢查询日志(可选)
slowlog-log-slower-than 10000 # 执行超过10ms记录日志
slowlog-max-len 128 # 保留最近128条慢查询日志
# 7. 主从复制(如果需要做主从)
# replicaof <masterip> <masterport>
# masterauth yourStrongPassword123!
# 8. 集群相关(如果以后打算做集群)
# cluster-enabled yes
# cluster-config-file nodes.conf
# cluster-node-timeout 15000
# 9. 其他
tcp-keepalive 300 # TCP心跳,防止死链接
timeout 0 # 客户端连接超时时间,0表示不超时
CentOS7 Redis的 systemd 开机自启动服务脚本
1. 创建 Redis 服务文件
sudo vim /etc/systemd/system/redis.service
2. 填入下面这份内容
[Unit]
Description=Redis In-Memory Data Store
After=network.target
[Service]
# 指向你的 redis.conf 配置文件路径
ExecStart=/usr/local/redis/bin/redis-server /usr/local/src/redis-7.2.4/redis.conf
ExecStop=/usr/local/redis/bin/redis-cli /usr/local/src/redis-7.2.4/redis.conf shutdown
Restart=always
User=root
Group=root
PIDFile=/var/run/redis/redis.pid
[Install]
WantedBy=multi-user.target
~
确保以下几点:
-
ExecStart 和 ExecStop 路径正确,指向你安装的 Redis 二进制文件和配置文件。
-
User 和 Group 应该设置为你运行 Redis 的用户(通常是 redis,如果你没有创建该用户,可以改成 root 或其他用户)。
-
PIDFile 应该设置为 Redis 进程的 PID 文件位置,确保文件路径存在。
3. 启动和管理redis服务
# 重新加载 systemd
sudo systemctl daemon-reload
# 开启 Redis
sudo systemctl start redis
# 设置开机自启
sudo systemctl enable redis
# 查看 Redis 状态
sudo systemctl status redis
# 停止 Redis
sudo systemctl stop redis
# 重启 Redis
sudo systemctl restart redis
文件 | 注意事项 |
---|---|
redis.conf | 一定要配置 daemonize no,因为 systemd 统一管理后台,不需要 Redis 自己后台化 |
redis-cli shutdown | 如果配置了 requirepass,ExecStop 里必须带 -a 密码 参数,否则关闭不了 |
权限问题 | 确保 /etc/redis/redis.conf、日志、数据目录 Redis 进程有权限访问 |
高并发 | 可加大 LimitNOFILE,比如 100000 |