zoukankan      html  css  js  c++  java
  • 安装redis-3.2.10单节点

    前段时间安装好的redis,今天用脚本安装的时候突然出现版本异常的问题,所以更新一篇为大家提供参考

    本次安装在CentOS6.5,采用的redis-3.2.10,最新的redis-4.0.1安装同样适用,不过由于4.0.1版本的redis改动较大,大家自己选择即可。,

    1.基础环境配置,上传安装包

    # 下载地址:http://download.redis.io/releases/redis-3.2.10.tar.gz

    useradd redis -s /sbin/nologin -M
    mkdir -p /server/tools/
    cd /server/tools/

    2.安装redis,配置开机自启动

    # 解压,编译安装

    tar -zxf redis-3.2.10.tar.gz 
    cd redis-3.2.10
    make PREFIX=/usr/local/redis
    make PREFIX=/usr/local/redis install

    # 配置环境变量,便于命令工具的调用访问

    export PATH=/usr/local/redis/bin/:$PATH
    echo 'export PATH=/usr/local/redis/bin:$PATH' >> /etc/profile
    echo $PATH

    # 手动创建标准目录结构,操作规范化

    mkdir -p /usr/local/redis/{conf,data,logs}
    /bin/cp /server/tools/redis-3.2.10/redis.conf /usr/local/redis/conf/redis.conf.ori
    tree /usr/local/redis

    # 创建修改配置文件

    cd /usr/local/redis/conf
    egrep -v "^#|^$" redis.conf.ori>redis.conf
    cat redis.conf

    # 默认生效的配置如下:

    bind 127.0.0.1
    protected-mode yes
    port 6379
    tcp-backlog 511
    timeout 0
    tcp-keepalive 300
    daemonize no
    supervised no
    pidfile /var/run/redis_6379.pid
    loglevel notice
    logfile ""
    databases 16
    save 900 1
    save 300 10
    save 60 10000
    stop-writes-on-bgsave-error yes
    rdbcompression yes
    rdbchecksum yes
    dbfilename dump.rdb
    dir ./
    slave-serve-stale-data yes
    slave-read-only yes
    repl-diskless-sync no
    repl-diskless-sync-delay 5
    repl-disable-tcp-nodelay no
    slave-priority 100
    appendonly no
    appendfilename "appendonly.aof"
    appendfsync everysec
    no-appendfsync-on-rewrite no
    auto-aof-rewrite-percentage 100
    auto-aof-rewrite-min-size 64mb
    aof-load-truncated yes
    lua-time-limit 5000
    slowlog-log-slower-than 10000
    slowlog-max-len 128
    latency-monitor-threshold 0
    notify-keyspace-events ""
    hash-max-ziplist-entries 512
    hash-max-ziplist-value 64
    list-max-ziplist-size -2
    list-compress-depth 0
    set-max-intset-entries 512
    zset-max-ziplist-entries 128
    zset-max-ziplist-value 64
    hll-sparse-max-bytes 3000
    activerehashing yes
    client-output-buffer-limit normal 0 0 0
    client-output-buffer-limit slave 256mb 64mb 60
    client-output-buffer-limit pubsub 32mb 8mb 60
    hz 10
    aof-rewrite-incremental-fsync yes

    # 修改配置文件

    vim redis.conf

    # 确认以下必要的配置,修改完毕后的配置文件可以作为模板,用于创建新的redis实例

    bind 0.0.0.0
    port 6379
    daemonize yes pidfile /usr/local/redis/logs/redis.pid logfile /usr/local/redis/logs/redis.log dir /usr/local/redis/data dbfilename redis.rdb

    # 内核参数调优(临时)

    echo never > /sys/kernel/mm/transparent_hugepage/enabled
    echo 511 > /proc/sys/net/core/somaxconn
    cat /sys/kernel/mm/transparent_hugepage/enabled
    cat /proc/sys/net/core/somaxconn
    echo "vm.overcommit_memory = 1" >>/etc/sysctl.conf
    sysctl -p

    # 启动redis,并查看redis启动状态

    /usr/local/redis/bin/redis-server /usr/local/redis/conf/redis.conf
    ps -ef |grep redis
    netstat -anptl |grep redis
    [root@redis-server conf]# cat /usr/local/redis/logs/redis.log 
    6003:M 04 Sep 21:10:39.252 * Increased maximum number of open files to 10032 (it was originally set to 1024).
                    _._                                                  
               _.-``__ ''-._                                             
          _.-``    `.  `_.  ''-._           Redis 3.2.10 (00000000/0) 64 bit
      .-`` .-```.  ```/    _.,_ ''-._                                   
     (    '      ,       .-`  | `,    )     Running in standalone mode
     |`-._`-...-` __...-.``-._|'` _.-'|     Port: 6379
     |    `-._   `._    /     _.-'    |     PID: 6003
      `-._    `-._  `-./  _.-'    _.-'                                   
     |`-._`-._    `-.__.-'    _.-'_.-'|                                  
     |    `-._`-._        _.-'_.-'    |           http://redis.io        
      `-._    `-._`-.__.-'_.-'    _.-'                                   
     |`-._`-._    `-.__.-'    _.-'_.-'|                                  
     |    `-._`-._        _.-'_.-'    |                                  
      `-._    `-._`-.__.-'_.-'    _.-'                                   
          `-._    `-.__.-'    _.-'                                       
              `-._        _.-'                                           
                  `-.__.-'                                               
    
    6003:M 04 Sep 21:10:39.255 # Server started, Redis version 3.2.10
    6003:M 04 Sep 21:10:39.255 * The server is now ready to accept connections on port 6379

    # 连接redis,进行测试

    [root@redis-server conf]# /usr/local/redis/bin/redis-cli -p 6379
    127.0.0.1:6379> set a 1
    OK
    127.0.0.1:6379> set b 2
    OK
    127.0.0.1:6379> set c 3
    OK
    127.0.0.1:6379> get a 
    "1"
    127.0.0.1:6379> get b 
    "2"
    127.0.0.1:6379> get c
    "3"
    127.0.0.1:6379> exit
    [root@redis-server conf]# 

     # 安全关闭redis-server

    /usr/local/redis/bin/redis-cli shutdown

    # 另外,需要设置一下内核参数保证下次重启不会出错

    echo " ">> /etc/rc.local
    echo "# redis by zhaoshuai in $(date +%F)" >> /etc/rc.local
    echo "echo never > /sys/kernel/mm/transparent_hugepage/enabled" >> /etc/rc.local
    echo "echo 511 > /proc/sys/net/core/somaxconn" >>/etc/rc.local
    tail -4 /etc/rc.local

    # 至此,redis-server就安装完成了。

    3.创建新的redis实例(端口)

    mkdir -p /usr/loca/redis/6380
    cd /usr/local/redis/conf
    cp redis.conf /usr/loca/redis/6380/6380.conf
    cd /usr/local/redis/6380/

    # 编辑配置文件,

    vim 6380.conf

    # 修改为以下内容:

    bind 0.0.0.0
    daemonize yes
    pidfile /usr/local/redis/6380/pid-6380.pid
    logfile /usr/local/redis/6380/log-6380.log
    dir /usr/local/redis/6380
    dbfilename 6380.rdb
    ......

    # 启动redis新实例,如果需要可以设置开机自启动

    [root@redis-server 6380]# /usr/local/redis/bin/redis-server /usr/local/redis/6380/6380.conf 
    [root@redis-server 6380]# echo "/usr/local/redis/bin/redis-server /usr/local/redis/6380/6380.conf" >>/etc/rc.local 

     4.另附一个redis启动管理脚本,方便大家学习使用

    #!/bin/sh
    #
    # chkconfig:   2345 85 15  
    # description: this script can manager the redis-server daemon
    #              Redis is a persistent key-value database
    # exec:        /usr/local/redis/bin/redis-server
    # config:      /usr/local/redis/conf/redis.conf  
    # pidfile:     /usr/local/redis/logs/redis.pid  
    # datafile:    /usr/local/redis/data/redis.rdb  
    
    redis="/usr/local/redis/bin/redis-server"
    REDIS_CONF_FILE="/usr/local/redis/conf/redis.conf"
    prog=$(basename $redis)
    lockfile=/var/lock/subsys/redis
    
    # Source function library.
    . /etc/rc.d/init.d/functions
     
    # Source networking configuration.
    . /etc/sysconfig/network
     
    # Check that networking is up.
    [ "$NETWORKING" = "no" ] && exit 0
     
    start() {
        [ -x $redis ] || exit 5
        [ -f $REDIS_CONF_FILE ] || exit 6
        echo -n $"Starting $prog: "
        daemon $redis $REDIS_CONF_FILE
        retval=$?
        echo
        [ $retval -eq 0 ] && touch $lockfile
        return $retval
    }
    stop() {
        echo -n $"Stopping $prog: "
        killproc $prog -QUIT
        retval=$?
        echo
        [ $retval -eq 0 ] && rm -f $lockfile
        return $retval
    }
    restart() {
        stop
        start
    }
    reload() {
        echo -n $"Reloading $prog: "
        killproc $redis -HUP
        RETVAL=$?
        echo
    }
    rh_status() {
        status $prog
    }
    rh_status_q() {
        rh_status >/dev/null 2>&1
    }
    case "$1" in
        start)
            rh_status_q && exit 0
            $1
            ;;
        stop)
            rh_status_q || exit 0
            $1
            ;;
        restart)
            $1
            ;;
        reload)
            rh_status_q || exit 7
            $1
            ;;
        status)
            rh_status
            ;;
        *)
            echo $"Usage: $0 {start|stop|restart|reload|status}"
            exit 2
    esac
    View Code

    # 完毕,呵呵呵

  • 相关阅读:
    浅谈页面的瀑布流布局
    前端常用动画库
    JavaScript七宗罪和一些槽点
    prototype与 _proto__的关系
    Javascript之傻傻理不清的原型链、prototype、__proto__
    C#开发微信门户及应用(26)-公众号微信素材管理
    C#开发微信门户及应用(25)-微信企业号的客户端管理功能
    基于InstallShield2013LimitedEdition的安装包制作
    Entity Framework 实体框架的形成之旅--Code First模式中使用 Fluent API 配置(6)
    Entity Framework 实体框架的形成之旅--Code First的框架设计(5)
  • 原文地址:https://www.cnblogs.com/tssc/p/7460721.html
Copyright © 2011-2022 走看看