zoukankan      html  css  js  c++  java
  • Linux 部署redis集群

    下载Redis

    下载网址

    http://www.redis.cn/download.html

    图形界面下载网址

    https://github.com/cc20110101/RedisView/releases


    • Redis需要gcc环境(如果已经有该环境跳过此步骤)
      yum install gcc-c++

    安装Redis

    • 在/usr/local下创建redis文件夹
    mkdir redis
    cd redis
    
    • 下载、解压、编译Redis:
    wget http://download.redis.io/releases/redis-5.0.4.tar.gz
    tar xzf redis-5.0.4.tar.gz
    cd redis-5.0.4
    # 指定内存池类型,提高性能
    make MALLOC=libc
    cd src
    make PREFIX=/usr/local/redis install
    
    • 拷贝redis.conf配置文件到特定目录;
    mkdir -p /usr/local/redis/6379
    cp redis.conf /usr/local/redis/6379/
    
    • 添加redis到命令到全局变量,方便在任何目录执行;
    vi /etc/profile
    # 在最后行添加:
    export PATH="$PATH:/usr/local/redis/bin"
    
    • 将 redis-trib.rb 复制到 /usr/local/bin 目录下
    cd src
    cp redis-trib.rb /usr/local/redis/bin/
    
    • 对redis.conf文件修改如下
    #设置占用最大内存 数字为bytes 该值为0.75G
    maxmemory 751619276
    # redis 内存回收机制 默认noeviction:拒绝更多内存,当前为回收已经过期的key,并且优先回收存活时间(TTL)较短的键
    maxmemory-policy volatile-ttl
    # 开启AOF持久化
    appendonly yes
    # AOF追写策略
    appendfsync everyse
    #是否同步重写问件 yes性能更好,有概率丢失文件
    no-appendfsync-on-rewrite no
    # 设置AOF增长比例和最小触发文件大小,即至(64*100% + 64)mb时触发重写文件
    auto-aof-rewrite-percentage 100
    auto-aof-rewrite-min-size 64mb
    # 注释掉RDB持久化参数
    #save 900 1
    #save 300 10
    #save 60 10000
    # 删除目录下的dump.rdb
    rm -rf dump.rdb
    # 手动重写AOF
    执行 bgrewriteaof
    
    • 启动验证redis
    cd /usr/local/redis/
    bin/redis-server 6379/redis.conf
    
    • 性能测试
    # 启动5个连接,发起100000个请求,每个请求的大小为10bytes
    bin/redis-benchmark  -t get -h localhost -p 6379 -c 5 -n 100000 -d 10
    
    • 设置开机自启
    vi /etc/init.d/redis
    # 填入以下内容
    
    #!/bin/sh
    # chkconfig: 2345 56 26
    # description: Redis Service
    
    ### BEGIN INIT INFO
    # Provides:          Redis
    # Required-Start:    $all
    # Required-Stop:     $all
    # Default-Start:     2 3 4 5
    # Default-Stop:      0 1 6
    # Short-Description: starts Redis
    # Description:       starts the BT-Web
    ### END INIT INFO
    
    # Simple Redis init.d script conceived to work on Linux systems
    # as it does use of the /proc filesystem.
    PATH=/usr/local/bin:/sbin:/usr/bin:/bin
    # redis端口号  
    REDISPORT=6379
    # redis-server所在目录的绝对路径  
    EXEC=/usr/local/redis/bin/redis-server
    # redis-cli所在目录的绝对路径  
    REDIS_CLI=/usr/local/redis/bin/redis-cli
    
    PIDFILE=/var/run/redis.pid
    # redis.conf所在目录的绝对路径  
    CONF="/usr/local/redis/6379/redis.conf"
    AUTH="nginx"
    
    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
                    if [ "$?"="0" ]
                    then
                            echo "Redis is running..."    
                    fi
                    ;;
            stop)
                    if [ ! -f $PIDFILE ]
                    then
                            echo "$PIDFILE exists, process is not running."    
                    else
                            PID=$(cat $PIDFILE)
                            echo "Stopping..."    
                           $REDIS_CLI -p $REDISPORT -a $AUTH SHUTDOWN
                            sleep 2
                           while [ -x $PIDFILE ]     
                           do
                                    echo "Waiting for Redis to shutdown..."    
                                   sleep 1
                            done
                            echo "Redis stopped"    
                    fi
                    ;;
            restart|force-reload)
                    ${0} stop
                    ${0} start
                    ;;
            *)
                   echo "Usage: /etc/init.d/redis {start|stop|restart|force-reload}" >&2
                    exit 1
    esac
    
    
    chmod 755 redis
    chkconfig redis on
    service redis start
    
    • 在redis文件夹下创建redis-cluster,并且在redis-cluster文件夹下创建7004 7005 7006文件夹

    • 将redis5.0.4的文件夹下redis.conf文件复制到刚刚创建的7004 7005 7006文件夹下
    cp redis.conf /usr/local/redis/redis-cluster/7004
    cp redis.conf /usr/local/redis/redis-cluster/7005
    cp redis.conf /usr/local/redis/redis-cluster/7006
    
    • 修改刚刚复制的三个配置文件redis.conf
    port 7000 //端口7000,7002,7003 
    bind 本机ip //默认ip为127.0.0.1 需要改为其他节点机器可访问的ip 否则创建集群时无法访问对应的端口,无法创建集群 
    daemonize yes //redis后台运行 
    pidfile /var/run/redis_7000.pid //pidfile文件对应7000,7001,7002 
    cluster-enabled yes //开启集群 把注释#去掉 
    cluster-config-file nodes_7000.conf //集群的配置 配置文件首次启动自动生成 7000,7001,7002 把注释#去掉 
    cluster-node-timeout 15000 //请求超时 默认15秒,可自行设置  把注释#去掉 
    appendonly yes //aof日志开启 有需要就开启,它会每次写操作都记录一条日志
    
    • 在/usr/local/redis/bin目录下启动各个节点
    ./redis-server /usr/local/redis/redis-cluster/7004/redis.conf
    ./redis-server /usr/local/redis/redis-cluster/7005/redis.conf
    ./redis-server /usr/local/redis/redis-cluster/7006/redis.conf
    
    • 检查redis启动情况
    ps -ef | grep redis //查看redis启动情况
    netstat -tnlp | grep redis//查看redis端口开启情况
    


    另一个服务器也执行相同操作,分别创建7001 7002 7003节点

    创建集群

    ./redis-cli --cluster create --cluster-replicas 1 10.104.132.37:7001 10.104.132.37:7002 10.104.132.37:7003 10.104.132.52:7004 10.104.132.52:7005 10.104.132.52:7006

    • 其中,前三个 ip:port 为第一台机器的节点,剩下三个为第二台机器

    运行界面如上,则表示配置成功

    验证集群

    • 在第一台机器上连接集群的7001端口的节点,在另外一台连接7005节点,连接方式为
    ./redis-cli -h 10.104.132.37 -c -p 7001
    ./redis-cli -h 10.104.132.52 -c -p 7005
    


    Redis其他操作命令

    关闭所有节点

    pkill -9 redis

  • 相关阅读:
    MFC Windows 程序设计>WinMain 简单Windows程序 命令行编译
    AT3949 [AGC022D] Shopping 题解
    CF643D Bearish Fanpages 题解
    CF643C Levels and Regions 题解
    CF241E Flights 题解
    CF671C Ultimate Weirdness of an Array 题解
    CF1592F Alice and Recoloring 题解
    GYM 102452E 题解
    CF494C Helping People 题解
    P5556 圣剑护符
  • 原文地址:https://www.cnblogs.com/hyry/p/11927557.html
Copyright © 2011-2022 走看看