Linux使用日记:安装Redis以及设置开机自启动

运行环境VMware15,Linux版本是CentOS7。

在安装Redis之前,使用到的操作命令需要提前自行安装,或者需要启动网卡,请确保必备的条件都满足之后再阅读此文并跟着进行操作。具体可参考之前的文章:Linux使用日记:Linux新安装时的设置及Linux常用操作.



Linux下安装Redis


一、gcc依赖

由于 redis 是用 C 语言开发,安装之前必先确认是否安装 gcc 环境。使用命令[gcc -v]确认,如果没有安装,执行命令[ yum install -y gcc ]进行安装 。

gcc -v  #确认gcc是否安装
yum install -y gcc #从默认指定的文件库中自动安装gcc依赖


二、下载Redis安装包

可使用命令[ wget http://download.redis.io/releases/redis-5.0.3.tar.gz ]远程下载Redis的安装包,此处下载的是5.0.3版本,可以根据自己所需下载指定版本。

注:wget默认下载路径即当前所在路径,一般是在/root 或者/home路径,可以用命令[ wget -p dir url ]指定将url中的资源下载到dir路径下。

下载完毕:
wget下载

笔者是建立了个文件夹 /home/app,将redis的压缩包都下载到这个文件夹中了。当然,你也可以在下载完毕之后使用移动命令将压缩包移动进来。

#使用wget命令从网站上下载Redis压缩包,并下载到指定redis文件夹中
wget -p /home/app http://download.redis.io/releases/redis-5.0.3.tar.gz

##### 已经使用wget url命令直接下载的压缩包,移动至指定文件夹操作
mkdir /home/app  #创建文件
#将已经下载的压缩包移动至redis文件夹中
mv /root/redis-5.0.3.tar.gz /home/app


三、解压、编译

首先进入压缩包所在文件夹[cd /home/app/redis],使用命令[ tar -zxvf redis-5.0.3.tar.gz ]进行解压,然后使用命令[ cd redis-5.0.3 ]转到解压后的目录之下,接着再使用命令[make]进行编译。

cd /home/app #进入压缩包所在目录
tar -zxvf redis-5.0.3.tar.gz #解压
cd redis-5.0.3 #进入解压后的目录
make #编译

编译完成:
编译完成

没有gcc依赖编译报错

若Linux中没有gcc依赖,则将在编译阶段出现错误导致编译失败,编译时会提示CC命令找不到,需要先安装一下。

#自动安装gcc依赖
yum -y install gcc automake autoconf libtool make

编译失败
安装完毕后,要先删掉刚才已经解压且编译的文件夹redis,然后重新解压后再次进行编译。

cd .. #可以直接返回上一级目录,因为刚才我们在下级目录中进行编译
cd /home/app #或者进入压缩包所在目录

rm -rf redis-5.0.3 #强制删除文件夹及其内容,不提示,具体三种删除可以参考之前的文章

tar -zxvf redis-5.0.3.tar.gz #重新解压
cd redis-5.0.3 #进入解压后的目录
make #编译


四、安装至指定目录

解析完毕后,使用命令[ make install PREFIX=/usr/local/redis ]安装Redis至指定目录。此时已将Redis安装至了/usr/local/redis目录下,文件夹中只有一个bin文件,即Redis启动的相关文件夹。

#安装redis至目录/usr/local/redis文件夹中
make install PREFIX=/usr/local/redis

安装

五、启动Redis服务

可以选择在当前界面的主线程中启动Redis服务,也可以选择开启守护线程,让Redis服务可以挂载在后台自动运行。

直接启动服务

在当前工作界面中直接启动Redis服务的话,需要首先进入刚才安装的文件目录中,使用命令[ cd /usr/local/redis/bin/ ]进入,再使用命令[ ./redis-server ]即可启动Redis服务。

cd /usr/local/redis/bin/ #进入Redis安装的文件目录中
./redis-server #在当前工作界面(当前线程)启动Redis服务

#当然也可以不进入目录,直接指定全路径启动
./usr/local/redis/bin/redis-server 

redis启动

后台启动服务

从Redis解压文件夹中将配置文件redis.conf拷贝到安装文件夹中,使用命令[cp /home/app/redis-5.0.3/redis.conf /usr/local/redis/bin/ ],然后使用vi编辑器修改配置,打开守护进程参数, 把 daemonize no 改为 daemonize yes

#从Redis解压目录中拷贝redis.conf配置文件到安装目录bin下
cp /home/app/redis-5.0.3/redis.conf /usr/local/redis/bin/
vi redis.conf
按“i”或“inter”进入编辑模式修改参数daemonize no 为 daemonize yes 
按“ESC”退出编辑模式
:wq #保存退出vi编辑器,:w不保存退出,没反应时Ctrl+z 终止当前线程操作

修改参数
然后再使用命令[ ./redis-server redis.conf ]以配置文件的方式启动Redis,就会根据设置以守护进程的方式在后台运行服务。若想关闭进程可以使用命令[./redis-cli shutdown]进行关闭。

./redis-server redis.conf #使用配置文件启动Redis服务
./redis-cli shutdown #若使用完毕可以关闭Redis服务

启动服务
在未关闭服务端之前,也可以启动客户端进行访问,使用命令[./redis-cli -h 127.0.0.1 -p 6379]访问刚才我们启动的ip为127.0.0.1 端口为6379的redis.conf的服务。使用完毕可以用命令[exit]退出客户端。

#前提是./redis-cli shutdown 未使用该命令之前
#启动客户端连接指定ip prot的Redis服务
./redis-cli -h 127.0.0.1 -p 6379
exit #退出客户端

客户端开启

六、设置Redis服务开机自启


  • 在etc下创建redis配置文件

在/etc下新建redis文件夹,使用命令[mkdir /etc/redis]。然后拷贝Redis的配置文件,使用命令[cp /home/app/redis-5.0.3/redis.conf /etc/redis/redis-6379.conf ]从Redis的解压目录将配置文件拷贝过来,重命名为redis-6379.conf。

mkdir /etc/redis #在etc目录下创建redis文件夹
#从Redis的解压目录将配置文件拷贝过来,重命名为redis-6379.conf
cp /home/app/redis-5.0.3/redis.conf /etc/redis/redis-6379.conf


  • 调整redis配置文件参数

修改配置参数,注释掉bind ip,不限制访问服务的ip,把daemonize设置为yes,让Redis进程可以在后台自动运行。

vi redis-6379.conf
按“i”或“inter”进入编辑模式修改参数
按“ESC”退出编辑模式
:wq #保存退出vi编辑器,:w不保存退出,没反应时Ctrl+z 终止当前线程操作

修改参数配置

  • 复制启动脚本并进行配置

Redis的启动脚本模板一般为解压目录的/utils文件夹下的redis_init_script。使用命令[cp /home/app/redis-5.0.3/utils/redis_init_script /etc/init.d/redis]将启动脚本模板拷贝至CentOS跟随机器启动的系统文件夹init.d中。

#拷贝Redis的启动脚本模板
cp /home/app/redis-5.0.3/utils/redis_init_script /etc/init.d/redis

然后使用vi编辑器修改相应的参数。需增加或修改的参数如下:

在头部增加配置(启动参数/描述):
# chkconfig: 2345 90 10
# description: Redis AutoStart and Stop

按照实际文件路径调整:
REDISPORT 即redis配置文件名称
EXEC 即redis服务所处路径
CLIEXEC 即redis客户端服务所处路径

最终的完整脚本redis_init_script如下

#!/bin/sh
#
# Simple Redis init.d script conceived to work on Linux systems
# chkconfig: 2345 90 10
# description: Redis AutoStart and Stop
# as it does use of the /proc filesystem.
 
REDISPORT=redis-6379
EXEC=/usr/local/redis/bin/redis-server
CLIEXEC=/usr/local/redis/bin/redis-cli
 
PIDFILE=/var/run/redis_${REDISPORT}.pid
CONF="/etc/redis/${REDISPORT}.conf"
 
case "$1" in
    start)
        if [ -f $PIDFILE ]
        then
                echo "$PIDFILE exists, process is already running or crashed"
        else
                echo "Starting Redis server..."
               $EXEC $CONF
        fi
        ;;
    stop)
        if [ ! -f $PIDFILE ]
        then
                echo "$PIDFILE does not exist, process is not running"
        else
                PID=$(cat $PIDFILE)
                echo "Stopping ..."
                $CLIEXEC -p $REDISPORT shutdown
                while [ -x /proc/${PID} ]
                do
                    echo "Waiting for Redis to shutdown ..."
                    sleep 1
                done
                echo "Redis stopped"
        fi
        ;;
    *)
        echo "Please use start or stop as first argument"
        ;;
