文章目录
- 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/
将下载好的 redis 源代码 通过 xftp 上传到 linux 服务器上,我这里用的不是最新版,是以前下载过的
2:linux 上编译
2.1: 将上传后的 redis 代码进行解压
tar -zxvf redis-6.0.9.tar.gz
查看解压后的文件
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 文件,一个编译脚本
我们查看这个编译脚本
src 目录下 执行 make 命令,对应的也有一个 Makefile 文件 ,感兴趣的可以看一下
继续正题,执行编译
cd redis-6.0.9/
ls
make
编译失败了
指定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
执行成功,如下图:
在 src 目录下就有一些可执行程序了,运行 ./redis-server 就可以来启动了
./redis-server
但是在正常的系统中,软件的启动不可能每次都人工干预,这个就比较low,我们更期望安装到我们的操作系统里,变成一个服务软件,也就是app,这就需要我们来构建
2.4: 构建redis ,变成服务软件
将软件安装
// 这一行手敲,不要粘贴复制,特别怪,失败了多试几次
make install PREFIX= 目标路径
我的选择是: make install PREFIX= /usr/local/redis
来到目标文件下,多了一个bin 文件夹,里面存放的都是可执行程序
cd /usr/local/redis/
ls
cd bin/
ls
可以启动redis 服务了,但是还是觉得不方便,想将redis 变成服务,还缺少一些步骤,到 /etc/profile 下
vi /etc/profile
添加 redis 的源码HOME,建立软连接,添加以下内容
export REDIS_HOME=/usr/local/redis
export PATH=$PATH:$REDIS_HOME/bin
保存后,执行命令,使得文件生效,此时就可以在任何地方启动了
// 让文件生效
source /etc/profile
// 查看添加的PATH
echo $PATH
2.5: 创建 redis 实例
来到 解压后的源码文件夹的 utils 文件中(README.md 中有说明),
cd /home/redis/redis-6.0.9/utils/
ls
准备下面的命令
./install_server.sh
报错了
我们打开这个文件
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
执行成功,默认是根据 6379 端口创建,这个告诉我们,一个物理机中可以有多个redis 实例,根据端口号区分,我们在这里直接回车
这里告诉我们配置文件 默认放在 /etc/redis/6379.conf 下,我们继续回车
可以看到日志文件默认存放在 /var/log/redis_6379.log 下,我们继续回车
可以看到数据文件默认存放在 /var/lib/redis_6379.log 下,redis 虽然是内存数据库,这个磁盘文件是为了持久化,我们继续回车
这里让我们选择可执行文件存放的地方,你会发现,这里默认出现的,就是我们上面配置的,否则要手敲。继续回车
这里会把信息展示,觉得没问题的话,可以回车
这样 端口号为 6379 的redis 实例已经被创建,且启动了,会在 /etc/init.d 目录下生成一个可执行脚本,感兴趣的可以打开看看
cd /etc/init.d
可以查看 这个执行性脚本的状态
service redis_6379 status
可以看到 这个可执行脚本正在执行,进程号是 53161
还可以通过 命令 查看 redis 进程
ps -fe | grep redis
我们在回到 utils 目录下,再去创建一个实例,用来验证多实例的说法;
cd /home/redis/redis-6.0.9/utils/
./install_server.sh
6379 已经创建过了,我们这次输入 6380 ,回车
下面的步骤默认回车即可,redis 的 6380实例被创建成功
通过 命令 查看 redis 进程
ps -fe | grep redis
可以看到 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
关闭
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