当前位置: 首页 > 科技观察

详细讲解Redis的两种安装部署方式_0

时间:2023-03-21 21:44:13 科技观察

Redis是一种常用的NoSQL数据库。我们通常使用Redis进行缓存。这是一篇关于Redis安装的文章,所以不会涉及到Redis的高级特性和使用场景,Redis兼容大部分POSIX系统,比如Linux,OSX等,可惜不支持安装在Windows上。当然,如果你需要在windows下安装redis也是可以的。微软的开源技术组在GitHub上维护着Redis的一个分支。GitHub地址为:https://github.com/microsoftarchive/redis。查了一下上面的版本比较老,所以个人不建议用这个安装Redis,Windows用户可以使用Docker容器安装,也很方便简单。接下来,我们来看看Redis的安装方法。1、Linux系统下安装redis。redis官网有安装教程。链接:https://redis.io/download。我复制了安装步骤。步骤如下:$wgethttp://download.redis.io/releases/redis-5.0.6.tar.gz$tarxzfredis-5.0.6.tar.gz$cdredis-5.0.6$make这些命令是我操作的在/usr/local目录下,也就是说Redis的安装目录是/usr/local,执行这些命令后,在你的机器上安装Redis。在安装过程中,如果你的机器上没有安装gcc,安装gcc之后再make可能会报如下错误jemalloc/jemalloc.h:Nosuchfileordirectory当时没有截取详细的错误信息,只是截取了主要的部分。出现这个错误的原因是我们上次报错后,有编译过的文件,需要清除上次的残留文件,重新编译。只需将make替换为makedistclean&&make。redis.confredis.conf文件是Redis的配置文件。redis的所有配置都在这个文件中。这个文件相当大,有将近1400行。redis的操作和使用说明都在里面。你可以详细阅读这个配置文件,大多数情况下我们使用默认配置,只需要设置少量配置即可。redis.conf的存放位置在Redis的安装目录下。我这里是在/usr/local/redis-5.0.5目录下。看看我们可能会修改的一些配置:bind127.0.0.1:允许本机访问默认只有本机可以访问,可以修改ip让其他机器访问,但是如果你想让所有机器都可以访问可访问,只需将其设置为绑定0.0.0.0。port6379:redis实例启动的端口,默认为6379daemonizeno:是否作为守护进程运行,默认为no,也就是说关闭启动窗口,redis实例也会关闭,一般我们把这个选项设置为yes,它作为守护进程运行,或者说白了就是后台运行。pidfile/var/run/redis_6379.pid:如果我们将其作为守护进程运行,会生成一个后缀为.pid的文件。这也可以用默认的dir./:持久文件的存储位置。这个配置我们还是设置一下比较好。我这里设置为dir/usr/local/redis_dataappendonlyno:是否开启AOF持久化模式,redis默认只开启RDB模式,这里我们设置为yes,两种方式都开启,双保险,关于区别介于这两种方法之间,我们后面的研究中好像可以设置这几个。关于redis.conf的配置,可以详细阅读redis.conf配置文件或参考相关手册。Redis启动Redis启动非常简单。Redis安装完成后,Redisshell交互命令会存放在/usr/local/redis-5.0.5/src中。有一个redis-server,就是Redis的启动命令。执行:./redis-server/usr/local/redis-5.0.5/redis.conf后面是redis.conf的文件路径。如果没有意外,我们就启动成功了,你会看到如下界面:redisstarthere我们使用daemon进程启动,所以不会有带有redis标识的启动界面,我们可以使用shell命令来登录在Redis中,或者src目录下,执行如下命令:./redis-cli命令进入shell交互界面。./redis-cli命令可以带一些参数,比如-hIP进入指定机器的Redis实例。进入后可以进行一些操作,如下图所示:redis操作redis有两种方式可以关闭Redis。一种是在shell界面上关闭,另一种是kill+进程号关闭Redis实例。外壳界面关闭。shutdown[nosave|save]在shell界面输入shutdown命令可以关闭Redis实例,后面跟一个可选参数,nosave表示不将数据持久化到内存中,save表示将数据持久化到内存中。shutdown关机方式是比较优雅的关机方式。推荐使用这种关闭方式Kill+进程号来关闭Redis实例。使用ps-ef|grepredis查看redis进程号,如下图:查看这里的redis进程号,找到我们需要关闭的redis实例的进程号,比如我们这里的进程号是27133,那么我们直接使用kill27133关闭Redis实例服务,这种方式需要注意一个地方,就是我们需要删除pid文件,并且存放pid文件的位置pidfile/var/run/redis_6379.pid我们在redis.conf中配置的,我们需要删除/var/run目录下的redis_6379.pid,这样下次Redis服务才能正常重启。以上两种方法都可以关闭Redis服务,任选其一,但切记不要使用Kill9方法关闭Redis进程,这样Redis就不会进行持久化操作。此外,缓冲区等资源将不可用。Gracefulshutdown,在极端情况下会导致AOF和replication导致的数据丢失。Redis开机自动启动在服务器上,我们可能需要设置Redis开机自动启动。其实这也很简单,我们只需要做以下四步即可。1.编写配置脚本vim/etc/init.d/redis#!/bin/sh##SimpleRedisinit.dscriptconceivedtoworkonLinuxsystems#asitdoesuseofthe/procfilesystem.#chkconfig:23458090#description:auto_run#端口号REDISPORT=6379#启动命令EXEC=/usr/local/redis-5.0.5/src/redis-server#shell下发命令CLIEXEC=/usr/local/redis-5.0.5/src/redis-cli#pid存放位置PIDFILE=/var/run/redis_${REDISPORT}.pid#redis配置文件CONF="/usr/local/redis-5.0.5/redis.conf"case"$1"instart)if[-f$PIDFILE]thenecho"$PIDFILEexists,processisalreadyrunningorcrashed"elseecho"StartingRedisserver..."$EXEC$CONFfi;;stop)if[!-f$PIDFILE]thenecho"$PIDFILEdoesnotexist,processisnotrunning"elsePID=$(cat$PIDFILE)echo"Stopping..."$CLIEXEC-p$REDISPORTshutdownwhile[-x/proc/${PID}]doecho"WaitingforRedistoshutdown..."sleep1doneecho"Redisstopped"fi;;*)echo"Pleaseusestartorstopasfirstargument";;esac2,修改redis.conf,设置redis作为守护进程运行###################################一般的##########################################默认情况下Redis不运行asadaemon。使用'yes'ifyouneedit。#NotethatRediswriteapidfilein/var/run/redis.pidwhendaemonized.daemonizeyes3,修改文件执行权限chmod+x/etc/init.d/redis4,设置开机启动#startredisserviceredisstart#stopredisserviceredisstop#startservice自启动chkconfigredison2,dockerinstallRedisDockerinstallRedis一般比较方便,我是非生产环境,是测试或者学习的环境。以下步骤均以您的电脑已经安装了Docker为前提。让我们开始安装之旅1、拉取redis镜像dockerpullredis2,快速启动dockerrun-p6379:6379--namemyredis-dredisredis-server--appendonlyyes这个方法启动默认的redis.conf配置,我们先来看看这几个参数的含义-p6379:6379:映射端口,前面的6379是对外的redis端口,后面的6379是容器内部的redis端口--namemyredis:容器对应的名字redisredis-server:redis代表redis镜像redis-server代表的执行的命令也是redis的启动命令,和我们linux下的./redis-server一样--appendonlyyes:enableAOFpersistence3.使用redis通过以上步骤,我们已经在Docker中启动了Redis服务。接下来,让我们通过redis-cli访问它。使用如下命令启动redis-clidockerexec-itdockerRedis-cli,其中dockerRedis是你启动的Redis容器的名称。如果不出意外,您可以启动一个redis-cli客户端。如下图所示:dockerredis-cli客户端使用Docker来简单启动Redis。总体来说安装启动比linux方便多了。主要是可以在windows系统上运行,虽然最后还是运行在linux上面,但是这个过程我们是没有察觉的。你可能会问:我想知道启动时redis.conf是否可行?答案是可行的,但是如果你不了解Docker,你可能会遇到一些坑。我遇到它是因为我对Docker不熟悉。太懂了,平时使用docker的时候,只需要传入参数,并没有传文件。关于启动时指定的配置文件,redis镜像中有说明,但是是linux下的,不是windows系统下的Docker配置方法,所以我百度到如下命令dockerrun-v/d:/dockerdata/redis/config/redis.conf:/usr/local/etc/redis/redis.conf--namemyredisredis-server/usr/local/etc/redis/redis.conf这个命令是个坑,根本就没有这个命令,启动这个命令,你会得到如下反馈:显然这个命令没用。当然,这只是我个人的看法。也许是我操作失误,也许是我知识不够。如果有朋友发现错误,请多多指教。这里我先说错的时候,正确的做法是把redis.conf文件存放在Docker宿主机上。很明显,Docker宿主机不是windows系统,而是在windows系统上启动的虚拟机,所以我们需要进入虚拟机里面,DockerQuickstartTerminal启动默认界面,并没有真正登录虚拟机,所以我们需要改变登录方式,使用docker-machinessh命令,如下图所示:DockerQuickstartTerminal启动方式这样我们就进入到了真正的虚拟机中,我们在虚拟机上进行操作。和我们在linux上的安装一样,我们先创建两个目录来存放Redis的配置:/usr/local/redis:存放redis.conf/usr/local/redis/data:存放持久化文件创建两个目录后,我们将redis.conf放在/usr/local/redis目录下,使用如下Docker命令启动Redis镜像:dockerrun-p6379:6379-v/usr/local/redis/redis.conf:/usr/local/etc/redis/redis。conf-v/usr/local/redis/data:/data--namedockerRedis-dredisredis-server/usr/local/etc/redis/redis.conf这个docker启动命令跟上面的一样有一点不同,有两个参数我在这里解释一下:-v/usr/local/redis/redis.conf:/usr/local/etc/redis/redis.conf:这个参数是/usr/local/Copyredis/redis.confto/usr/local/etc/redis/redis.conf-v/usr/local/redis/data:/data:持久化文件在容器中的存储位置也会映射到宿主机,换句话说,持久化文件也会存储在/usr/local/redis/data中,Docker安装Redis的复杂操作也完成了。如果没有特殊要求,直接用simpledocker启动即可,简单方便,完全够用