• 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

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

  • 相关阅读:
    软件的一般实现过程
    前端开发所需技能及理解
    前端开发所需技能
    JavaScriptlet和const的使用
    [NOI2013] 向量内积
    [省选联考 2021 A/B 卷] 滚榜
    [提高组集训2021] 模拟赛2
    [省选联考 2021 A 卷] 矩阵游戏
    [省选联考 2021 A/B 卷] 图函数
    [APIO2020] 交换城市
  • 原文地址:https://www.cnblogs.com/churao/p/8509697.html
Copyright © 2020-2023  润新知