文章目录

  • 1:GitHub 下载源代码
  • 2:linux 上编译
  • 2.1: 将上传后的 redis 代码进行解压
  • 2.2: 安装 redis 编译 需要的 gcc 套件
  • 2.3: 编译 redis 文件夹
  • 2.4: 构建redis ,变成服务软件
  • 2.5: 创建 redis 实例
  • 3:redis-cli 的启动和关闭
  • 3.1:redis-cli 的启动和关闭(无密码)
  • 3.2:redis-cli 的启动和关闭(有密码)


1:GitHub 下载源代码

redis 官网: https://redis.io/

windows 如何编译 redis linux编译redis_缓存


将下载好的 redis 源代码 通过 xftp 上传到 linux 服务器上,我这里用的不是最新版,是以前下载过的

windows 如何编译 redis linux编译redis_缓存_02

2:linux 上编译

2.1: 将上传后的 redis 代码进行解压

tar -zxvf redis-6.0.9.tar.gz

windows 如何编译 redis linux编译redis_windows 如何编译 redis_03

查看解压后的文件

windows 如何编译 redis linux编译redis_windows 如何编译 redis_04

2.2: 安装 redis 编译 需要的 gcc 套件

只给你下面的命令,这个我以前安装过了,就不展示截图了

yum install -y gcc

注意:如果在 安装 gcc 之之前执行 make 命令失败了,需要清理以下失败的缓存,在执行 make 命令才行

make  distclean
make

2.3: 编译 redis 文件夹

插一句:大家都知道编译离不开编译环境,linux 下的编译命令是make.,

至于为什么要执行make,大家可以打开 redis 下的 README.md 看一下

这里的编译执行的是 redis 下的 Makefile 文件,一个编译脚本

我们查看这个编译脚本

windows 如何编译 redis linux编译redis_linux_05


src 目录下 执行 make 命令,对应的也有一个 Makefile 文件 ,感兴趣的可以看一下

继续正题,执行编译

cd  redis-6.0.9/
ls
make

windows 如何编译 redis linux编译redis_配置文件_06

编译失败了

windows 如何编译 redis linux编译redis_缓存_07


指定redis分配器为libc,默认使用jemalloc分配器,而本地没有,手动指定去编译,执行下面的命令

// 清理 make 失败的缓存
make distclean
make MALLOC=libc

注意,如果还时报错,可以升级一下 gcc版本

yum -y install centos-release-scl && yum -y install devtoolset-9-gcc devtoolset-9-gcc-c++ devtoolset-9-binutils && scl enable devtoolset-9 bash

升级完成后,再去执行 make

执行成功,如下图:

windows 如何编译 redis linux编译redis_配置文件_08


在 src 目录下就有一些可执行程序了,运行 ./redis-server 就可以来启动了

./redis-server

windows 如何编译 redis linux编译redis_redis_09


但是在正常的系统中,软件的启动不可能每次都人工干预,这个就比较low,我们更期望安装到我们的操作系统里,变成一个服务软件,也就是app,这就需要我们来构建

2.4: 构建redis ,变成服务软件

将软件安装

// 这一行手敲,不要粘贴复制,特别怪,失败了多试几次
make install PREFIX= 目标路径   
我的选择是: make install PREFIX= /usr/local/redis

windows 如何编译 redis linux编译redis_windows 如何编译 redis_10


来到目标文件下,多了一个bin 文件夹,里面存放的都是可执行程序

cd /usr/local/redis/
ls
cd bin/
ls

windows 如何编译 redis linux编译redis_windows 如何编译 redis_11


可以启动redis 服务了,但是还是觉得不方便,想将redis 变成服务,还缺少一些步骤,到 /etc/profile 下

vi /etc/profile

添加 redis 的源码HOME,建立软连接,添加以下内容

export REDIS_HOME=/usr/local/redis
export PATH=$PATH:$REDIS_HOME/bin

windows 如何编译 redis linux编译redis_windows 如何编译 redis_12


保存后,执行命令,使得文件生效,此时就可以在任何地方启动了

// 让文件生效
source  /etc/profile
// 查看添加的PATH
echo $PATH

2.5: 创建 redis 实例

来到 解压后的源码文件夹的 utils 文件中(README.md 中有说明),

cd /home/redis/redis-6.0.9/utils/
ls

