zoukankan      html  css  js  c++  java
  • Linux下redis的安装

    Linux下redis的安装
     
    (环境是 centos7 的虚拟机)
     
    一、下载安装redis (需要管理员权限)
     
    1、希望安装包下载目录
    /usr/local/development/nosql/redis/download
    2、希望安装目录
    /usr/local/development/nosql/redis
    3、下载安装
    yum install gcc # make命令需要安装gcc,如果系统没有安装,就需要执行这条命令
    cd /usr/local
    mkdir development/nosql/redis/download
    cd development/nosql/redis/download
    wget http://download.redis.io/releases/redis-3.0.7.tar.gz
    tar xzf redis-3.0.7.tar.gz
    ln -s redis-3.0.7 redis #建立一个链接
    cd redis
    make PREFIX=/usr/local/development/nosql/redis install #安装到指定目录中
     
    二、redis启动:
     
    1、命令启动
    cd /usr/local/development/nosql/redis/redis-3.0.7/src
    ./redis-server ../redis.conf >> ../logs/redis.log &
    ./redis-server ../redis38002.conf >> ../logs/redis38002.log &

    2、做成服务(由于虚拟机问题,linux做成服务这块我没有验证过)
     
    a、复制脚本到/etc/rc.d/init.d目录 

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

    /usr/local/development/nosql/redis/redis-3.0.7/utils/redis_init_script  
        必须将其复制到/etc/rc.d/init.d的目录下:
    cp /usr/local/development/nosql/redis/redis-3.0.7/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脚本。 
     
     
    b、更改redis脚本 
    打开使用vim打开脚本,查看脚本信息: 
    vim /etc/rc.d/init.d/redis
     
    看到的内容如下(下内容是更改好的信息):
    #!/bin/sh 
    #chkconfig: 2345 80 90 
    # Simple Redis init.d script conceived to work on Linux systems 
    # as it does use of the /proc filesystem. 
       
    REDISPORT=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  

    和原配置文件相比: 

    1.原文件是没有以下第2行的内容的,

    #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 &  

    注意后面的那个“&”,即是将服务转到后面运行的意思,否则启动服务时,Redis服务将 占据在前台,占用了主用户界面,造成其它的命令执行不了。 

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

    mkdir /etc/redis    
    cp /usr/local/development/nosql/redis/redis-3.0.7/redis.conf /etc/redis/6379.conf
     

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

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

    chkconfig --add redis
     
    c.启动redis服务 
    service redis start  
     
     
    3、将Redis的命令所在目录添加到系统参数PATH中
     修改profile文件:
    vim /etc/profile
     
    在最后行追加: 
    export PATH="$PATH:/usr/local/redis/bin"
    然后马上应用这个文件: 
    . /etc/profile 
    这样就可以直接调用redis-cli的命令了,如下所示: 
    $ redis-cli   
    redis 127.0.0.1:6379> auth superman   
    OK   
    redis 127.0.0.1:6379> ping   
    PONG   
    redis 127.0.0.1:6379>
     
     
     
    三、我遇到的问题:
     
    问题一: 执行下面命令,报错 Another app is currently holding the yum lock
    yum install gcc 
    原因:根据提示,原来是系统进程已经有一个update在运行了。在进程里查看下:ps -ef | grep update
    解决方法:1、查看
    ps -ef | grep update
                       2、kill该进程强制删除pid
    rm -f /var/run/yum.pid
                       3、重启yum服务 (我这边没重启也行)
    /sbin/service yum-updatesd restart
                       4、重新运行安装gcc命令
     
     
    问题二:
    wget 和  install gcc 的访问都被拒绝 ,不知道是不是公司网络问题,回家再试试。
     
     
     
    四、再次安装
     
    由于之前环境网络问题,wget和install  gcc都无法下载,这次换了一个主机。
    环境是 Red Hat Enterprise Linux Server release 6.5 (Santiago)
     

    1、在使用make命令时,报错:

    Last login: Sat Jul 23 01:22:47 2016 from 10.10.34.185
    [boss@localhost ~]$ ls
    redis
    [boss@localhost ~]$ cd redis/
    [boss@localhost redis]$ ls
    download
    [boss@localhost redis]$ cd download/
    [boss@localhost download]$ ls
    [boss@localhost download]$ tar xzf redis-3.0.7.tar.gz 
    [boss@localhost download]$ ln -s redis-3.0.7 redis
    [boss@localhost download]$ cd ../
    [boss@localhost redis]$ make prefix=/home/boss/redis install
    make: *** 没有规则可以创建目标“install”。 停止。
     
    发现是切换错了文件夹,改成如下即可
    [boss@localhost redis]$ make prefix=/home/boss/redis install
    make: *** 没有规则可以创建目标“install”。 停止。
    [boss@localhost redis]$ ^C
    [boss@localhost redis]$ cd download/
    [boss@localhost download]$ ls
    redis  redis-3.0.7  redis-3.0.7.tar.gz
    [boss@localhost download]$ cd redis
    [boss@localhost redis]$ make prefix=/home/boss/redis install
    cd src && make install
    make[1]: Entering directory `/home/boss/redis/download/redis-3.0.7/src'
    rm -rf redis-server redis-sentinel redis-cli redis-benchmark redis-check-dump redis-check-aof *.o *.gcda *.gcno *.gcov redis.info lcov-html
    (cd ../deps && make distclean)
    make[2]: Entering directory `/home/boss/redis/download/redis-3.0.7/deps'
    (cd hiredis && make clean) > /dev/null || true
    (cd linenoise && make clean) > /dev/null || true
    (cd lua && make clean) > /dev/null || true
    (cd jemalloc && [ -f Makefile ] && make distclean) > /dev/null || true
    (rm -f .make-*)
    make[2]: Leaving directory `/home/boss/redis/download/redis-3.0.7/deps'
    (rm -f .make-*)
    echo STD=-std=c99 -pedantic >> .make-settings
    echo WARN=-Wall -W >> .make-settings
    echo OPT=-O2 >> .make-settings
    echo MALLOC=jemalloc >> .make-settings
    echo CFLAGS= >> .make-settings
    echo LDFLAGS= >> .make-settings
    ...
    MAKE hiredis
    cd hiredis && make static
    make[3]: Entering directory `/home/boss/redis/download/redis-3.0.7/deps/hiredis'
    gcc -std=c99 -pedantic -c -O3 -fPIC  -Wall -W -Wstrict-prototypes -Wwrite-strings -g -ggdb  net.c
    make[3]: gcc:命令未找到
    make[3]: *** [net.o] 错误 127
    make[3]: Leaving directory `/home/boss/redis/download/redis-3.0.7/deps/hiredis'
    make[2]: *** [hiredis] 错误 2
    make[2]: Leaving directory `/home/boss/redis/download/redis-3.0.7/deps'
    make[1]: [persist-settings] 错误 2 (忽略)
        CC adlist.o
    /bin/sh: cc: command not found
    make[1]: *** [adlist.o] 错误 127
    make[1]: Leaving directory `/home/boss/redis/download/redis-3.0.7/src'
    make: *** [install] 错误 2
    发现可以编译了,但是报找不到gcc错误,于是需要安装gcc,使用命令 yum install gcc
    [boss@localhost redis]$ yum install gcc
    Loaded plugins: product-id, security, subscription-manager
    [Errno 13] 权限不够: '/etc/pki/entitlement'
    You need to be root to perform this command.
     
    由于我不是管理员权限,不能安装,于是让管理员帮忙安装。
    接着继续跑make命令
    发现还是报错,还是因为权限不够
    [boss@localhost redis]$ make prefix=/home/boss/redis install
    cd src && make install
    make[1]: Entering directory `/home/boss/redis/download/redis-3.0.7/src'
     
    Hint: It's a good idea to run 'make test' ;)
     
        INSTALL install
    install: 无法创建普通文件"/usr/local/bin/redis-server": 权限不够
    make[1]: *** [install] 错误 1
    make[1]: Leaving directory `/home/boss/redis/download/redis-3.0.7/src'
    make: *** [install] 错误 2
     
     
     
    总结:
    1、为了让编译成功,需要先安装gcc
    2、使用管理员权限编译。
     
    完整流程如下,测试通过:
    [boss@localhost ~]$ yum install gcc
    [boss@localhost ~]$ mkdir redis/download
    [boss@localhost ~]$ ls
    redis
    [boss@localhost ~]$ cd redis/
    [boss@localhost redis]$ ls
    download
    [boss@localhost redis]$ cd download/
    [boss@localhost redis]$ wget http://download.redis.io/releases/redis-3.0.7.tar.gz
    [boss@localhost download]$ ls
    redis-3.0.7.tar.gz
    [boss@localhost download]$ tar xzf redis-3.0.7.tar.gz 
    [boss@localhost download]$ ln -s redis-3.0.7 redis
    [boss@localhost download]$ cd redis #这个redis对应的是ln -s 软链接对应的redis目录
    [boss@localhost redis]$ make prefix=/home/boss/redis install

    文章源自微信公众号【刍荛采葑菲】,转载请注明。

  • 相关阅读:
    PAT (Advanced Level) Practice 1071 Speech Patterns (25分)
    PAT (Advanced Level) Practice 1070 Mooncake (25分)
    PAT (Advanced Level) Practice 1069 The Black Hole of Numbers (20分)
    PAT (Advanced Level) Practice 1074 Reversing Linked List (25分)
    PAT (Advanced Level) Practice 1073 Scientific Notation (20分)
    第一次冲刺个人总结01
    构建之法阅读笔记01
    人月神话阅读笔记01
    四则运算2
    学习进度条(软件工程概论1-8周)
  • 原文地址:https://www.cnblogs.com/churao/p/8509697.html
Copyright © 2011-2022 走看看