安装 Redis(Linux 和 Windows)
1、安装
1.1、步骤(❗)
-
安装 gcc 依赖(Redis 基于 C 语言编写)
yum install -y gcc tcl
-
准备 Redis 安装包:也可提前下载并上传。
cd /usr/local/src wget https://download.redis.io/releases/redis-6.2.6.tar.gz
-
解压:
tar -zxvf redis-6.2.6.tar.gz
-
编译安装:
# 进入目录 cd redis-6.2.6 # 编译(耗时较长) make # 安装 make install
1.2、目录结构
默认安装路径:
/usr/local/bin
下
- redis-benchmark:性能测试
- redis-check-aof:修复 AOF 文件(持久化)
- redis-check-rdb:修复 RDB 文件(持久化)
- redis-cli:命令行客户端
- redis-sentinel:集群相关
- redis-server:服务器启动命令
2、启动
启动方式
- 前台运行(👎)
- 后台运行(✔)
- 系统服务(✔)
2.1、前台运行
Hint:阻塞整个会话窗口,会话关闭后 Redis 服务随之停止。
启动:在任意目录输入。
redis-server
2.2、后台运行(❗)
Hint:需要修改 Redis 配置文件。
-
复制配置文件(备份)
cd /usr/local/src/redis-6.2.6 cp redis.conf redis-backup.conf
-
修改配置:修改
redis.conf
的 daemon。# 允许后台运行 daemonize yes
-
启动:指定
redis.conf
文件。# 指定配置文件 redis-server /usr/local/src/redis-6.2.6/redis.conf
-
停止:
-
kill 进程:
# 查看进程 ID ps -ef | grep redis # 杀进程 kill -9 进程ID
-
shut down 服务:
redis-cli [-a 密码] shutdown
-
2.2、系统服务(❗)
2.2.1、创建服务
创建系统服务,通过 Linux 指令管理服务。
Hint:需要配置后台运行,即 👉 本文 2.2。
-
新建系统服务:
vim /etc/systemd/system/redis.service
-
文件内容:
[Unit] Description=redis-server After=network.target [Service] Type=forking ExecStart=/usr/local/bin/redis-server /usr/local/src/redis-6.2.6/redis.conf PrivateTmp=true [Install] WantedBy=multi-user.target
-
重载系统服务:
systemctl daemon-reload
2.2.2、指令
-
查看状态:
systemctl status redis
-
启停:
# 启动 systemctl start redis # 重启 systemctl restart redis # 停止 systemctl stop redis
-
开机自启:
systemctl enable redis
3、客户端(❗)
类型
- 命令行
- 可视化界面(Windows)
- 编程客户端
3.1、命令行
Redis 自带命令行客户端:
redis-cli
-
options:常用选项如下
- -h:指定连接 IP 地址,默认 127.0.0.1
- -p:指定连接端口号,默认 6379
- -a:指定访问密码(如果有)
-
commands:操作命令。通常不指定,直接进入命令行客户端。
redis-cli [options] [commands]
3.2、可视化界面
3.2.1、配置(❗)
Hint:确认虚拟机可访问,以排除网络问题(本地 ping 虚拟机 IP)
-
Redis 监听地址:
-
配置文件的 bind 表示服务器监听地址。
-
默认
127.0.0.1
(服务器本地),改为0.0.0.0
(任意可访问)vim /usr/local/src/redis-6.2.6/redis.conf # bind 0.0.0.0
-
-
端口防火墙:
-
查看端口状态:no 表示未开启
firewall-cmd --query-port=6379/tcp
-
永久开放端口:
firewall-cmd --add-port=6379/tcp --permanent
-
-
重启防火墙和 Redis
systemctl restart firewalld systemctl restart redis
3.2.2、安装 & 连接
非官方,GitHub 大佬开发。
-
安装:下载
.zip
后缀安装包,解压并执行.exe
文件即可。 -
连接:
界面
4、配置文件
redis.conf
Hint:此部分未整理,仅供参考。
Units
- 配置大小单位,只支持 bytes,不支持 bit。
- 大小写不敏感。
INCLUDES
多实例下,可以提取公用的配置文件,。
NETWORK
bind
- 默认:bind = 127.0.0.1,只能接受本机的访问请求。
- 不写:接受任何 ip 地址的访问。
protected-mode
- 将本机访问保护模式设置 no。
- 若为 yes,且没有设定 bind 的 ip、没有设置密码,Redis 只接受本机访问。
port
端口号,默认 6379。(服务器需开启端口映射)
tcp-backlog
backlog 是连接队列
- 队列总和 = 未完成三次握手队列 + 已经完成三次握手队列。
- 高并发下,需要高 backlog 值来避免慢客户端连接问题。
timeout
空闲客户端的维持时间(秒),0 表示永不关闭。
tcp-keepalive
- 对访问客户端的心跳检测,每 n 秒检测一次。
- 0 则不会进行检测,建议值 60。
GENERAL
daemonize
- 是否为后台进程,设置为 yes。
- 守护进程,后台启动。
pidfile
存放 pid 文件的位置,每个实例会产生一个 pid 文件。
loglevel
日志级别
- debug
- verbose
- notice(默认)
- warning
logfile
日志文件名(默认为空,即不记录日志)
database
- 数据库的数目,默认16。
- 默认 0 号库,使用
SELECT <dbid>
连接指定 ID 的数据库。
SECURITY
访问密码的查看、设置和取消。
- 在命令中设置的是临时密码,重启 redis 服务器则失效。
- 在配置文件中进行永久设置。
LIMITS
maxclients
- 设置 Redis 最大客户端连接数,默认 10,000。
- 若达到最大值,Redis 拒绝新的连接请求,并向连接请求方发送 max number of clients reached。
maxmemory
设置 Redis 可使用的内存量。
- 达到使用上限时,Redis 会尝试移除内部数据,使用 maxmemory-policy 指定移除规则。
- 若达到上限且无法移除数据,Redis 对需要申请内存的指令返回错误信息(如 SET、LPUSH)。
- 建议设置,否则,将内存占满,造成服务器宕机。
maxmemory-policy
- volatile-lru:LRU 算法,移除设置了过期时间的 key。
- allkeys-lru:LRU 算法,移除所有 key。
- volatile-random:随机移除,针对设置了过期时间的 Key。
- allkeys-random:随机移除,针对所有集合中的 Key。
- volatile-ttl:移除 TTL 值最小的 key(即将过期的)
- noeviction:不移除,针对写操作返回错误信息。
- maxmemory-samples:设置样本数量
- LRU 算法和最小 TTL 算法都是估算值。
- 设置样本数量,redis 默认会检查指定数量的 key 并适用 LRU 算法。
- 一般设置 3 到 7 的数字,数值越小样本越不准确,但性能消耗越小。
附 - Windows 版
下载 Redis(安装包或压缩包)
以压缩包为例。
-
创建 Redis 文件夹:存放压缩包解压后的文件。
-
配置环境变量:高级系统设置 → 环境变量 → 系统变量(path),添加 Redis 文件夹路径。
创建 Redis 服务
进入 CMD 命令行
-
安装服务:安装 Windows 服务,用于后台启动。
# 方式一 redis-server --service-install redis.windows.conf --loglevel verbose # 方式二:区别在于绑定的配置文件不同 redis-server --service-install redis.windows-service.conf --loglevel verbose
-
后台启动:
# 后台启动 redis-server --service-start # 停止 redis-server --service-stop
-
卸载服务:
redis-server --service-uninstall