ปัญหาการ 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
ไว้ลองใช้งานดูหน่อย