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
posted @ 2025-04-28 01:12  Eiffelzero  阅读(52)  评论(0)    收藏  举报