赠人玫瑰,手有余香,你的关注,我的动力!
本文目标:
基本内容,安装redis-6.0.9版本
引申内容,正确安装所有版本的redis,及其他工具的方法
重点是体会,学习方法和套路,一通而百通!!
学习内容:
下载包
废话不多说,开始吧
粘贴复制好的链接地址,可以去掉对应的url ,来查看其他的版本的redis,例如https://download.redis.io/releases
可查看更多的版本
下面开始准备,下载在Linux 下
- wget https://download.redis.io/releases/redis-6.0.9.tar.gz
安装
-
如果没有wget 请安装: yum install wget
-
tar xf redis-6.0.9.tar.gz
-
cd redis-6.0.9
ReadMe
学会查看readMe 文件!!
很久以来一直都是百度,来查看,但是往往版本不对,不适合当前需要安装的版本,或者标准点,去查看官网,但有的时候会有一些网络的不变,此时,我们要学会查看ReadMe.md 文件,这是厂商为我们配置的,是我们安装最标准的文档!!!
记住一个常识,源码安装,进来一定要编译,否则依赖都没有怎么运行呢,而如何编译需要在ReadMe.md 文件中查找。
vim README.md 来查看内容
进入后 输入 /Building 并且回车搜索到关于编译的的内容,或者稍微往下一翻,便看的到,因为最开始一定是指引我们编译,这样的文档逻辑才是正确的嘛,
看到这里我们明白执行
- make 命令会执行编译
(常识:make 命令是操作系统带的编译命令!!并且make 命令真正找编译的源码需要哪些依赖,是根据Makefile 文件来拉取依赖)
可以简单看下 makefile 文件的内容加深印象截图如下
说明真正的makefile 文件在src目录下,继续看src 下的文件
如果进入直接 输入 /install 命令可发现一个默认值,PREFIX?=/usr/local 应该很熟悉吧,表示默认安装redis所在目录,
好吧现在是否已经迫不及待的想 执行make 命令呢, - 在redis包的解压目录下 执行make 命令会报错,如果你没有安装gcc
- 所以执行 yum install gcc
但是此时已经中断了redis 的编译过程,我们需要恢复,再来查看ReadMe.md 文件
输入命令搜索 /build 会看到类似的fixing build 字样
心领神会修复build 编译时产生的问题,所以i下一步执行命令 - make distclean
- make
此时一定在src 目录下有的很多执行程序,例如 redis-cli 文件可以执行执行跑起redisl
但是我们目地需要 redis 作为一个服务来启动,安装到操作系统中,而不是每次手动启动。
具体的安装命令我们再看ReadMe.md 文件
可以看到接下来的安装命令 分别是 - make install PREFIX=/usr/local/redis6 (如果目录不存在会默认创建此目录)
此命令,会把可执行程序迁出到 PREFIX 产生的文件夹下而不是和源码混合在一起!
接下来开始安装到操作 系统中作为一个服务跑起来例如(service redis start这样的命令跑起来)。距离胜利马上不远了!
在上张截图中,表明上看似 进入redis包下的 utils 命令 执行 ./install_server.sh 命令即可,但其实有个常识坑需要知道 ,此脚本是为了在操作系统中安装跑此服务!而跑起redis 服务,我们都知道 最基本的启动命令是这样的
那么此时这个脚本就要知道 ./redis-server 可执行文件的位置,所以我们需要配置环境变量!!
vim /etc/profile
在文件最下方追加(注意这个home 值是上方的PREFIX值,因为可执行迁移文件都迁移到此目录下了)
export REDIS_HOME=/usr/local/redis6
- export PATH= $ PATH:$REDIS_HOME/bin (这个美元符号后面没有空格!!!)
而后保存并且生效 - :wq
- source /etc/profile
好了可以正常使用安装命令 - ./install_server.sh 命令
如果此时报错
This systems seems to use systemd.
Please take a look at the provided example service unit files in this directory, and adapt and install them. Sorry!
解决办法
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
- 会出现 需要启动redis 初始化的配置 ,例如端口,日志,持久化数据的目录,和可执行程序的位置。
由于本人已经启动了多个redis,下图仅仅作为例子演示
同时多个实例启动
启动多个实例只需要在此执行
- ./install_server.sh
可以看到当我启动两个实例后,会在 /etc/init.d 目录下生成启动脚本!
可以看下脚本内容
作为开机服务启动
此时已经可以使用以下命令操作redis
service redis_6379 status
service redis_6380 stop
白嫖不好,写作不易,大家的点赞就是我的动力
如果看官觉得有点用,点赞一下 鼓励一下我吧!
欢迎添加公众号与您分享更多记录