linux安装redis、ununtu和centos等类似的发行版安装redis,完全离线安装reids,自定义版本redis

redis各个版本源码包下载:Index of /releases/ (redis.io)

下载与解压

Index of /releases/ (redis.io)选择自己需要的版本并下载(此处以redis-6.2.14.tar.gz为例,其他版本可能会不同)。

将文件上传到linux服务器,使用命令tar -zxvf redis-6.2.14.tar.gz解压。

命令会将压缩包解压到如下位置

安装

cd redis-6.2.14进入解压后的路径,目录结构如下所示,可以看到一个README.md文件,盲猜一波这里面一定有安装说明,然我们使用记事本(推荐用typora打开)打开看看。

打开后全是英文,没关系,找个翻译软件。README.md中有一个章节叫Installing Redis用翻译软件翻译一下这一章。

大致内容我总结一下(内容来自微软翻译):

要将 Redis 二进制文件安装到 /usr/local/bin 中,只需使用:

% make install

如果您想使用其他目的地,则可以使用 make PREFIX=/some/other/directory install

make install 只会在系统中安装二进制文件,但不会在适当的位置配置 init 脚本和配置文件。如果你只是想玩一下 Redis,这不是必需的,但如果你是以正确的方式为生产系统安装它,我们有一个脚本可以为 Ubuntu 和 Debian 系统做到这一点:

% cd utils
% ./install_server.sh

注意install_server.sh在 Mac OSX 上不起作用;它仅适用于Linux。

该脚本将询问您几个问题,并将设置正确运行 Redis 所需的一切,作为后台守护程序,该守护程序将在系统重新启动时重新启动。

您将能够使用名为/etc/init.d/redis_<portnumber>的脚本停止和启动 Redis。例如:/etc/init.d/redis_6379

我们按照这个步骤拉来安装,首先在解压后的路径里./redis-6.2.14执行make install命令。等待一会,会打印很多东西。

等待其执行完成

此时redis就已经被安装到/usr/local/bin目录下面了,可以使用命令ls -laFh /usr/local/bin | grep redis来查看

这个时候就可以直接运行redis-server来启动redis了

前台启动

此时我们可以在任意目录下使用命令来启动redis,注意一定要加--ignore-warnings ARM64-COW-BUG参数

redis-server --ignore-warnings ARM64-COW-BUG

redis启动成功。但是到这里我们还没有完全成功,一般在服务器中安装redis是需要在后台启动,并且需要开机自启的。在这个界面按下ctrl+c结束redis。

后台启动与开机自启

根据README.md帮助文件中的内容,我们还需要运行utils/install_server.sh脚本来生成一个自启任务。

cd utils进入这个文件夹

使用命令./install_server.sh执行这个脚本,运行后会有些配置需要输入(注意:在输入配置的时候无法使用删除键,必须一次性输入正确。如果输入有误按ctrl+c键重新开始。)。

运行后如果出现如下问题。

使用vim打开vim install_server.sh,注释如下内容然后重试

第一个配置是端口,一般默认,直接回车即可。

第二个是配置文件的位置,建议/etc/redis/redis.conf

第三个是日志位置,建议/var/log/redis.log

第四个是数据存放位置,建议/var/lib/redis/data

第五个是redis启动文件的位置,如果redis安装正确,这一项会有默认值,直接回车即可。如果中括号里面是空则表示redis安装不正确,需要重新尝试安装。

执行完成后redis会启动。这个脚本会在/etc/init.d目录下生成一个启动脚本。进入这个目录看一下里面有什么cd /etc/init.d。这里面有个一redis_6379文件,这个就是我们刚刚生成的。

此时先不要着急运行,我们先去修改redis的配置文件。使用vim命令编辑配置文件:

vim /etc/reids/redis.conf

必改配置:找到最后一行ignore-warnings这一项,把这一行的注释打开(否则无法启动redis)

必改配置:找到daemonize这一项,选择是否后台启动,值为yes表示后台启动

可选配置:找到bind这一项配置,根据自己的需求选择是否可以远程连接,把这一行注释掉表示允许远程连接

可选配置:找到requirepass这一项,根据自己的需求选择是否使用连接密码,注释这一行表示不使用密码,如下图所示表示启用密码,将密码写在requirepass后面(注意:如果你修改了密码,那么还需要修改/etc/init.d/redis_6379文件,后面会讲解)

常用的配置就这些,你也可以根据自己的需求修改其他配置。修改完成后保存文件。

下面我们开始配置/etc/init.d/redis_6379文件,如果你没有启用密码则可以忽略这一步。

首先我们进入目录cd /etc/init.d。使用vim打开这个文件vim redis_6379

/etc/init.d这个目录是用来干什么的,这个目录下的脚本文件会在linux开启的时候自动执行,一般用来配置一些开机自启的软件。这个目录下有一个README文件,感兴趣的小伙伴可以打开看看,里面有使用的帮助。

我们可以使用service [/etc/init.d目录下的脚本名] [start、stop或restart]来控制指定软件的启动或停止。

注意:不同的linux发行版可能有所不同,本人只在centos、ubuntu以及银河麒麟发行版做过测试,其他发行版不保证。

在开头部分声明一个变量PASSWORD,值就是你刚刚配置的redis登录密码

找到stop阶段,把红色方框的内容添加进去-a $PASSWORD

这一堆操作到底是干了什么?默认的redis停止方式是直接使用指令redis-cli -p 6379 shutdown,但是如果密修改了登录密码,那么默认的停止指令就无法登陆客户端了,所以我们必须把密码参数加上,变成这样redis-cli -p 6379 -a 你的密码 shutdown

下一步就可以正常启动redis了

使用启动指令

service redis_6379 start
# 或者
/etc/init.d/redis_6379 start

在重启linux服务器的时候redis会自动启动。

在启动的时候如果出现这个问题,可以尝试把这个文件删除掉rm /var/run/redis_6379.pid,然后重新启动redis。这个文件存放的是redis的进程id,当我们启动的时候会先判断一下redis的进程id是否存在,如果存在则表示redis正在运行,所以不会启动。但是当服务器异常关机的时候,这个redis_6379.pid文件可能不会被清空,这样就导致启动脚本误认为redis还在运行。

彻底解决这个问题有两种方式,第一种是修改启动脚本用命令判断进程id是否在运行,第二种方式是弃用启动脚本改为系统服务(systemctl)方式控制自启

查看状态、重启与停止

查看启动状态

service redis_6379 status
# 或者
/etc/init.d/redis_6379 status
# 或者使用ps查看进程
ps -ef | grep redis

重启命令

service redis_6379 restart
# 或者
/etc/init.d/redis_6379 restart

停止命令

service redis_6379 stop
# 或者
/etc/init.d/redis_6379 stop

posted @ 2024-01-04 17:28  牛奶盒  阅读(153)  评论(0编辑  收藏  举报