• redis主从和集群搭建


    主从搭建

    redis的主从搭建非常简单,打开配置文件6379.conf,只需要将主节点的protected-mode设置为no,然后在从节点配置中加入:slaveof <masterip> <masterport>,启动即可
    

    集群

    redis集群的TCP端口

    每个redis集群节点都需要两个TCP端口,用户端口和集群间节点通信的端口,如6379和16379,集群间节点通信端口为用户端口加上10000
    

    redis集群数据分片

    redis集群数据分片是通过哈希槽来实现的,redis集群中有16384个哈希槽,
    

    redis集群的主从模式

    为了提高集群的可用性,通常会为集群中每个节点都配置一个从节点,这样在集群中任务节点down机之后,从节点会顶替原来的主节点成为新的主节点,保证集群的正常运行
    

    集群的一致性保证

    redis集群无法保证强一致性。某些情况下,redis集群会丢失客户端提交的写操作。丢失的原因:
    1、redis采用异步复制。
    当接收到用户的写请求之后,redis会开启一个异步线程将写请求异步同步到集群中的其他节点上,并立即返回处理结果。因为返回给用户处理结果的时候异步同步数据并没有完成,如果一个节点在完成同步的时候down机,并没有将数据复制到从节点上,就会导致数据的不一致
    	
    2、某个节点down机之后迟迟没有选举出主节点,会导致同步到该节点上的数据丢失。如果主节点down机,该节点拒绝提供写服务
    

    redis集群搭建

    1、创建目录:mkdir /usr/local/redis-cluster
    2、创建集群节点:mkdir -p 9001/data 9002/data 9003/data 9004/data 9005/data 9006/data
    3、将已经安装好的redis实例的src目录下的运行脚本考到bin目录下:cp mkreleasehdr.sh redis-benchmark redis-check-aof redis-check-dump redis-cli redis-server redis-trib.rb /usr/local/redis-cluster/bin
    4、复制一个redis实例到9001:cp /usr/local/redis/* 9001
    5、进入9001并修改redis.conf文件:
    port 9001
    daemonize yes
    bind 192.168.40.130
    dir /usr/local/redis-cluster/9001/data/
    pidfile /var/run/redis_9001.pid
    cluster-enabled yes
    cluster-config-file nodes9001.conf
    cluster-node-timeout 15000
    appendonly yes
    
    6、将该实例复制到其他的文件夹下并修改配置
    7、启动6个节点
    /usr/local/bin/redis-server /usr/local/redis-cluster/9001/redis.conf 
    /usr/local/bin/redis-server /usr/local/redis-cluster/9002/redis.conf 
    /usr/local/bin/redis-server /usr/local/redis-cluster/9003/redis.conf 
    /usr/local/bin/redis-server /usr/local/redis-cluster/9004/redis.conf 
    /usr/local/bin/redis-server /usr/local/redis-cluster/9005/redis.conf 
    /usr/local/bin/redis-server /usr/local/redis-cluster/9006/redis.conf
    8、安装集群所需软件:
    yum install ruby
    yum install rubygems
    gem install redis 
    9、创建集群:
    /usr/local/redis-cluster/bin/redis-trib.rb create --replicas 1 192.168.119.131:9001 192.168.119.131:9002 192.168.119.131:9003 192.168.119.131:9004 192.168.119.131:9005 192.168.119.131:9006
    10、随便连上一个节点测试:
    /usr/local/redis-cluster/bin/redis-cli -c -h 192.168.119.131 -p 9001
    cluster info
    cluster nodes
    11、搭建完成
  • 相关阅读:
    Java这样学,Offer随便拿,学习方法和面试经验分享
    LeetCode All in One 题目讲解汇总(持续更新中...)
    nodejs连接sqlserver
    配置-XX:+HeapDumpOnOutOfMemoryError 对于OOM错误自动输出dump文件
    list.ensureCapacity竟然会变慢
    java List.add操作可以指定位置
    java MAT 分析
    java STW stop the world 哈哈就是卡住了
    python中的is判断引用的对象是否一致,==判断值是否相等
    卡尔曼滤波(Kalman Filter)
  • 原文地址:https://www.cnblogs.com/canmeng-cn/p/9512828.html
Copyright © 2020-2023  润新知