zoukankan      html  css  js  c++  java
  • centos6 安装redis-4.0.9

    从redis官网下载Linux redis4.0.9版本,我下载的redis-4.0.9.tar.gz(目前最新稳定版),下载到/usr/local/src目录,如果没有就mkdir创建一个.

    下载链接:https://redis.io/download

    http://download.redis.io/releases/redis-4.0.9.tar.gz

    ############  开始  ###############

     

    ################################## 1.安装redis ######################################

     

    将安装包下载到此目录

    /usr/local/src

     

     

    将redis安装到此目录

    /usr/local/redis

     

      

      安装过程指令如下:

    mkdir /usr/local/redis  
     cd /usr/local/src  
     tar xzf redis-4.0.9.tar.gz   
     ln -s redis-4.0.9 redis #建立一个链接  
     cd redis  
     make PREFIX=/usr/local/redis install #安装到指定目录中

    start

      上面的最后一行,我们通过PREFIX指定了安装的目录。如果make失败,一般是你们系统中还未安装gcc,那么可以通过yum安装:

    yum install gcc

    安装完成后,继续执行make. 

    这里也可以执行更新yum

    sudo yum update

     end


      

      在安装redis成功后,你将可以在/usr/local/redis看到一个bin的目录,里面包括了以下文件:

    redis-benchmark  redis-check-aof  redis-check-dump  redis-cli  redis-server

      

    ################################# 2.将redis做成一个服务并注册 ################################

    1.复制脚本到/etc/rc.d/init.d目录 
    ps: /etc/rc.d/init.d/目录下的脚本就类似与windows中的注册表,在系统启动的时候某些指定脚本将被执行 
    按以上步骤安装Redis时,其服务脚本位于:

     

    /usr/local/src/redis/utils/redis_init_script 

     

      必须将其复制到/etc/rc.d/init.d的目录下:

    cp /usr/local/src/redis/utils/redis_init_script /etc/rc.d/init.d/redis

      

    将redis_init_script复制到/etc/rc.d/init.d/,同时易名为redis。

    如果这时添加注册服务:

     

    chkconfig --add redis

      将报以下错误:

    redis服务不支持chkconfig

    为此,我们需要更改redis脚本。 

    2.更改redis脚本 
    打开使用vi打开脚本,查看脚本信息:

     

    vim /etc/rc.d/init.d/redis

     

    看到的内容如下(下内容是更改好的信息):

     1 #!/bin/sh 
     2 #chkconfig: 2345 80 90 
     3 # Simple Redis init.d script conceived to work on Linux systems 
     4 # as it does use of the /proc filesystem. 
     5    
     6 REDISPORT=6379 
     7 EXEC=/usr/local/redis/bin/redis-server 
     8 CLIEXEC=/usr/local/redis/bin/redis-cli 
     9    
    10 PIDFILE=/var/run/redis_${REDISPORT}.pid 
    11 CONF="/etc/redis/${REDISPORT}.conf" 
    12    
    13 case "$1" in 
    14     start) 
    15         if [ -f $PIDFILE ] 
    16         then 
    17                 echo "$PIDFILE exists, process is already running or crashed" 
    18         else 
    19                 echo "Starting Redis server..." 
    20                 $EXEC $CONF & 
    21         fi 
    22         ;; 
    23     stop) 
    24         if [ ! -f $PIDFILE ] 
    25         then 
    26                 echo "$PIDFILE does not exist, process is not running" 
    27         else 
    28                 PID=$(cat $PIDFILE) 
    29                 echo "Stopping ..." 
    30                 $CLIEXEC -p $REDISPORT shutdown 
    31                 while [ -x /proc/${PID} ] 
    32                 do 
    33                     echo "Waiting for Redis to shutdown ..." 
    34                     sleep 1 
    35                 done 
    36                 echo "Redis stopped" 
    37         fi 
    38         ;; 
    39     *) 
    40         echo "Please use start or stop as first argument" 
    41         ;; 
    42 esac 

    和原配置文件相比(以下几处都要更改,特别是第一个#chkconfig,否则会导致无法添加配置)

    1.需要添加第二行内容如以上脚本中第二行:

     

    #chkconfig: 2345 80 90 

     

      2.原文件EXEC、CLIEXEC参数,也是有所更改。

    EXEC=/usr/local/redis/bin/redis-server
    CLIEXEC=/usr/local/redis/bin/redis-cli

      3.redis开启的命令,以后台运行的方式执行。

    $EXEC $CONF & 

    ps:注意后面的那个“&”,即是将服务转到后面运行的意思,否则启动服务时,Redis服务将 

    占据在前台,占用了主用户界面,造成其它的命令执行不了。

      4.将redis配置文件拷贝到/etc/redis/${REDISPORT}.conf

     

     

     

    mkdir /etc/redis    
    cp /usr/local/src/redis/redis.conf /etc/redis/6379.conf

     

     

    这样,redis服务脚本指定的CONF就存在了。默认情况下,Redis未启用认证,可以通过开启6379.conf的requirepass 指定一个验证密码。 

    以上操作完成后,即可注册yedis服务:

     

    chkconfig --add redis

     

      

    3.启动redis服务

    service redis start 

    ########################  3.将Redis的命令所在目录添加到环境变量PATH中 ##############################

      修改profile文件:

    vi /etc/profile

     

    在最后行追加: 

     

    export PATH="$PATH:/usr/local/redis/bi

     

      

      应用这个文件

    . /etc/profile  

    ####################################  4.设置redis密码 #########################################

    打开配置文件:# vi /etc/redis/6379.conf

    vi /etc/redis/6379.conf 

    进入命令模式查找"requirepass"字符串,找到这一段,去掉前面的#号,后面密码就自定义了(此处修改为-Tq8UA7zredis)

     

     1 # Warning: since Redis is pretty fast an outside user can try up to
     2 # 150k passwords per second against a good box. This means that you should
     3 # use a very strong password otherwise it will be very easy to break.
     4 #
     5 requirepass -Tq8UA7zredis
     6 
     7 
     8 # Command renaming.
     9 #
    10 # It is possible to change the name of dangerous commands in a shared
    11 # environment. For instance the CONFIG command may be renamed into something
    12 # hard to guess so that it will still be available for internal-use tools
    13 # but not available for general clients. 

     

     

    要使配置生效可以重启一下

     

    #####################################  5.安装完成,进入redis ####################################

    这样就可以直接调用redis-cli的命令了,如下所示:

     

    redis-cli   
    redis 127.0.0.1:6379> auth -Tq8UA7zredis   
    OK  
    redis 127.0.0.1:6379>

        PS:可能需要防火墙将6379端口打开外部就能访问了

    解决问题redis问题:ERR Client sent AUTH, but no password is set

    明明在redis.conf中设置了密码,而且redis还启动了,为什么说没有密码呢?

    大家都知道linux下启动redis有很多种方法,

    其中有 ./redis-server &  

    这种方法启动,不会带上你的redis.conf配置文件启动

    还有 ./redis-server ../redis.conf

    这种方法启动的时候,会去带上配置文件redis.conf

    上面的问题 ERR Client sent AUTH, but no password is set 。我遇到过一次,原因是我大意了,我用了第一种方式启动

    这个时候redis是没有密码的,但是我的redis配置文件中配置了密码,所以当我在set值的时候就报这个错误了。

    所以如果你配置了redis.conf这个文件,那么启动redis的时候也一定要带上这个文件启动。

    那么解决问题就要先退出来

    cd /usr/local/redis/bin
    service redis stop

    ./redis-server

    -bash: ./redis-server: 没有那个文件或目录 ,

    经过搜索:  

    find / -name redis-server
    

     /usr/local/redis/bin/redis-server

    原来是能在当前bin的目录下才能执脚本文件

    cd /usr/local/redis/bin/
    

     再次执行

    [root@cloud bin]# ./redis-server


    成功显示Redis信息

  • 相关阅读:
    一个python实现重试机制的简要实践
    元编程技术和动态编译
    NDoc使用简要手册增加了例子代码
    问dudu,评论是否只能删除,不可以直接修改?
    《C#类设计手册》读书随笔(4)
    .NET下几种动态生成代码方式比较
    NDoc使用简要手册
    "引用"表示什么?
    .NET环境编程全景不错的书
    C#实现动态灵活调用业务方法的机制
  • 原文地址:https://www.cnblogs.com/zhiqiao/p/8944243.html
Copyright © 2011-2022 走看看