Redis是现在最受欢迎的NoSQL数据库之一,在Linux下Redis支持源码编译安装和包管理器安装的方式,其中包管理器安装比较简单,根据官方文档的命令就行,这里主要讲解一下源码编译安装方式。
1,下载Redis源码并解压
在官网下载页面下载源码(备用地址,提取码2333)。
进入下载页面划到最下面找到Additional download options,并展开Install from source如下:
点击下载最新的稳定版:
例如我这里下载了一个redis-stable.tar.gz的文件,解压至当前目录并进入解压的文件夹(命令中操作的文件名根据自己下载的而定,此处命令以我自己的为例):
tar -xvf redis-stable.tar.gz
cd redis-stable
此外,历史版本可以到官方Github仓库的Releases中下载:传送门
2,编译源代码
需要注意的是,Redis可以仅编译其本体核心,也可以编译全部模块,本体核心仅支持核心数据结构,在大多数情况下够用了。而编译全部模块则支持更多数据结构,例如JSON、时间序列等。
这里同时讲解两种方法,大家选择其一即可。
(1) 最小编译
最小编译仅编译其本体核心,只支持核心数据结构。
首先需要安装编译Redis必要的库和工具,通过以下命令安装:
sudo apt install make gcc libc6-dev libssl-dev
然后开始编译Redis,刚刚已经解压并进入其源码目录了,现在执行以下命令编译:
# 设定环境变量
# 使用Fish Shell时,请使用set -x BUILD_TLS yes的形式设定环境变量
export BUILD_TLS=yes
# 执行构建,使用全部CPU核心
make -j $(nproc)
等待编译完成,显示Hint: It's a good idea to run 'make test' ;)字样时说明编译成功了。
若在编译中遇到任何错误需要再重新编译,需要先清理已编译部分,执行命令:
make distclean
然后就可以重新make了。
(2) 完整编译
完整编译需要安装更多的依赖,且会编译所有的模块,支持更多功能。完整编译会自动下载一些其它环境,建议在Debian 12的Docker容器中进行编译。
首先还是安装依赖:
apt install sudo
sudo apt install ca-certificates wget dpkg-dev gcc g++ libc6-dev libssl-dev make git cmake python3 python3-pip python3-venv python3-dev unzip rsync clang automake autoconf libtool
在开始编译之前,如果你的网络连接Github不通畅,建议先设定代理服务器,因为完整编译时会从Github下载一些模块源码,使用下列命令设定代理环境变量:
export http_proxy=http://代理服务器地址:端口
export https_proxy=http://代理服务器地址:端口
然后在Redis源码目录执行下列命令编译:
# 设定编译环境变量
export BUILD_TLS=yes
export BUILD_WITH_MODULES=yes
export INSTALL_RUST_TOOLCHAIN=yes
export DISABLE_WERRORS=yes
# 执行构建,使用全部CPU核心
make -j $(nproc) all
最后,出现Build completed.说明编译完成。
3,安装Redis
编译完成后,就可以安装Redis可执行文件了,通过以下命令安装Redis到系统:
sudo make install
若想把Redis安装至指定位置,可以使用如下命令:
make PREFIX=想要安装到的位置(绝对路径) install
例如安装到/home/swsk33/redis:
make PREFIX=/home/swsk33/redis install
这时,Redis便编译并安装完成了!
4,编写配置文件并启动Redis
这个时候其实通过直接输入redis-server便可以直接启动了,Redis可以指定配置文件运行,最好是通过配置文件启动。
先自己新建一个文件,例如redis-config.conf,自己加入配置内容。
常见的配置如下:
| 配置项 | 说明 |
|---|---|
daemonize yes/no | Redis 默认不是以守护进程的方式运行,可以通过该配置项修改,使用 yes 启用守护进程打开即启动后使redis服务端后台运行 |
pidfile pid文件位置 | 当 Redis 以守护进程方式运行时,Redis 默认会把 pid 写入 /var/run/redis.pid 文件,可以通过 pidfile 指定 |
port 自定义端口号 | 指定 Redis 监听端口,默认端口为 6379 |
bind 绑定的ip地址 | 绑定的主机地址。若不写这一行,则外网所有的电脑都可以连接此服务器的redis |
timeout 毫秒 | 当客户端闲置多长秒后关闭连接,如果指定为 0 ,表示关闭该功能 |
loglevel 日志级别 | 指定日志记录级别,Redis 总共支持四个级别:debug、verbose、notice、warning,默认为 notice |
logfile 日志文件位置 | 指定日志文件位置,默认不输出日志到文件 |
dbfilename 数据库名.rdb | 指定本地数据库文件名,默认值为 dump.rdb |
dir 数据库存放目录 | 指定本地数据库存放目录,默认存放在当前目录下 |
requirepass 密码 | 设置 Redis 连接密码,如果配置了连接密码,客户端在连接 Redis 时需要通过 auth 密码命令提供密码,默认关闭例如设置密码为123456:requirepass 123456 |
maxclients 最大连接数 | 设置同一时间最大客户端连接数,默认无限制,Redis 可以同时打开的客户端连接数为 Redis 进程可以打开的最大文件描述符数,如果设置 maxclients 0,表示不作限制。当客户端连接数到达限制时,Redis 会关闭新的连接并向客户端返回 max number of clients reached 错误信息 |
maxmemory 最大内存占用字节数 | 指定 Redis 最大内存限制,Redis 在启动时会把数据加载到内存中,达到最大内存后,Redis 会先尝试清除已到期或即将到期的 Key,当此方法处理 后,仍然到达最大内存设置,将无法再进行写入操作,但仍然可以进行读取操作。Redis 新的 vm 机制,会把 Key 存放内存,Value 会存放在 swap 区 |
vm-enabled yes/no | 指定是否启用虚拟内存机制,默认值为 no,简单的介绍一下,VM 机制将数据分页存放,由 Redis 将访问量较少的页即冷数据 swap 到磁盘上,访问多的页面由磁盘自动换出到内存中 |
上面配置不需全部写入。例如我的配置文件如下:
port 25002
dir /root/Temp/db
requirepass 12345678
建议requirepass最好写上保证安全。如果有需要可以用bind配置绑定ip地址,这样只有绑定的ip地址才能访问redis数据库。
然后启动redis服务端:
redis-server 配置文件位置
例如我的:
redis-server /home/swsk33/redis/redis-config.conf
若上面make install时使用了自定义的安装位置(使用了PREFIX参数),那么需要进入你的安装目录下的bin文件夹里面再执行命令:
./redis-server 配置文件路径
显示这个画面说明启动成功:

服务器上建议使用screen软件新建一个窗口在里面运行Redis服务端,这样可以使其挂在服务器上面运行,screen的使用此处不再赘述。
5,远程连接Redis服务端
远程连接时须确保没有配置bind值或者bind值是你的IP地址,且端口开放。远程连接也需要在自己的电脑上编译并安装Redis,Windows编译可自行百度,方法类似。
此处以Linux电脑远程连接为例,通过以下命令连接:
redis-cli -h 服务器ip -p redis的端口
本地连接也是这个命令,IP地址是127.0.0.1。
连接上后会进入Redis命令行:

然后使用AUTH命令输入密码认证:
auth Redis密码
密码就是前面配置文件中requirepass的配置值。
输出OK说明连接认证成功!
最后使用quit或者exit命令断开连接。