Computer >> บทช่วยสอนคอมพิวเตอร์ >  >> การเขียนโปรแกรม >> ฐานข้อมูล

ค้นพบ 5 กรณีการใช้งาน Redis ที่จำเป็นสำหรับแอปพลิเคชันสมัยใหม่

บทนำ

เผยแพร่ครั้งแรกเมื่อวันที่ 7 พฤศจิกายน 2017 ที่ ObjectRocket.com/blog

โพสต์นี้อธิบายกรณีการใช้งาน Redis ที่พบบ่อยที่สุดและลักษณะเฉพาะที่แตกต่างกันที่ส่งผลต่อการเลือกใช้เหล่านี้

ค้นพบ 5 กรณีการใช้งาน Redis ที่จำเป็นสำหรับแอปพลิเคชันสมัยใหม่

1. Session Cache

หนึ่งในกรณีการใช้งาน Redis ที่ชัดเจนที่สุดคือการใช้เป็น session cache ข้อได้เปรียบของการใช้ Redis แทน session stores อื่นๆ เช่น Memcached คือ Redis ให้ persistence (ความคงทน) แม้การดูแล cache จะไม่ได้เป็น mission-critical ทางด้าน consistency โดยทั่วไป แต่ผู้ใช้ส่วนใหญ่อาจผิดหวังหาก session ตะกร้าสินค้าทั้งหมดหายไป

โชคดีที่ด้วยความนิยมของ Redis ที่เพิ่มขึ้นตลอดปีที่ผ่านมา คุณสามารถหาเอกสารได้อย่างง่ายดายเกี่ยวกับวิธีใช้ Redis อย่างเหมาะสมสำหรับ session caching แม้ Magento ซึ่งเป็นแพลตฟอร์มอีคอมเมิร์ซที่รู้จักดี ก็มีปลั๊กอินสำหรับ Redis

2. Full-Page Cache (FPC)

นอกเหนือจาก session tokens พื้นฐานแล้ว Redis ให้แพลตฟอร์ม Full-page cache (FPC) ที่ตรงไปตรงมาในการดำเนินการ Consistency เป็นปัจจัยที่สำคัญที่นี่เช่นกัน แม้ข้ามการรีสตาร์ทอินสแตนซ์ Redis ด้วย disk persistence ผู้ใช้ของคุณจะไม่เห็นการลดลงของความเร็วในการโหลดหน้า — การเปลี่ยนแปลงที่มากมายจากสิ่งที่คล้ายกับ PHP native FPC

Magento ให้ปลั๊กอินเพื่อใช้ Redis เป็น full page cache backend

สำหรับผู้ใช้ WordPress Pantheon มีปลั๊กอินที่ยอดเยี่ยมชื่อ wp-redis เพื่อช่วยให้คุณได้ความเร็วในการโหลดหน้าที่เร็วที่สุดที่เคยเห็น!

3. Queues (คิว)

การใช้ประโยชน์จาก Redis in-memory storage engine สำหรับ to-do list และ set operations ทำให้ Redis เป็นแพลตฟอร์มที่ยอดเยี่ยมสำหรับ message queue การโต้ตอบกับ Redis ในฐานะคิวควรรู้สึก native สำหรับผู้ที่เคยใช้ push/pop operations กับ lists ในภาษาโปรแกรมมิ่ง เช่น Python

หากคุณค้นหา Redis queues บน Google คุณจะเห็นว่ามีโครงการโอเพนซอร์สจำนวนมากที่มุ่งเน้นทำให้ Redis เป็น backend utility สำหรับความต้องการ queuing ทั้งหมดของคุณ Celery ตัวอย่างเช่น มี backend ที่ใช้ Redis เป็น broker ซึ่งคุณสามารถดูได้

4. Leaderboards และ Counting (กระดานนำและนับ)

Redis ทำงานได้ดีกับการเพิ่มและลด (increments และ decrements) เนื่องจากมันเป็น in-memory Sets และ sorted sets ทำให้ชีวิตของเราง่ายขึ้นเมื่อเราทำการดำเนินการประเภทนี้ Redis 恰好提供โครงสร้างข้อมูลทั้งสองประเภทนี้ ดังนั้นเพื่อดึง top 10 users จาก sorted set — เราจะเรียกมันว่า "user_scores" — คุณสามารถรันโค้ดต่อไปนี้:

ZRANGE user_scores 0 10

โดยสิ่งนี้สมมติว่าคุณจัดอันดับผู้ใช้ด้วยคะแนนที่เพิ่มขึ้น หากคุณต้องการคืนค่าทั้งผู้ใช้และคะแนนของพวกเขา คุณสามารถรันโค้ดต่อไปนี้:

ZRANGE user_scores 0 10 WITHSCORES

Agora Games มีตัวอย่าง โดยใช้ Ruby ของ leaderboard ที่ใช้ Redis เป็น datastore

5. Publish-Subscribe (เผยแพร่-สมัครรับข้อมูล)

Redis มีคุณสมบัติ Publish-Subscribe (Pub/Sub) กรณีการใช้งานสำหรับ Pub/Sub ไม่มีขีดจำกัด ฉันเคยเห็นคนใช้มันสำหรับการเชื่อมต่อเครือข่ายสังคม สำหรับการทริกเกอร์สคริปต์ dựa trênเหตุการณ์ Pub/Sub และแม้แต่ระบบแชทที่สร้างขึ้นด้วย Redis Pub/Sub!

จากคุณสมบัติทั้งหมดที่ Redis ให้มา ฉันรู้สึกว่าคุณสมบัตินี้ได้รับความสนใจน้อยที่สุด แม้ว่ามันจะมีอะไรให้มากมายแก่ผู้ใช้

เรียนรู้เพิ่มเติมเกี่ยวกับ Rackspace DBA Services

ใช้แท็บ Feedback เพื่อแสดงความคิดเห็นหรือถามคำถาม คุณยังสามารถเริ่มการสนทนากับเราได้