设为首页 收藏本站
查看: 2633|回复: 0

[经验分享] Redis集群部署

[复制链接]
累计签到:1 天
连续签到:1 天
发表于 2015-9-21 09:39:52 | 显示全部楼层 |阅读模式
亲测jedis(jedis2.7.2)客户端 JedisCluster 可用
1:安装redis cluster 以及依赖        1.安装zlib
1
2
3
4
5
6
       wget:htpp://zlib.net/zlib-1.2.8.tar.gz
            tar -zxvf zlib-1.2.8.tar.gz
            cd zlib-1.2.8
            ./configure
            make
            make install



         2.安装redis
1
2
3
4
5
     wget:http://download.redis.io/redis-stable.tar.gz
            tar -zxvf redis-stable.tar.gz
           cd redis-stable
          make
          make install



         3.安装ruby
1
2
3
            gem sources -a  http://ruby.taobao.org/            
            yum install rubygems
            gem install redis



2:配置redis       1. 创建节点目录  

           为了区分master 和slave ,slave比master 多1000

1
    mkdir /server/cluster/6380 6381 6382 7380 7381 7382



         通用配置

1
    mkdir -p /server/server/cluster/redis-common.conf



1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
    daemonize yes
    #守护进程运行(后台运行)
    tcp-backlog 511  
    timeout 0  
    tcp-keepalive 0  
    loglevel notice  
    databases 16  
    dir /opt/redis/data  
    slave-serve-stale-data yes  
    #slave只读  
    slave-read-only yes  
    #not use default  
    repl-disable-tcp-nodelay yes  
    slave-priority 100  
    #打开aof持久化  
    appendonly yes  
    #每秒一次aof写  
    appendfsync everysec  
    #关闭在aof rewrite的时候对新的写操作进行fsync  
    no-appendfsync-on-rewrite yes  
    auto-aof-rewrite-min-size 64mb  
    lua-time-limit 5000  
    #打开redis集群  
    cluster-enabled yes  
    #节点互连超时的阀值  
    cluster-node-timeout 15000  
    cluster-migration-barrier 1  
    slowlog-log-slower-than 10000  
    slowlog-max-len 128  
    notify-keyspace-events ""  
    hash-max-ziplist-entries 512  
    hash-max-ziplist-value 64  
    list-max-ziplist-entries 512  
    list-max-ziplist-value 64  
    set-max-intset-entries 512  
    zset-max-ziplist-entries 128  
    zset-max-ziplist-value 64  
    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



        特殊配置
           记得更改port

1
2
3
4
5
6
       vim /server/cluster/6380/redis.conf
       vim /server/cluster/6381/redis.conf
       vim /server/cluster/6382/redis.conf
       vim /serve/cluster/7380/redis.conf
       vim /server/cluster/7381/redis.conf
       vim /server/cluster/6382/redis.conf




  • 1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    #包含通用配置  
    include /server/cluster/redis-common.conf  
    #监听tcp端口  
    port 6379  
    #最大可用内存  
    maxmemory 100m  
    #内存耗尽时采用的淘汰策略:  
    # volatile-lru -> remove the key with an expire set using an LRU algorithm  
    # allkeys-lru -> remove any key accordingly to the LRU algorithm  
    # volatile-random -> remove a random key with an expire set  
    # allkeys-random -> remove a random key, any key  
    # volatile-ttl -> remove the key with the nearest expire time (minor TTL)  
    # noeviction -> don't expire at all, just return an error on write operations  
    maxmemory-policy allkeys-lru  
    #aof存储文件  
    appendfilename "appendonly-6379.aof"  
    #不开启rdb存储,只用于添加slave过程  
    dbfilename dump-6379.rdb  
    #cluster配置文件(启动自动生成)  
    cluster-config-file nodes-6379.conf  
    #部署在同一机器的redis实例,把auto-aof-rewrite搓开,因为cluster环境下内存占用基本一致.  
    #防止同意机器下瞬间fork所有redis进程做aof rewrite,占用大量内存(ps:cluster必须开启aof)  
    auto-aof-rewrite-percentage 80-100





2:创建集群         1.启动redis服务

1
2
3
4
5
6
    redis-server /server/cluster/6380/redis.conf   
    redis-server /server/cluster/6381/redis.conf
    redis-server /server/cluster/6382/redis.conf
    redis-server /server/cluster/7380/redis.conf
    redis-server /server/cluster/7381/redis.conf
    redis-server /server/cluster/7382/redis.conf



        2.创建集群
1
2
3
4
5
6
7
     cd /server/server/redis-stable/src
     ./redis-trib.rb create --replicas 1 host:6380 host:6381 host:6382 host:7380.....
     #这里注意redis官方翻译过来的集群教程,使用的是127.0.0.1:prot 实际很坑爹,
     #如果你使用的是java并且使用JedisCluster API来访问
     #会报错:too many redis cluster redirection。
     #比如我的本机ip为123.133.122.141,那么就应该使用123.133.122.141:prot
     #而非127.0.0.1 :port



  命令的意义如下:
  • 给定 redis-trib.rb 程序的命令是 create ,这表示我们希望创建一个新的集群。
  • 选项 --replicas 1 表示我们希望为集群中的每个主节点创建一个从节点。
  • 之后跟着的其他参数则是实例的地址列表,我们希望程序使用这些地址所指示的实例来创建新集群。

     以上命令的意思就是让 redis-trib 程序创建一个包含三个主节点和三个从节点的集群。
    redis-trib 会打印出一份预想中的配置给你看,如果你觉得没问题的话,就可以输入 yes ,redis-trib 就会将这份配置应用到集群当中。
      查看集群信息
