การติดตั้งและ High Availability Redis ใน NodeJS

ในการตั้งค่า Redis Replication และ High Availability ใน NodeJS ให้ทำตามขั้นตอนเหล่านี้:

ติดตั้ง Redis

ก่อนอื่น คุณต้องติดตั้ง Redis บนเซิร์ฟเวอร์ของคุณ คุณสามารถดาวน์โหลดได้จากเว็บไซต์อย่างเป็นทางการหรือใช้ตัวจัดการแพ็คเกจเช่น apt หรือ brew

กำหนดค่า Redis สำหรับ Replication

เปิด Redis ไฟล์การกำหนดค่า(redis.conf) และทำการเปลี่ยนแปลงต่อไปนี้:

# Enable replication  
replicaof <master_ip> <master_port>  

แทนที่ <master_ip> ด้วย <master_port> ที่อยู่ IP และพอร์ตของ Redis เซิร์ฟเวอร์หลัก

ทาร์ต Redis จำลอง

เริ่มหลาย Redis อินสแตนซ์บนเซิร์ฟเวอร์หรือพอร์ตต่างๆ ซึ่งจะทำหน้าที่เป็นตัวจำลองของต้นแบบ ใช้ Redis ไฟล์การกำหนดค่าเดียวกันสำหรับแต่ละอินสแตนซ์

ใช้ Redis Client ใน NodeJS

ในแอปพลิเคชัน NodeJS ของคุณ ให้ใช้ Redis ไลบรารีไคลเอ็นต์ เช่น "ioredis" เพื่อเชื่อมต่อกับ Redis อินสแตนซ์ ไคลเอนต์จะจัดการคำขอเฟลโอเวอร์และกำหนดเส้นทางไปยังเซิร์ฟเวอร์ที่เหมาะสมโดยอัตโนมัติ

ตัวอย่างการเชื่อมต่อกับ Redis "ioredis" ใน NodeJS:

const Redis = require('ioredis');  
  
const redis = new Redis({  
  sentinels: [{ host: 'sentinel_ip', port: sentinel_port }],  
  name: 'mymaster',  
  role: 'slave',  
});  

แทนที่ 'sentinel_ip' และ sentinel_port ด้วยที่อยู่ IP และพอร์ตของ Redis Sentinel เซิร์ฟเวอร์ ซึ่งตรวจสอบต้นแบบและจัดการการเฟลโอเวอร์

เฝ้าสังเกต Redis Sentinel

Redis Sentinel มีหน้าที่รับผิดชอบในการตรวจสอบ Redis อินสแตนซ์และจัดการกับการเฟลโอเวอร์ ติดตั้งและกำหนดค่า Redis Sentinel บนเซิร์ฟเวอร์แยกต่างหาก และเพิ่มรายละเอียดในแอปพลิเคชัน NodeJS

ตัวอย่างการเชื่อมต่อกับ Redis Sentinel "ioredis" ใน NodeJS:

const Redis = require('ioredis');  
  
const sentinel = new Redis({  
  sentinels: [  
    { host: 'sentinel1_ip', port: sentinel1_port },  
    { host: 'sentinel2_ip', port: sentinel2_port },  
    // Add more Sentinel servers if needed  
  ],  
  name: 'mymaster',  
});  
  
const redis = new Redis({  
  sentinels: [  
    { host: 'sentinel1_ip', port: sentinel1_port },  
    { host: 'sentinel2_ip', port: sentinel2_port },  
    // Add more Sentinel servers if needed  
  ],  
  name: 'mymaster',  
});  

แทนที่ 'sentinel1_ip', sentinel1_port, , ฯลฯ ด้วยที่อยู่ IP และพอร์ตของ 'sentinel2_ip' เซิร์ฟเวอร์ sentinel2_port Redis Sentinel

ทดสอบความล้มเหลวและ High Availability

หากต้องการทดสอบ Redis replication และ high availability คุณสามารถจำลองความล้มเหลวของเซิร์ฟเวอร์หลักได้ Redis Sentinel ควรเลื่อนระดับหนึ่งในแบบจำลองไปยังต้นแบบใหม่โดยอัตโนมัติและจัดการการเฟลโอเวอร์ได้อย่างราบรื่น

 

เมื่อทำตามขั้นตอนเหล่านี้ คุณจะสามารถบรรลุ Redis Replication และ High Availability ในแอปพลิเคชัน NodeJS ของคุณ ซึ่งรับประกันความซ้ำซ้อนของข้อมูลและการดำเนินการที่ต่อเนื่องแม้ในกรณีที่เซิร์ฟเวอร์ล้มเหลว