Linux下安装Redis

来源:互联网 发布:矩阵的合同是什么 编辑:程序博客网 时间:2024/05/16 13:56
摘要 在Linux下按照Redis,并设置开机启动。
redis hiredis redis-py Linux

目录[-]

  • 1. 安装依赖包
  • 2. 安装Redis
  • 3. C客户端hiredis
  • 4. Python客户端redis-py
  • 5. 高级设置
  • 1. 安装依赖包

    首先,安装Redis所依赖的TCL工具包。

    ?
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    # 下载
    wget http://downloads.sourceforge.net/tcl/tcl8.6.1-src.tar.gz
    # 解压缩
    tar-xf tcl8.6.0-html.tar.gz
    # 配置安装
    cdunix &&
    ./configure--prefix=/usr          \
                --without-tzdata        \
                --mandir=/usr/share/man\
                $([ $(uname-m) = x86_64 ] && echo--enable-64bit) &&
    make&&
    sed-e "s@^\(TCL_SRC_DIR='\).*@\1/usr/include'@"\
        -e"/TCL_B/s@='\(-L\)\?.*unix@='\1/usr/lib@"\
        -i tclConfig.sh
    # 测试make是否成功
    maketest
     
    # root用户登录,执行下面命令
    makeinstall &&
    makeinstall-private-headers &&
    ln-v-sf tclsh8.6 /usr/bin/tclsh&&
    chmod-v755 /usr/lib/libtcl8.6.so

        有关TCL的更详细的说明,请见 http://www.linuxfromscratch.org/blfs/view/svn/general/tcl.html

    2. 安装Redis

        下面,就可以安装Redis了。

    ?
    1
    2
    3
    4
    5
    6
    7
    # 下载redis稳定版,解压缩并安装
    wget http://download.redis.io/redis-stable.tar.gz
    tarxzf redis-3.0.0.tar.gz
    cd<span></span>redis-3.0.0<span></span>make
    # 测试make是否成功
    maketest
    makeinstall

        然后可以进入redis目录,尝试启动redis

    ?
    1
    ./src/redis-serverredis.conf

        至此redis安装已经完成了。

        在make test中可能会遇到时间相关的失败,比如

    Executing test client: NOREPLICAS Not enough good slaves to write..

        这种情况下,可以修改文件tests/integration/replication-2.tcl,将after 1000改为after 10000以延长等待时间。

        更多关于Redis安装的信息,请见 http://redis.io/download

    3. C客户端hiredis

        如果想要使用C程序调用Redis,安装官方C客户端hiredis。方便的是,目前的redis下载包中已经包含了hiredis的安装包,只需要到redis安装目录下,执行以下命令即可:

    ?
    1
    2
    3
    4
    5
    6
    7
    8
    # 进入hiredis文件夹并安装
    cd/deps/hiredis
    make
    # 测试make是否成功
    maketest
    # 使用root用户,安装动态文件文件,并更新
    makeinstall
    /sbin/ldconfig/usr/local/lib

        可以执行hiredis文件夹下的hiredis-example来测试hiredis是否成功安装。

    ?
    1
    ./hiredis-example
         hiredis-example由example.c编译而成,包括了简单的redis通过C连接调用的例子,也可以自己重新编译一遍
    ?
    1
    2
    cc example.c -lhiredis
    ./a.out

        关于hiredis的更多说明,可以参照 https://github.com/redis/hiredis

    4. Python客户端redis-py

        redis的Python客户端目前尚不存在官方版本,但是官方推荐的为redis-py。在安装完redis服务器后,执行下面命令安装redis-py。
    ?
    1
    pipinstallredis
         redis-py通过解析器(Parser)来解析Redis服务器的响应内容,目前有两种解析器可用,分别是PythonParser和HiredisParser。redis-py的默认解析器是HiredisParser,如果不存在则使用PythonParser。推荐安装使用Hiredis进行解析,因为相比Python解析,它提升了10倍的解析速度。

        安装Hiredis:

    ?
    1
    pipinstallhiredis
        redis-py还实现了连接池等功能。

        关于redis-py的更多说明,可以参照 https://github.com/andymccurdy/redis-py

    5. 高级设置

        最后,配置生产环境,并设置redis的开机启动。

        首先,建立存放redis配置文件和持久化RDB数据的文件夹:

    ?
    1
    2
    sudomkdir /etc/redis
    sudomkdir /var/redis
        拷贝redis的启动脚本到/etc/init.d文件夹中:
    ?
    1
    sudocp utils/redis_init_script/etc/init.d/redis_6379
        拷贝redis的配置文件到/etc/redis中,并且以端口号作为文件名:
    ?
    1
    sudocp redis.conf /etc/redis/6379.conf
        在/var/redis中创建文件夹作为redis实例的数据和工作目录:
    ?
    1
    sudomkdir /var/redis/6379

        按下面要求修改配置文件:
    • 设置 demonize 为 yes(默认是no)
    • 设置 pidfile 为 /var/run/redis_6379.pid
    • 设置 loglevel 为相应级别
    • 设置 logfile 为 /var/log/redis_6379.log
    • 设置 dir 为 /var/redis/6379

        最后,设置redis实例的开机启动。在Ubuntu上直接运行:

    ?
    1
    sudoupdate-rc.d redis_6379 defaults
        如果是CentOS,修改/etc/init.d/redis_6379,添加下面内容:

    ?
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    # Provides:     redis-server
    # Required-Start:   $syslog
    # Required-Stop:    $syslog
    # Should-Start:     $local_fs
    # Should-Stop:      $local_fs
    # Default-Start:    2 3 4 5
    # Default-Stop:     0 1 6
    # Short-Description:    redis-server - Persistent key-value db
    # Description:      redis-server - Persistent key-value db
    ### END INIT INFO
        然后执行chkconfig即可。

    ?
    1
    sudochkconfig --add redis_6379

        关于配置的更多内容,参照 http://redis.io/topics/quickstart


    持久化内存问题:

        Redis在持久化时会重新启动一个进程,占用的内存资源与Redis实例相同,因此可能会造成内存不足,产生难以预知的后果。为了防止该事件发生,可以将overcommit_memory设置为1。

        设置方法:

        1. 修改文件/etc/sysctl.conf,添加

            vm.overcommit_memory = 1

            然后重新启动。

        2. 执行命令sysctl vm.overcommit_memory=1

            这样在下次启动时会恢复默认设置,因此仍然需要在/etc/sysctl.conf中添加。

    0 0