windows 如何编译 redis linux编译redis_redis_13


准备下面的命令

./install_server.sh

报错了

windows 如何编译 redis linux编译redis_linux_14


我们打开这个文件

vi ./install_server.sh

找到下面的代码,注释掉即可。

#bail if this system is managed by systemd
#_pid_1_exe="$(readlink -f /proc/1/exe)"
#if [ "${_pid_1_exe##*/}" = systemd ]
#then
#       echo "This systems seems to use systemd."
#       echo "Please take a look at the provided example service unit files in this directory, and adapt and install them. Sorry!"
#       exit 1
#fi

重新运行

./install_server.sh

windows 如何编译 redis linux编译redis_缓存_15


执行成功,默认是根据 6379 端口创建,这个告诉我们,一个物理机中可以有多个redis 实例,根据端口号区分,我们在这里直接回车

windows 如何编译 redis linux编译redis_缓存_16


这里告诉我们配置文件 默认放在 /etc/redis/6379.conf 下,我们继续回车

windows 如何编译 redis linux编译redis_缓存_17


可以看到日志文件默认存放在 /var/log/redis_6379.log 下,我们继续回车

windows 如何编译 redis linux编译redis_配置文件_18


可以看到数据文件默认存放在 /var/lib/redis_6379.log 下,redis 虽然是内存数据库,这个磁盘文件是为了持久化,我们继续回车

windows 如何编译 redis linux编译redis_linux_19


这里让我们选择可执行文件存放的地方,你会发现,这里默认出现的,就是我们上面配置的,否则要手敲。继续回车

windows 如何编译 redis linux编译redis_windows 如何编译 redis_20


这里会把信息展示,觉得没问题的话,可以回车

windows 如何编译 redis linux编译redis_缓存_21


这样 端口号为 6379 的redis 实例已经被创建,且启动了,会在 /etc/init.d 目录下生成一个可执行脚本,感兴趣的可以打开看看

cd /etc/init.d

windows 如何编译 redis linux编译redis_linux_22


可以查看 这个执行性脚本的状态

service redis_6379 status

windows 如何编译 redis linux编译redis_配置文件_23


可以看到 这个可执行脚本正在执行,进程号是 53161

还可以通过 命令 查看 redis 进程

ps -fe | grep redis

windows 如何编译 redis linux编译redis_配置文件_24


我们在回到 utils 目录下,再去创建一个实例,用来验证多实例的说法;

cd /home/redis/redis-6.0.9/utils/
./install_server.sh

windows 如何编译 redis linux编译redis_redis_25


6379 已经创建过了,我们这次输入 6380 ,回车

下面的步骤默认回车即可,redis 的 6380实例被创建成功

windows 如何编译 redis linux编译redis_windows 如何编译 redis_26


通过 命令 查看 redis 进程

ps -fe | grep redis

windows 如何编译 redis linux编译redis_缓存_27


可以看到 6379,和 6380 实例

3:redis-cli 的启动和关闭

3.1:redis-cli 的启动和关闭(无密码)

启动
经过上面的配置,我们就可以随时启动 redis 客户端,在任何文件夹下
先启动 redis-server ,我们上面自动开启了,这一步不需要执行。如果重启redis 需要执行

# 1:方法一:通过软连接
redis-server start
# 2: 方法二 :来到 我们存放 redis 编译文件的地方 /usr/local/redis/bin 下,指定配置文件或不指定
  ./redis-server  /etc/redis/6379-conf

再启动 redis-cli

// 默认进入 6379
redis-cli 
// 进入 6380
redis-cli -p 6380

windows 如何编译 redis linux编译redis_redis_28


windows 如何编译 redis linux编译redis_redis_29


关闭

redis-cli -p 端口号 shutdown 
或者 kill 端口号

3.2:redis-cli 的启动和关闭(有密码)

启动
先启动 redis-server

# 1:方法一:通过软连接,指定配置文件或不指定都可
redis-server  【  /etc/redis/6379-conf  】
# 2: 方法二 :来到 我们存放 redis 编译文件的地方 /usr/local/redis/bin 下,指定配置文件或不指定
 ./redis-server  【 /etc/redis/6379-conf】

再启动 redis-cli

redis-cli -p 端口 -a 密码

关闭

redis-cli -p 端口 -a 密码 shutdown