zoukankan      html  css  js  c++  java
  • redis单机上部署集群

    一、安装单机redis

     redis的安装:版本至少是3.2.8及其以上,这里以3.2.8版本为例说明

    1.安装redis

    wget http://download.redis.io/releases/redis-3.2.8.tar.gz

    tar xf redis-3.2.8.tar.gz

    cd redis-3.2.8

    make MALLOC=jemalloc

    make PREFIX=/usr/local/redis install  #在makeinstall 这一步指定安装路径

    [root@150 bin]# tree /usr/local/redis/ 安装完成

    /usr/local/redis/

    └── bin

        ├── redis-benchmark  #redis性能测试工具,测试redis在你系统及你配置下的读写性能

        ├── redis-check-aof  #更新日志检查

        ├── redis-check-rdb  #用于本地数据库检查

        ├── redis-cli        #redis命令行操作工具

        ├── redis-sentinel -> redis-server

        └── redis-server     #redis服务器的启动程序

    2.拷贝配置文件

    mkdir /usr/local/redis/conf

    cp /root/redis-3.2.8/redis.conf /usr/local/redis/conf/

    优化PATH:

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

    source /etc/profile

    3.启动

    redis-server /usr/local/redis/conf/redis.conf &

    4.测试连接

    方法一:

    [root@150 ~]# redis-cli

    127.0.0.1:6379>

    127.0.0.1:6379> set 007 wangchuang

    OK

    127.0.0.1:6379> get 007

    "wangchuang"

    方法二:

    [root@151 ~]# telnet 192.168.100.150 -p 6379    #需要在配置文件修改监听地址

    二、安装redis机群

    1、安装ruby

    首先安装rvm,然后用rvm安装ruby

    1)安装rvm

    http://rvm.io/rvm/security #查看最新的key,下面的key可能会失效

    [root@150 ~]# gpg --keyserver hkp://pool.sks-keyservers.net --recv-keys 7D2BAF1CF37B13E2069D6956105BD0E739499BDB

    [root@150 ~]# curl -sSL https://get.rvm.io | bash -s stable

    [root@150 ~]# source /usr/local/rvm/scripts/rvm

    2) 查看RVM中ruby的版本:

    rvm list known | grep ruby

    3)选择一个版本ruby版本安装,这边选择的是ruby 2.4.1

    rvm install 2.4.1

    4) 使用ruby版本并设置为默认版本

    rvm use 2.4.1 --default

    5) 将ruby和gem放入到全局变量

    如果是按照前面安装的,ruby和gem的位置应该在/usr/local/rvm/rubies/ruby-2.4.1/bin/这个目录下,如果不在,可以使用whereis ruby 和 whereis  gem来查找,找到位置后,使用软链命令

    ln -s /usr/local/rvm/rubies/ruby-2.4.1/bin/gem  /usr/bin/

    ln -s /usr/local/rvm/rubies/ruby-2.4.1/bin/ruby  /usr/bin/

    到这里ruby就安装完成了

    2、redis集群安装

    mkdir /usr/local/redis/redis-cluster/{7000..7005} -p

    然后将etc目录下的redis.conf复制到7000目录下

    cp /usr/local/redis/conf/redis.conf /usr/local/redis/redis-cluster/7000/

    由于我们是做测试,并没有启动6个真正的物理节点,而是把6个Redis实例都部署在了同一台Linux服务器上,为了区分Redis实例,我们是以不同的端口号来区分Redis实例的。然后我们修改Redis.conf的配置文件

    cd /usr/local/redis/redis-cluster/7000/

    vim redis.conf

    主要修改内容如下:

    61 bind 172.16.20.80   本机ip地址

    84 port 7000           //端口号

    128 daemonize  yes   //后台运行

    150 pidfile /var/run/redis-7000.pid  //修改pid进程文件名,以端口号命名

    163 logfile /usr/local/redis/redis-cluster/7000/redis.log   //修改日志文件名称,以端口号为目录来区分

    247 dir /usr/local/redis/redis-cluster/7000/       //修改数据文件存放地址,以端口号为目录名来区分

    593 appendonly yes //启动AOF增量持久化策略

             

    622 appendfsync always         //发生改变就记录日志

    623 # appendfsync everysec   #注释掉这个=

    721 cluster-enabled yes           //注释去掉,启用集群

    729 cluster-config-file nodes-7000.conf     //配置每个节点的配置文件,同样以端口号为名称

      

    修改保存后退出,然后将7000目录下的redis.conf 分别复制到7001,7002,7003,7004,7005目录下,在不同目录下将7000替换成当前目录的数字就可以了。在Linux的vi编辑中,进入末行模式(shift加上:),%s/7000/7001/g,这样就将所有的7000替换成了7001,然后保存退出,依次类推。

    拷贝到7001-7005上,并修改

    for i in `seq 7001 7005`;do cp /usr/local/redis/redis-cluster/7000/redis.conf /usr/local/redis/redis-cluster/$i/ ;done

    for i in `seq 7001 7005`;do sed -i "s/7000/$i/g" /usr/local/redis/redis-cluster/$i/redis.conf ;done

    1.3.2    安装redis-cluster的ruby接口

    在/usr/local/redis/bin/下运行: gem install redis

    1.3.3  启动:

    在/usr/local/redis/redis_cluster下,运行

    for i in `seq 7000 7005`;do redis-server /usr/local/redis/redis-cluster/$i/redis.conf ;done

    然后运行:

    redis-trib.rb  create --replicas 1 本机ip:7000  本机ip:7001  本机ip:7002  本机ip:7003  本机ip:7004  本机ip:7005

    ruby /root/redis-3.2.8/src/redis-trib.rb create --replicas 1 172.16.20.80:7000 172.16.20.80:7001 172.16.20.80:7002 172.16.20.80:7003 172.16.20.80:7004 172.16.20.80:7005

    如果一切顺利,你会看到类似这样的消息: [OK] All 16384 slots covered

    结语:至此redis的单机与集群的安装和启动就成功了

  • 相关阅读:
    如何高效处理bug?
    如何获取字符串函数的实现?
    数据处理-csv,pandas
    CentOS 下安装SAC(Seismic Analysis Code)
    CentOS安装使用ffmpeg
    Tensorflow问题记录 --pydot Failed to import pydot. You must install pydot and graphviz for pydotprint to work
    Tensorflow学习记录 --TensorFlow高效读取数据tfrecord
    Committee to boost development of Chinese language teachers
    Consensus-based decentralized auctions for robust task allocation
    Chinese market critical to US firms: US-China Business Council
  • 原文地址:https://www.cnblogs.com/chuangcc/p/10512310.html
Copyright © 2011-2022 走看看