ปัญหาการ scale Redis บน Google Cloud Memorystore for Redis
เนื่องจาก Redis ทำงานแบบ Single thread
ทำให้ถ้ามีการทำงานที่ช้า ๆ อาจจะส่งผลต่อการทำงานอื่น ๆ ได้
แต่ละ scale ด้วยการขยายเครื่อง ก็ไม่การันตีว่าจะดีขึ้น
หนึ่งในคำแนะนำคือ การใช้งาน Proxy มาช่วย
โดยตัวที่น่าสนใจคือ Twemproxy
ซึ่งพัฒนาจาก Twitter
ดังนั้นจึงมาลองทำความรู้จักกันหน่อย

การทำงานแสดงดังรูป

เป้าหมายของ Twemproxy

  • Scale redis ได้ง่ายขึ้น โดยไม่ต้องทำ cluster ใด ๆ เพียงแค่ใสเพิ่ม Redis server เท่านั้น
  • ลดจำนวน connection ไปยัง Redis
  • ทำการ sharding data ให้แบบอัตโนมัติไปยัง Redis server หลาย ๆ ได้เลย โดยใช้ consistency hashing รวมทั้งใส่ค่า weight ได้
  • สามารถ configuration ได้ง่าย
  • มีค่า metric ต่าง ๆ สำหรับการ monitoring ต่อไป ซึ่งเชื่อมต่อได้เยอะ
  • สนับสนุนทั้ง Redis และ Memcached

ไว้ลองใช้งานดูหน่อย