ว่าง ๆ มาดูกันว่า Redis มีความสามารถอะไรที่น่าสนใจบ้าง
บางอย่างก็น่ารู้ แต่บางอย่างก็ไม่น่ารู้
ก่อนอื่นต้องทำความรู้จักกับ Redis ก่อนว่า
มันคือ No-SQL database ประเภทหนึ่ง
ซึ่งจะเรียกว่า Key-value database
โดยที่รูปแบบข้อมูลมีทั้ง string, hash, list, set และ sorted set
ทำให้ถูกเรียกว่าเป็น Data Structure Database
การทำงานโดยพื้นฐานข้อมูลจะถูกเก็บลงใน Memory
ทำให้ Redis มีการทำงานที่รวดเร็วมาก ๆ แต่ก็จะมีการบันทึกแบบ snapshot ลงใน file system ด้วย ทำให้เมื่อ shutdown Redis ลงไปแล้ว เมื่อ start ขึ้นมาใหม่ ข้อมูลจะยังคงอยู่ด้วย แต่ให้ระวังเรื่องการกำหนด config ของการ snapshot ด้วย
แต่ Redis ก็มีเรื่องน่ารู้อื่น ๆ พอสมควร เช่น
- Redis 2.0 ขึ้นมา มีรูปแบบการใช้งาน Pub-Sub มาให้ด้วย
- Key ที่จัดเก็บสามารถกำหนดอายุได้ด้วยนะ อย่าลืม !!
- การใช้งาน Redis ควรออกแบบ key ให้ดี รวมทั้งกำหนด memory policy เมื่อ memory จะเต็มด้วย ว่าจะทำการจัดการข้อมูลอย่างไร
- ถ้าต้องการใช้งาน Redis เพื่อจัดเก็บข้อมูลชั่วคราวเพียงอย่างเดียว ต้องปิดขั้นตอนของการบันทึกหรือ snapshot ซะ เพราะมันเกินความจำเป็น
- ถ้าต้องการจัดเก็บข้อมูลง file system แล้ว เช่น AOF และ RDS ควรกำหนด policy ให้เหมาะกับงาน มิเช่นนั้นอาจจะทำให้ Redis ช้าลงอย่างมากได้
- Redis สามารถทำ cluster ได้นะ project มันชื่อ Sentinel
- การติดต่อมายัง Redis server ควรต้องติดต่อผ่าน connection pool
- Redis มาสามารถเก็บข้อมูลได้ 2^32 key หรือ 4,000 ล้าน แต่ถ้าจะให้มีประสิทธิภาพดี ก็อยู่ที่ 250 ล้าน key ต่อ 1 instance
- ข้อมูลที่ถูกจัดเก็บในแต่ละ key มีขนาดได้ถึง 2^32 element
- สามารถเรียนรู้การใช้งานคำสั่งต่าง ๆ ของ Redis ผ่าน web ได้ก่อน
- มี module เสริมใช้งานอีกนะ ทั้ง RedisSearch, RedisJSON และ RedisGraph เป็นต้น