Database/Redis

마스터와 슬레이브가 구동되어 있을 때 Failover 하는 방법cluster failover 명령어 사용복제노드에서 cluster failover 명령어를 사용하여 Failover 를 진행할 수 있습니다. ( Failback 도 동일한 개념입니다. ) 123456789101112131415161718127.0.0.1:7000> cluster nodesa8248c454007d610685bba8e805c5a6004867d15 127.0.0.1:7001@17001 slave 869859e396c881b3c26f2a386c1495235225b57b 0 1586026738000 9 connected869859e396c881b3c26f2a386c1495235225b57b 127.0.0.1:7000@17000 mys..
슬롯이란클러스터 키를 해시함수로 적용하여 나온 값을 슬롯에 매핑하여 저장할 수 있게 해주는 기능입니다.해시함수로 적용하여 나온 값에 매핑되는 슬롯이 없으면 데이터가 저장될 수 없습니다. 따라서 슬롯이 정상적인지 확인을 할 수 있어야 합니다. 오픈되어 있는 슬롯, 없는 슬롯을 확인하는 방법check 명령어를 통해서 확인할 수 있습니다.클러스터로 묶인 노드 중 한곳에 접속해서 확인할 수 있습니다. 12345678910111213141516171819202122$ redis-cli --cluster check 127.0.0.1:7000127.0.0.1:7000 (869859e3...) -> 2 keys | 16383 slots | 1 slaves.127.0.0.1:8000 (dcae2685...) -> 0 k..
노드 제거 방법Redis 인터렉티브에서 forget 명령어를 수행하거나redis-cli 명령어에서 del-node 옵션을 부여하여 노드를 제거할 수 있습니다. 클러스터 마스터 노드 제거 방법먼저 2가지 조건을 만족해야 합니다. 슬롯이 비워져 있어야 합니다.마스터 노드에 슬롯이 할당되어 있다면, 먼저 슬롯을 비워주어야 합니다.슬롯을 비우는 방법(다른 노드로 변경하는 방법)은 아래 URL 을 참고해 주세요.https://mozi.tistory.com/384 삭제할 마스터 노드의 복제 노드가 없어야 합니다.노드를 삭제할 때는 다른 모든 노드로부터 forget 명령어를 수행하여야 하는데,삭제할 마스터의 복제노드에서 forget 명령어를 수행할 수 없기 때문에 클러스터는 계속 유지되어 있습니다. 8000 마스터 ..
클러스터 슬롯레디스 클러스터는 0 ~ 16383 까지의 슬롯 값을 가지고 있습니다.또한 이 슬롯 값을 마스터 노드별로 분배할 수 있습니다. 레디스 클러스터에서는 기본적으로 키에 해시 함수를 적용해서 나온 값(슬롯) 노드에 할당을 합니다.즉, 슬롯을 이용하여 특정 노드에 데이터가 몰리지 않도록 분산하기 위해 사용하는 기능이 클러스터 슬롯입니다. 특정 키가 어떤 슬롯에 저장되는지는 레디스의 해시함수 알고리즘에 의해 정해지기 때문에,특정 키는 특정노드에만 저장이 될 것입니다.단 서로 다른 키라고 하더라도 해시함수로 나온 값이 동일할 수 있으므로 하나의 슬로셍는 여러개의 키가 저장될 수 있습니다. 클러스터 노드간에는 해시 알고리즘을 서로 공유하고 있어특정 키가 어떤 노드에 저장되는지, 어떤 슬롯에 저장되어야하는..
클러스터 노드 구성 방법redis-cli 혹은 redis-trib 의 create 옵션을 사용하여 클러스터를 구성하는 방법https://mozi.tistory.com/381 포스팅을 참고해 주세요 매뉴얼을 사용하여 개별 구성하는 방법마스터/복제노드를 사용자가 설정할 수 있습니다.마스터와 복제노드를 사용자가 원하는 만큼 개별적으로 설정할 수 있습니다. 클러스터 매뉴얼대로 개별 구성 방법마스터 노드 한 개로 클러스터 구성하기 1234567891011121314151617181920$ redis-server 7000/redis_7000.conf $ redis-cli -c -p 7000127.0.0.1:7000> cluster infocluster_state:failcluster_slots_assigned:0c..
클러스터 노드 구성 방법redis-cli 혹은 redis-trib.rb 의 create 옵션을 사용하여 클러스터를 구성하는 방법create 옵션을 사용하여 클러스터를 구성할 수 있으며, 이 때는 Redis 엔진에 의해 마스터/복제 노드가 지정됩니다.마스터는 최소 3개 이상으로 구성되어야 합니다.모든 마스터는 동일한 복제 노드 수를 가지고 있어야 합니다. * redis-trib.rb는 레디스5.0 버전부터 redis-cli로 대체되었으며 여기에서는 다루지 않습니다. 매뉴얼을 사용하여 개별 구성하는 방법마스터/복제노드를 사용자가 설정할 수 있습니다.마스터와 복제노드를 사용자가 원하는 만큼 개별적으로 설정할 수 있습니다. 매뉴얼을 사용하여 개별 구성하는 방법을 권장드리며 이유는 포스팅 하단에 작성되어 있습니다..
Redis 클러스터 구동 전 사전 설정redis.conf3개의 노드를 구성할 conf 파일을 설정해 줍니다.cluster-enabled : 클러스터로 사용합니다.cluster-config-file : 노드별로 클러스터 노드 정보를 conf 파일에 저장합니다.cluster-node-timeout : 노드간 통신이 되지 않아 timeout 되는 시간을 설정합니다. 1234567891011121314151617181920212223242526272829$ cat redis_7000.confcluster-enabled yescluster-config-file nodes-7000.confcluster-node-timeout 3000port 7000dir /home/psh/7000appendonly yesdaemo..
레디스 클러스터복제노드를 포함하는 모든 노드가 서로 통신하며 정보를 주고 받습니다.클라이언트는 어느 노드든지 접속이 가능하며 클러스터 구성정보를 가져와서 보유하며입력되는 키에 따라 해당 노드에 접속하여 요청을 처리합니다. 일부 노드가 다운되더라도 다른 노드에 영향을 미치지 않습니다.그러나 과반수 이상의 노드가 다운되는 경우 클러스터가 깨지게 됩니다. 마스터 노드는 1개 이상의 복제 노드를 가질 수 있습니다.노드가 추가되거나 삭제 될 때 클러스터를 중지할 필요는 없으나, 노드 간 키가 이동될 때 해당 키에 락이 걸릴 수 있습니다. 레디스 서버는 노드끼리 통신을 하고 있기 때문에, 별도의 센티넬이 필요치 않습니다.특정 마스터가 다운되는 경우 다른 마스터들이 다운된 마스터의 복제서버로 장애조치를 진행합니다. ..
센티넬의 자동 Failover 기능 센티넬은 마스터, 복제서버가 정상적인지 감지하고 있다가마스터 서버가 다운되면 복제서버를 자동으로 마스터로 승격시켜 주는 기능을 수행합니다. 센티넬 Failover 테스트센티넬이 모니터링 하고 있는 서버모든 레디스는 하나의 서버에 구성되어 있어서 포트로만 구분하였습니다.마스터 6379복제1 6380복제2 6381센티넬 8000 1. 마스터 서버 shutdown 12$ redis-cli -p 6379127.0.0.1:6379> shutdowncs 2. 마스터 된 서버의 info replication 확인복제1(6380) 서버에서 확인을 했으며 복제2(6381) 서버가 마스터로 승격된 것을 확인할 수 있습니다. 1234567891011121314151617181920127...
센티넬이란일반적으로 운영환경에서는 마스터와 복제로 구성됩니다.운영 중 예기치 않은 이슈로 마스터가 다운되면, 서버 담당자는 복제를 마스터로 올리고 클라이언트가 새로운 마스터에 접속할 수 있도록 해야 합니다. 센티넬은 마스터와 복제서버의 네트워크 통신이 가능한지 시도하고 있다가, 마스터에서 통신이 되지 않으면 자동으로 복제를 마스터로 올립니다. 센티넬의 기능모니터링센티넬은 마스터, 복제서버가 제대로 동작하고 있는지 주기적으로 검사합니다. 자동 장애조치마스터가 예기치 않게 다운되었을 때 복제 서버를 마스터로 올립니다.복제 서버가 여러개 있을 경우 다른 복제서버는 새로운 마스터로부터 데이터를 받을 수 있도록 재 구성합니다.기존 마스터가 구동되는 경우 복제로 전환하여 새로운 마스터로부터 데이터를 받을 수 있도록..
꽁담
'Database/Redis' 카테고리의 글 목록 (2 Page)