Redis下载与安装及启用

Redis下载

  1. 进入官网找到下载地址:https://redis.io/download

  2. 历史版本下载地址: http://download.redis.io/releases/

下载安装

 # 指定redis存放位置
 cd /usr/local/src/
 ​
 # 下载安装6.2.14版本
 wget https://download.redis.io/releases/redis-6.2.14.tar.gz
 ​
 # 解压
 tar -xvf redis-6.2.14.tar.gz

安装依赖

CentOS7 安装依赖
 # 本地缓存数据清理
 yum clean all
 ​
 # 从软件源服务器下载最新的软件包列表(元数据)并保存到本地缓存中
 yum makecache
 ​
 # 一键安装 C/C++ 编译环境和 Tcl 工具
 yum -y install gcc gcc-c++ make tcl
 ​
 # (可选安装) 安装新版本gcc
 # yum -y install centos-release-scl
 # yum -y install devtoolset-9-gcc devtoolset-9-gcc-c++ devtoolset-9-binutils
 # source /opt/rh/devtoolset-9/enable
 # echo "source /opt/rh/devtoolset-9/enable" >>/etc/profile
 ​
 # 查看GCC版本
 gcc --version
Ubuntu22.04安装依赖
 apt install build-essential gcc g++ make tcl -y

编译安装 Redis

 # 进入 Redis 源码目录
 cd /usr/local/src/redis-6.2.14
 ​
 # 编译并安装
 make && make PREFIX=/usr/local/redis install
 ​
 # 创建 Redis 工作目录
 mkdir -p /usr/local/redis/{etc,logs,data,sentinel-data}
 ​
 # 过滤并生成精简配置文件
 grep -E -v "^$|^#" redis.conf > /usr/local/redis/etc/redis.conf

设置环境变量永久生效

 # 编辑文件
 vim /etc/profile
 ​
 # 在末尾添加
 export PATH=$PATH:/usr/local/redis/bin
 ​
 # 重新加载系统环境变量配置文件,立即生效
 source /etc/profile

启动服务和客户端程序

 # 启动服务
 redis-server
 ​
 # 启动客户端
 redis-cli -h 127.0.0.1 -p 6379
 ​
 # 如果设置密码需要添加 -a 密码
 redis-cli -h 127.0.0.1 -p 6379 -a 123456
 ​
 # 或进入客户端后在验证密码
 redis-cli -h 127.0.0.1 -p 6379
 127.0.0.1:7000> AUTH 123456
 ​
 # 查看进程是否启动
 ps -ef|grep redis
 ​
 # 默认是前台启动(后台启动方式)
 # 修改/usr/local/redis/etc/redis.conf文件
 daemonize yes        #前台启动,改后台启动
 ​
 # 关闭
 redis-cli shutdown

连接远程或非默认的 Redis 服务器

 # 连接远程或非默认配置的 Redis 服务器
 ./redis-cli -h 指定ip -p 指定端口 -a 指定密码

服务器操作

常用配置

在目录 /usr/local/redis/etc 下有一个 redis.conf 的配置文件。我们上面启动方式就是执行了该配置文件的配置运行的。我们可以通过 cat、vim、less 等 linux 内置的读取命令读取该文件。

这里列举下比较重要的配置项:

配置项名称

配置项值范围

说明

daemonize

yes、no

yes表示启用守护进程,默认是no即不以守护进程方式运行。其中Windows系统下不支持启用守护进程方式运行

port

指定 Redis 监听端口,默认端口为 6379

bind

绑定的主机地址,如果需要设置远程访问则直接将这个属性备注下或者改为bind * 即可,这个属性和下面的protected-mode控制了是否可以远程访问

protected-mode

yes 、no

保护模式,该模式控制外部网是否可以连接redis服务,默认是yes,所以默认我们外网是无法访问的,如需外网连接rendis服务则需要将此属性改为no

loglevel

debug、verbose、notice、warning

日志级别,默认为 notice

databases

16

设置数据库的数量,默认的数据库是0。整个通过客户端工具可以看得到

rdbcompression

yes、no

指定存储至本地数据库时是否压缩数据,默认为 yes,Redis 采用 LZF 压缩,如果为了节省 CPU 时间,可以关闭该选项,但会导致数据库文件变得巨大

dbfilename

dump.rdb

指定本地数据库文件名,默认值为 dump.rdb

dir

指定本地数据库存放目录

requirepass

设置 Redis 连接密码,如果配置了连接密码,客户端在连接 Redis 时需要通过 AUTH命令提供密码,默认关闭

maxclients

0

设置同一时间最大客户端连接数,默认无限制,Redis 可以同时打开的客户端连接数为 Redis 进程可以打开的最大文件描述符数,如果设置 maxclients 0,表示不作限制。当客户端连接数到达限制时,Redis 会关闭新的连接并向客户端返回 max number of clients reached 错误信息

maxmemory

XXX

指定 Redis 最大内存限制,Redis 在启动时会把数据加载到内存中,达到最大内存后,Redis 会先尝试清除已到期或即将到期的 Key,当此方法处理 后,仍然到达最大内存设置,将无法再进行写入操作,但仍然可以进行读取操作。Redis 新的 vm 机制,会把 Key 存放内存,Value 会存放在 swap 区。配置项值范围列里XXX为数值

设置开机自启

添加systemctl启动项

 # 编辑配置文件
vim /etc/systemd/system/redis.service

# 添加以下内容
[Unit]
Description=Redis 6379 - Production Server
After=network.target
Wants=network-online.target

[Service]
Type=forking
PIDFile=/run/redis_6379.pid

# 启动 Redis
ExecStart=/usr/local/redis/bin/redis-server /usr/local/redis/etc/redis.conf

# 启动后检查 PID 文件是否生成(最多等待 2 秒)
ExecStartPost=/bin/bash -c 'for i in {1..20}; do [ -f /run/redis_6379.pid ] && exit 0; sleep 0.1; done; exit 1'

# 优雅关闭 Redis(假设无密码,如有密码需加 -a)
ExecStop=/usr/local/redis/bin/redis-cli shutdown

# 重载配置(将运行时配置持久化到文件)
ExecReload=/usr/local/redis/bin/redis-cli CONFIG REWRITE

# 重启策略:非正常退出时重启,等待 5 秒防止频繁重启
Restart=on-failure
RestartSec=5s

# 资源限制:防止 OOM 或 FD 耗尽
LimitNOFILE=65536
LimitNPROC=65536

# 超时控制:避免卡死时无限等待
TimeoutStartSec=10s
TimeoutStopSec=30s

[Install]
WantedBy=multi-user.target

设置刷新配置和启动服务

 # 重新加载 systemd
 systemctl daemon-reload
 ​
 # 停掉当前手动运行的 Redis
 pkill redis-server
 ​
 # 用 systemctl 启动
 systemctl start redis
 ​
 # 设置开机自启
 systemctl enable redis
 ​
 # 检查状态
 systemctl status redis

设置远程访问

 # 修改/usr/local/redis/etc/redis.conf文件
 bind 127.0.0.1          #不注释只能本机访问,注释允许任何IP连接
 protected-mode no       #允许远程访问
 ​
 # 在文件中添加这一行,设置远程登录密码
 requirepass 你的密码
 ​
 # 重启服务
 # 尝试无密码关闭(如果原来没密码)
 redis-cli shutdown
 ​
 # 如果已经有密码,用-a指定
 redis-cli -a "你的密码" shutdown
 ​
 # 启动使用完整路径
 /usr/local/redis/bin/redis-server /usr/local/redis/etc/redis.conf