esac


  • 开启自启服务

执行命令[ chkconfig redis on ] 设置开机执行redis脚本 ,然后再通过命令[ service redis start ]启动服务,使用命令[ ps -aux|grep redis ]可以查看脚本启动服务是否成功。

chkconfig redis on #设置开机执行redis脚本
service redis start #启动配置好的自启服务
ps -aux|grep redis #验证自启服务是否已启动

service redis stop #关闭服务

自启验证

自启安全机制设置

redis作为一个高速数据库,在互联网上,必须有对应的安全机制来进行保护,方法有两种:绑定IP,设置密码。

绑定IP

在redis.conf文件设置bind ip参数,限制可以访问此服务的客户端IP。

# If you want you can bind a single interface, if the bind option is not
# specified all the interfaces will listen for incoming connections.
#
bind 127.0.0.1

这种情况下,我们在启动redis服务器的时候不能再用:redis-server,改为:redis-server path/redis.conf 即在启动的时候指定需要加载的配置文件,其中path/是你上面修改的redis配置文件所在目录。

这个方法有显著的缺点,在Redis集群中难免有多台机器访问一个redis服务。


设置密码

打开redis.conf配置文件,找到requirepass,设置登录验证密码。设置密码以后虽然依然可以登陆,但是无法执行命令了。需要进行密码验证之后才能进行操作。

requirepass yourpassword #设置此服务器的登录密码

#启动redis客户端,并连接服务器 redis默认端口6379
redis-cli -h yourIp -p yourPort -a youpassword 

如果redis服务端没有配置密码,会得到nil,而如果配置了密码,但是redis客户端连接redis服务端时,没有用密码登录验证,会提示:operation not permitted,这时候可以用命令:auth yourpassword 进行验证密码,再执行 config set requirepass,就会显示yourpassword

由于redis并发能力极强,仅仅是设置了密码,攻击者可能在短期内发送大量猜密码的请求,很容易暴力破解,所以建议密码越长越好,比如20位。(密码在 conf文件里是明文,所以不用担心自己会忘记)

  • 0
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值