zoukankan      html  css  js  c++  java
  • Redis cluster群集安装(单机多实例)

    redis cluster安装至少要6个节点,本例安装采用单机6个实例的方式安装
     
    安装环境:CentOS 7.6.1810
    Redis版本:redis-4.0.2
    Ruby版本:ruby-2.4.10
     
    说明:由于redis cluster需要ruby 2.2以上版本,而系统自带为2.0,因此本例安装前需要卸载系统自带ruby,编译安装
     
    Step1:安装gcc等编译工具
     
    [root@Redis-Cluster ~]# yum -y install gcc
     
    Step2:上传安装软件到安装服务器
     
    [root@Redis-Cluster ~]# ls -l
    total 15480
    -rw-r--r-- 1 root root  1713990 Dec  6 09:45 redis-4.0.2.tar.gz
    -rw-r--r-- 1 root root 14133414 Dec  6 05:01 ruby-2.4.10.tar.gz
     
    Step3:安装ruby
     
    [root@Redis-Cluster ~]# tar zxvf ruby-2.4.10.tar.gz
    [root@Redis-Cluster ~]# cd ruby-2.4.10
    [root@Redis-Cluster ruby-2.4.10]# ./configure --prefix=/usr/local/ruby
    [root@Redis-Cluster ruby-2.4.10]# make
    [root@Redis-Cluster ruby-2.4.10]# make install
    [root@Redis-Cluster bin]# ln -s /usr/local/ruby/bin/ruby /usr/local/bin/ruby
    [root@Redis-Cluster bin]# ln -s /usr/local/ruby/bin/gem /usr/local/bin/gem
     
    Step4:安装redis
     
    [root@Redis-Cluster ~]# tar zxvf redis-4.0.2.tar.gz
    [root@Redis-Cluster ~]# cd redis-4.0.2
    [root@Redis-Cluster redis-4.0.2]# make
    [root@Redis-Cluster redis-4.0.2]# make install PREFIX=/usr/local/redis
    [root@Redis-Cluster ~]# mkdir -pv /usr/local/redis/cluster
    [root@Redis-Cluster ~]# mkdir -pv /usr/local/redis/cluster/{7001,7002,7003,7004,7005,7006}
    mkdir: created directory ‘/usr/local/redis/cluster/7001’
    mkdir: created directory ‘/usr/local/redis/cluster/7002’
    mkdir: created directory ‘/usr/local/redis/cluster/7003’
    mkdir: created directory ‘/usr/local/redis/cluster/7004’
    mkdir: created directory ‘/usr/local/redis/cluster/7005’
    mkdir: created directory ‘/usr/local/redis/cluster/7006’
    [root@Redis-Cluster ~]# cp /root/redis-4.0.2/redis.conf /usr/local/redis/bin/
    [root@Redis-Cluster ~]# cp /root/redis-4.0.2/redis.conf /usr/local/redis/bin/
    [root@Redis-Cluster ~]# cp /root/redis-4.0.2/redis.conf /usr/local/redis/cluster/7001/redis-7001.conf
    [root@Redis-Cluster ~]# cp /root/redis-4.0.2/redis.conf /usr/local/redis/cluster/7002/redis-7002.conf
    [root@Redis-Cluster ~]# cp /root/redis-4.0.2/redis.conf /usr/local/redis/cluster/7003/redis-7003.conf
    [root@Redis-Cluster ~]# cp /root/redis-4.0.2/redis.conf /usr/local/redis/cluster/7004/redis-7004.conf
    [root@Redis-Cluster ~]# cp /root/redis-4.0.2/redis.conf /usr/local/redis/cluster/7005/redis-7005.conf
    [root@Redis-Cluster ~]# cp /root/redis-4.0.2/redis.conf /usr/local/redis/cluster/7006/redis-7006.conf
     
    [root@Redis-Cluster ~]# vim /usr/local/redis/cluster/7001/redis-7001.conf
     
    bind 127.0.0.1     ->修改为 bind 0.0.0.0
    port 6379            ->修改为 port 7001
    daemonize no     ->修改为daemonize yes 
    pidfile /var/run/redis_6379.pid ->修改为 pidfile /var/run/redis_7001.pid
    #cluster-enabled yes      ->取消#注释
    #cluster-config-file nodes_7001.conf        ->取消注释,指定集群配置文件
    #cluster-node-timeout 15000           ->取消注释
    appendonly no                                  ->修改为appendonly yes
     
    其他的配置文件也修改
     
    [root@Redis-Cluster ~]# vim /usr/local/redis/cluster/7002/redis-7002.conf   
    [root@Redis-Cluster ~]# vim /usr/local/redis/cluster/7003/redis-7003.conf   
    [root@Redis-Cluster ~]# vim /usr/local/redis/cluster/7004/redis-7004.conf   
    [root@Redis-Cluster ~]# vim /usr/local/redis/cluster/7005/redis-7005.conf   
    [root@Redis-Cluster ~]# vim /usr/local/redis/cluster/7006/redis-7006.conf
     
    Step5:安装redis-trib所需的ruby脚本
     
    [root@Redis-Cluster ~]# cp /root/redis-4.0.2/src/redis-trib.rb /usr/local/redis/cluster/
    [root@Redis-Cluster ~]# cd /usr/local/redis/cluster/
    [root@Redis-Cluster ~]# gem install redis
     
    Step6:启动redis
     
    [root@Redis-Cluster ~]# cd /usr/local/redis/bin/
    [root@Redis-Cluster bin]# ./redis-server /usr/local/redis/cluster/7001/redis-7001.conf
    [root@Redis-Cluster bin]# ./redis-server /usr/local/redis/cluster/7002/redis-7002.conf
    [root@Redis-Cluster bin]# ./redis-server /usr/local/redis/cluster/7003/redis-7003.conf
    [root@Redis-Cluster bin]# ./redis-server /usr/local/redis/cluster/7004/redis-7004.conf
    [root@Redis-Cluster bin]# ./redis-server /usr/local/redis/cluster/7005/redis-7005.conf
    [root@Redis-Cluster bin]# ./redis-server /usr/local/redis/cluster/7006/redis-7006.conf
     
    [root@Redis-Cluster bin]# netstat -ntlup
    Active Internet connections (only servers)
    Proto Recv-Q Send-Q Local Address           Foreign Address         State       PID/Program name    
    tcp        0      0 0.0.0.0:17001           0.0.0.0:*               LISTEN      40529/./redis-serve
    tcp        0      0 0.0.0.0:17002           0.0.0.0:*               LISTEN      40548/./redis-serve
    tcp        0      0 0.0.0.0:17003           0.0.0.0:*               LISTEN      40553/./redis-serve
    tcp        0      0 0.0.0.0:17004           0.0.0.0:*               LISTEN      40563/./redis-serve
    tcp        0      0 0.0.0.0:17005           0.0.0.0:*               LISTEN      40568/./redis-serve
    tcp        0      0 0.0.0.0:17006           0.0.0.0:*               LISTEN      40573/./redis-serve
    tcp        0      0 0.0.0.0:22              0.0.0.0:*               LISTEN      9304/sshd           
    tcp        0      0 0.0.0.0:7001            0.0.0.0:*               LISTEN      40529/./redis-serve
    tcp        0      0 127.0.0.1:25            0.0.0.0:*               LISTEN      9434/master         
    tcp        0      0 0.0.0.0:7002            0.0.0.0:*               LISTEN      40548/./redis-serve
    tcp        0      0 0.0.0.0:7003            0.0.0.0:*               LISTEN      40553/./redis-serve
    tcp        0      0 0.0.0.0:7004            0.0.0.0:*               LISTEN      40563/./redis-serve
    tcp        0      0 0.0.0.0:7005            0.0.0.0:*               LISTEN      40568/./redis-serve
    tcp        0      0 0.0.0.0:7006            0.0.0.0:*               LISTEN      40573/./redis-serve
    tcp6       0      0 :::22                   :::*                    LISTEN      9304/sshd           
    tcp6       0      0 ::1:25                  :::*                    LISTEN      9434/master         
     
     
    Step7:创建redis集群
     
    [root@Redis-Cluster bin]# cp /root/redis-4.0.2/src/redis-trib.rb /usr/local/redis/bin/
    [root@Redis-Cluster bin]# ./redis-trib.rb create --replicas 1 127.0.0.1:7001 127.0.0.1:7002 127.0.0.1:7003 127.0.0.1:7004 127.0.0.1:7005 127.0.0.1:7006
    >>> Creating cluster
    >>> Performing hash slots allocation on 6 nodes...
    Using 3 masters:
    127.0.0.1:7001
    127.0.0.1:7002
    127.0.0.1:7003
    Adding replica 127.0.0.1:7004 to 127.0.0.1:7001
    Adding replica 127.0.0.1:7005 to 127.0.0.1:7002
    Adding replica 127.0.0.1:7006 to 127.0.0.1:7003
    M: e90a1f6133b63ff2089e23f3ee732e9b20cf37f7 127.0.0.1:7001
       slots:0-5460 (5461 slots) master
    M: 6bf5942ed2b76e6303f94229f23438b182a4dfda 127.0.0.1:7002
       slots:5461-10922 (5462 slots) master
    M: c4a5e3ab437726490a1e2a0ce0bdc84ef71f3182 127.0.0.1:7003
       slots:10923-16383 (5461 slots) master
    S: c9f9165639f4b48cb5738882864f9a5b2a27d272 127.0.0.1:7004
       replicates e90a1f6133b63ff2089e23f3ee732e9b20cf37f7
    S: bf102f5f0ab3742f2b2fe1fa2360bcc5e844e934 127.0.0.1:7005
       replicates 6bf5942ed2b76e6303f94229f23438b182a4dfda
    S: 655e94f61ede5d522eac3d499469b865fba6704b 127.0.0.1:7006
       replicates c4a5e3ab437726490a1e2a0ce0bdc84ef71f3182
    Can I set the above configuration? (type 'yes' to accept): yes
    >>> Nodes configuration updated
    >>> Assign a different config epoch to each node
    >>> Sending CLUSTER MEET messages to join the cluster
    Waiting for the cluster to join....
    >>> Performing Cluster Check (using node 127.0.0.1:7001)
    M: e90a1f6133b63ff2089e23f3ee732e9b20cf37f7 127.0.0.1:7001
       slots:0-5460 (5461 slots) master
       1 additional replica(s)
    S: 655e94f61ede5d522eac3d499469b865fba6704b 127.0.0.1:7006
       slots: (0 slots) slave
       replicates c4a5e3ab437726490a1e2a0ce0bdc84ef71f3182
    M: 6bf5942ed2b76e6303f94229f23438b182a4dfda 127.0.0.1:7002
       slots:5461-10922 (5462 slots) master
       1 additional replica(s)
    M: c4a5e3ab437726490a1e2a0ce0bdc84ef71f3182 127.0.0.1:7003
       slots:10923-16383 (5461 slots) master
       1 additional replica(s)
    S: bf102f5f0ab3742f2b2fe1fa2360bcc5e844e934 127.0.0.1:7005
       slots: (0 slots) slave
       replicates 6bf5942ed2b76e6303f94229f23438b182a4dfda
    S: c9f9165639f4b48cb5738882864f9a5b2a27d272 127.0.0.1:7004
       slots: (0 slots) slave
       replicates e90a1f6133b63ff2089e23f3ee732e9b20cf37f7
    [OK] All nodes agree about slots configuration.
    >>> Check for open slots...
    >>> Check slots coverage...
    [OK] All 16384 slots covered.
     
    [root@Redis-Cluster bin]# ./redis-cli -c -p 7002
    127.0.0.1:7002> keys *
    (empty list or set)
    127.0.0.1:7002> info
    # Server
    redis_version:4.0.2
    redis_git_sha1:00000000
    redis_git_dirty:0
    redis_build_id:77c538eb7a885142
    redis_mode:cluster
    os:Linux 3.10.0-957.el7.x86_64 x86_64
    arch_bits:64
    multiplexing_api:epoll
    atomicvar_api:atomic-builtin
    gcc_version:4.8.5
    process_id:40548
    run_id:1ac0271ebbd7b942ff347fa53d4a26a8bb9f1e45
    tcp_port:7002
    uptime_in_seconds:537
    uptime_in_days:0
    hz:10
    lru_clock:13432535
    executable:/usr/local/redis/bin/./redis-server
    config_file:/usr/local/redis/cluster/7002/redis-7002.conf
     
    # Clients
    connected_clients:1
    client_longest_output_list:0
    client_biggest_input_buf:0
    blocked_clients:0
     
    # Memory
    used_memory:2625512
    used_memory_human:2.50M
    used_memory_rss:12177408
    used_memory_rss_human:11.61M
    used_memory_peak:2625512
    used_memory_peak_human:2.50M
    used_memory_peak_perc:100.05%
    used_memory_overhead:2539496
    used_memory_startup:1424432
    used_memory_dataset:86016
    used_memory_dataset_perc:7.16%
    total_system_memory:16806588416
    total_system_memory_human:15.65G
    used_memory_lua:37888
    used_memory_lua_human:37.00K
    maxmemory:0
    maxmemory_human:0B
    maxmemory_policy:noeviction
    mem_fragmentation_ratio:4.64
    mem_allocator:jemalloc-4.0.3
    active_defrag_running:0
    lazyfree_pending_objects:0
     
    # Persistence
    loading:0
    rdb_changes_since_last_save:0
    rdb_bgsave_in_progress:0
    rdb_last_save_time:1607267932
    rdb_last_bgsave_status:ok
    rdb_last_bgsave_time_sec:0
    rdb_current_bgsave_time_sec:-1
    rdb_last_cow_size:6467584
    aof_enabled:1
    aof_rewrite_in_progress:0
    aof_rewrite_scheduled:0
    aof_last_rewrite_time_sec:-1
    aof_current_rewrite_time_sec:-1
    aof_last_bgrewrite_status:ok
    aof_last_write_status:ok
    aof_last_cow_size:0
    aof_current_size:0
    aof_base_size:0
    aof_pending_rewrite:0
    aof_buffer_length:0
    aof_rewrite_buffer_length:0
    aof_pending_bio_fsync:0
    aof_delayed_fsync:0
     
    # Stats
    total_connections_received:4
    total_commands_processed:144
    instantaneous_ops_per_sec:1
    total_net_input_bytes:60448
    total_net_output_bytes:21705
    instantaneous_input_kbps:0.04
    instantaneous_output_kbps:0.00
    rejected_connections:0
    sync_full:1
    sync_partial_ok:0
    sync_partial_err:1
    expired_keys:0
    evicted_keys:0
    keyspace_hits:0
    keyspace_misses:0
    pubsub_channels:0
    pubsub_patterns:0
    latest_fork_usec:14165
    migrate_cached_sockets:0
    slave_expires_tracked_keys:0
    active_defrag_hits:0
    active_defrag_misses:0
    active_defrag_key_hits:0
    active_defrag_key_misses:0
     
    # Replication
    role:master
    connected_slaves:1
    slave0:ip=127.0.0.1,port=7005,state=online,offset=168,lag=0
    master_replid:a08d51af5094ee677ac18d73711a898a7aca86f7
    master_replid2:0000000000000000000000000000000000000000
    master_repl_offset:168
    second_repl_offset:-1
    repl_backlog_active:1
    repl_backlog_size:1048576
    repl_backlog_first_byte_offset:1
    repl_backlog_histlen:168
     
    # CPU
    used_cpu_sys:0.72
    used_cpu_user:0.02
    used_cpu_sys_children:0.03
    used_cpu_user_children:0.00
     
    # Cluster
    cluster_enabled:1
     
    # Keyspace
    127.0.0.1:7002>
     
    Step8:插入测试数据
     
    [root@Redis-Cluster bin]# ./redis-cli -c -p 7002
     

     Step9:查看值

    127.0.0.1:7005> keys *

     Step10:检查节点

    [root@Redis-Cluster bin]# ./redis-trib.rb check 127.0.0.1:7004

     

  • 相关阅读:
    GetClassLoader和GetCallerClass的使用
    Maven的生命周期和插件
    对象池原理简要描述
    Git x SVN rebase事故
    Git 二进制文件冲突解决
    Git x SVN 当前工作流程
    Laya 项目解耦
    Laya 利用JS进行反射
    Laya Tween 和 遮罩
    Laya Tween循环
  • 原文地址:https://www.cnblogs.com/networking/p/14094977.html
Copyright © 2011-2022 走看看