本文主要记录如何在 Linux 中安装 Redis

环境

  • CentOS 7
  • Redis 6.0.6

下载 Redis

官网链接:Redis

这里我们直接下载最新的稳定版就好了。

如果需要旧版本的可以在 Google Code Archive中找到。

上传并解压

先创建一个目录用于存放等会儿要上传的 Redis 文件。

cd /usr/local/enviroment/
mkdir redis
ls -l

下载下来后使用 ftp 工具将压缩包上传到服务器的指定目录下。

上传成功后右边会出现 Redis 的压缩包。Redis 安装目录为 /usr/local/enviroment/redis

回到 Linux 中输入以下命令:

cd ./redis/
ls -l

红色的文件即为刚刚上传的 Redis 的压缩包。

然后进行解压:

tar -zxvf redis-6.0.6.tar.gz
ls -l

解压完成后会出多来一个文件夹 redis-6.0.6

查看 Redis 里有些什么

这里面最主要的就是 reidis.conf 这个文件了,这个是 Redis 的配置文件。稍后我们需要使用这个配置文件。

安装 Redis 需要的环境

由于 Redis 是用 C/C++ 写的,所以需要安装相关的环境。

# 安装 gcc 环境
yum install gcc-c++
# 安装完成后可以查看 gcc 版本
gcc -v

出现上图就说明 gcc 安装成功了。

接下来使用 make 命令,该命令会根据 makefile文件编译源代码、连接、生成目标文件、可执行文件。

make

这个过程可能会需要一些时间,耐心等待。

如果执行过程中出现错误:

这是因为 CentOS 7 默认安装的 gcc 版本是 4.8.5,但是 Redis 在编译源码的时候需要 gcc,并且 redis-6.x 版本要求的 gcc 版本不能低于 5.3,所以这里我们需要升级一下 gcc 版本到 5.3 以上。

这里我们选择升级到 gcc 9 版本。

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

执行完上述命令,在 /opt/rh/ 目录下会多出来一个 devtoolset-9 的目录。

接着执行以下命令

# 注意 scl 命令启用只是临时的,退出 shell 或重新打开一个 shell 就会恢复原系统 gcc 版本
scl enable devtoolset-9 bash
gcc -v

可以再次查看 gcc 版本,发现已经升级为 9.3.1-2 了。

这还没有结束,我们还需要执行以下命令使这个版本的 gcc 永久生效,否则下一次使用就自动恢复为原来的版本了。

# 执行以下命令永久使用
echo "source /opt/rh/devtoolset-9/enable" >> /etc/profile
# 注:执行完此命令后,其它的shell窗口需要关闭重新打开才生效。
# 重新打开shell窗口,再次编译

然后重新打开 shell 窗口, 重新进行编译。

cd /usr/local/enviroment/redis/redis-6.0.6
make

这次没有报错了,但是有个提醒,喊我们使用 make test 命令,那么我们运行一下试试。

make test

结果又出现一个新的错误

别急,这是因为没有安装 tcl, 安装一下即可。

yum install -y tcl

安装 tcl 完成后再次执行 make test 以及 make 命令。

make test
make

结果在执行 make test 又出现新的异常 :(

解决办法也是有的,参考官方的 issue:Tests: drop TCL 8.6 dependency.

总结下来就是需要使用 8.6 版本的 TCL。

不得不说使用新版本的东西问题就是多啊(哭泣)。

先查看下我们使用的版本是多少

tclsh
% set tcl_version

发现我们使用的版本是 8.5 低于 8.6, 所以需要升级。

这里步骤也有点多,慢慢来。

首先卸载原来旧版本的 TCL。

yum remove tcl

删除完成后下载 8.6 版本的 TCL并上传到服务器。

下载地址:Download Tcl/Tk Sources

先创建个文件夹作为 TCL 的安装目录。

cd /usr/local/enviroment/
mkdir tcl
cd ./tcl/

上传成功后进行解压。

tar -zxvf tcl8.6.10-src.tar.gz 

进入到 TCL 安装目录中的 unix目录中

cd ./tcl8.6.10/
ls
cd ./unix

然后依次执行如下命令

./configure
make
make install

出现如下界面即安装成功。

接下来我们回到 Redis 的安装步骤上来。

先切回到我们的 Redis 安装目录下。

cd /usr/local/enviroment/redis/redis-6.0.6/

接着执行

make test
make
make install

即可,出现下图就是安装完成了。

启动 Redis

Redis 的默认安装目录在 /usr/local/bin/

将 Redis 安装目录下的配置文件 redis.conf 复制到该目录下。

mkdir redisconfig
cp /usr/local/enviroment/redis/redis-6.0.6/redis.conf /usr/local/bin/redisconfig/
cd ./redisconfig/
ls

Redis 默认不是后台启动的,需要修改配置文件。

vim ./redis.conf

将上图中的 no 改为 yes 即可。

接下来就是启动 Redis 服务。

pwd
# 通过指定的配置文件启动服务
./redis-server ./redisconfig/redis.conf

出现上图即为启动服务成功。

然后启动 Redis 客户端

./redis-cli -h localhost -p 6379
# 如果主机和端口都是默认配置的话直接使用 redis-cli 命令也可以启动

测试

测试一下能否正常操作。

如图发现没有任何问题了。

如何使用外部 Redis 客户端连接本地的 Redis 服务

修改配置文件

vim /usr/local/bin/redisconfig/redis.conf

将图中部分注释掉或者是使用 bind 将你要允许的 ip 绑定上。前者是允许所有主机连接,后者是只允许指定的主机连接。个人根据需要选择即可。

一些相关命令

  • 查看 Redis 进程是否开启
ps -ef | grep redi

  • 关闭 Redis 进程
# 在 Redis 命令行中输入以下命令(方法不止这一种,使用 Linux 中的 kill 命令也是可以的)
shutdown
exit

再次查看 Redis 进程就发现已经不存在了。


前天遇到了小鹿,昨天是小兔子,今天是你。