1
2
3
4
5
6
7
8
9
10
11
12
13
redis-cli -p 6380 -c
127.0.0.1:6380>cluster info
cluster_state:ok
cluster_slots_assigned:16384
cluster_slots_ok:16384
cluster_slots_pfail:0
cluster_slots_fail:0
cluster_known_nodes:6
cluster_size:3
cluster_current_epoch:6
cluster_my_epoch:1
cluster_stats_messages_sent:19161
cluster_stats_messages_received:19161



可以看到当前cluster_state 是ok的



     使用./redis-trib.rb check host port  检查状态

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
    ./redis-trib.rb check 115.28.138.150:6380
    Connecting to node 115.28.138.150:6380: OK
    Connecting to node 115.28.138.150:7380: OK
    Connecting to node 115.28.138.150:7382: OK
    Connecting to node 115.28.138.150:7381: OK
    Connecting to node 115.28.138.150:6382: OK
    Connecting to node 115.28.138.150:6381: OK
    >>> Performing Cluster Check (using node 115.28.138.150:6380)
    M: 3046c8e6efbcea5c77e90483d97b928c5e4fbe05 115.28.138.150:6380
       slots:0-5460 (5461 slots) master
       1 additional replica(s)
    S: 2f045aaecb9addea7ae8ef636e3a5415686889e4 115.28.138.150:7380
       slots: (0 slots) slave
       replicates 3046c8e6efbcea5c77e90483d97b928c5e4fbe05
    S: c09ffe456b44abedd7ba811aaad470b3f7a36ea5 115.28.138.150:7382
       slots: (0 slots) slave
       replicates ed7200bf1cdacc18661d70c39270995582559037
    S: 1866624d3330f6491d5c57e269811694bb061759 115.28.138.150:7381
       slots: (0 slots) slave
       replicates fb5c50e062d0e770aa534315fec1aa11488c228a
    M: ed7200bf1cdacc18661d70c39270995582559037 115.28.138.150:6382
       slots:10923-16383 (5461 slots) master
       1 additional replica(s)
    M: fb5c50e062d0e770aa534315fec1aa11488c228a 115.28.138.150:6381
       slots:5461-10922 (5462 slots) master
       1 additional replica(s)
    [OK] All nodes agree about slots configuration.
    >>> Check for open slots...
    >>> Check slots coverage...
    [OK] All 16384 slots covered.



  


   

     

运维网声明 1、欢迎大家加入本站运维交流群:群②:261659950 群⑤:202807635 群⑦870801961 群⑧679858003
2、本站所有主题由该帖子作者发表,该帖子作者与运维网享有帖子相关版权
3、所有作品的著作权均归原作者享有,请您和我们一样尊重他人的著作权等合法权益。如果您对作品感到满意,请购买正版
4、禁止制作、复制、发布和传播具有反动、淫秽、色情、暴力、凶杀等内容的信息,一经发现立即删除。若您因此触犯法律,一切后果自负,我们对此不承担任何责任
5、所有资源均系网友上传或者通过网络收集,我们仅提供一个展示、介绍、观摩学习的平台,我们不对其内容的准确性、可靠性、正当性、安全性、合法性等负责,亦不承担任何法律责任
6、所有作品仅供您个人学习、研究或欣赏,不得用于商业或者其他用途,否则,一切后果均由您自己承担,我们对此不承担任何法律责任
7、如涉及侵犯版权等问题,请您及时通知我们,我们将立即采取措施予以解决
8、联系人Email:admin@iyunv.com 网址:www.yunweiku.com

所有资源均系网友上传或者通过网络收集,我们仅提供一个展示、介绍、观摩学习的平台,我们不对其承担任何法律责任,如涉及侵犯版权等问题,请您及时通知我们,我们将立即处理,联系人Email:kefu@iyunv.com,QQ:1061981298 本贴地址:https://www.yunweiku.com/thread-116580-1-1.html 上篇帖子: redis sentinel 集群 下篇帖子: Redis Sentinel JAVA客户端
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

扫码加入运维网微信交流群X

扫码加入运维网微信交流群

扫描二维码加入运维网微信交流群,最新一手资源尽在官方微信交流群!快快加入我们吧...

扫描微信二维码查看详情

客服E-mail:kefu@iyunv.com 客服QQ:1061981298


QQ群⑦:运维网交流群⑦ QQ群⑧:运维网交流群⑧ k8s群:运维网kubernetes交流群


提醒:禁止发布任何违反国家法律、法规的言论与图片等内容;本站内容均来自个人观点与网络等信息,非本站认同之观点.


本站大部分资源是网友从网上搜集分享而来,其版权均归原作者及其网站所有,我们尊重他人的合法权益,如有内容侵犯您的合法权益,请及时与我们联系进行核实删除!



合作伙伴: 青云cloud

快速回复 返回顶部 返回列表