สรุป (TL; DR)
อัปเดต 3 มิถุนายน 2560
Redis มีประสิทธิภาพมากขึ้นเป็นที่นิยมมากขึ้นและรองรับได้ดีกว่า memcached Memcached สามารถทำสิ่งเล็กน้อยที่ Redis ทำได้ Redis จะดีกว่าแม้จะมีฟีเจอร์ที่ทับซ้อนกัน
สำหรับสิ่งใหม่ใช้ Redis
Memcached vs Redis: การเปรียบเทียบโดยตรง
เครื่องมือทั้งสองมีประสิทธิภาพที่เก็บข้อมูลในหน่วยความจำที่รวดเร็วและมีประโยชน์ซึ่งเป็นแคช ทั้งสองอย่างสามารถช่วยเร่งความเร็วแอปพลิเคชันของคุณโดยการแคชผลลัพธ์ฐานข้อมูล, แฟรกเมนต์ HTML หรือสิ่งอื่น ๆ ที่อาจมีราคาแพงในการสร้าง
จุดที่ต้องพิจารณา
เมื่อใช้เพื่อสิ่งเดียวกันนี่คือการเปรียบเทียบโดยใช้ "คะแนนที่ควรพิจารณา" ของคำถามเดิม
- ความเร็วในการอ่าน / เขียน : ทั้งสองอย่างรวดเร็วมาก การวัดประสิทธิภาพแตกต่างกันไปตามปริมาณงานรุ่นและปัจจัยอื่น ๆ แต่โดยทั่วไปแล้วการแสดงสีแดงให้เร็วหรือเกือบเร็วเท่ากับ memcached ฉันแนะนำ Redis แต่ไม่ใช่เพราะ memcached ช้า มันไม่ใช่.
- การใช้หน่วยความจำ : Redis จะดีกว่า
- memcached: คุณระบุขนาดแคชและเมื่อคุณแทรกไอเท็ม daemon จะโตขึ้นอย่างรวดเร็วมากกว่าขนาดนี้เล็กน้อย ไม่มีทางที่จะเรียกคืนพื้นที่ใด ๆ ได้จริง ๆ ไม่ต้องรีสตาร์ท memcached คีย์ทั้งหมดของคุณอาจหมดอายุคุณสามารถล้างข้อมูลในฐานข้อมูลและจะยังคงใช้ RAM เต็มรูปแบบที่คุณกำหนดค่าด้วย
- redis: การตั้งค่าขนาดสูงสุดนั้นขึ้นอยู่กับคุณ Redis จะไม่ใช้มากกว่าที่เคยมีและจะให้หน่วยความจำกลับมาที่คุณไม่ได้ใช้อีกต่อไป
- ฉันเก็บประโยคแบบสุ่ม 100,000 ~ 2KB (~ 200MB) ไว้ในประโยคทั้งสอง การใช้แรม Memcached เพิ่มขึ้นเป็น ~ 225MB การใช้ RAM Redis เพิ่มขึ้นเป็น ~ 228MB หลังจากล้างทั้งสองแล้ว Redis ก็ลดลงเหลือ ~ 29MB และ memcached จะอยู่ที่ ~ 225MB มีประสิทธิภาพคล้ายกันกับวิธีจัดเก็บข้อมูล แต่มีเพียงคนเดียวที่สามารถเรียกคืนได้
- การดัมพ์ I / O ของดิสก์ : การชนะที่ชัดเจนสำหรับ Redis เนื่องจากการทำเช่นนี้เป็นค่าเริ่มต้นและมีความคงทนที่กำหนดค่าได้มาก Memcached ไม่มีกลไกสำหรับการถ่ายโอนข้อมูลไปยังดิสก์โดยไม่ใช้เครื่องมือของบุคคลที่สาม
- การปรับสเกล : ทั้งคู่ให้พื้นที่ว่างมากสำหรับคุณก่อนที่คุณจะต้องการแคชมากกว่าหนึ่งอินสแตนซ์ Redis มีเครื่องมือที่จะช่วยให้คุณก้าวข้ามสิ่งนั้นไปได้ขณะที่ memcached ไม่มี
memcached
Memcached เป็นเซิร์ฟเวอร์แคชแบบง่าย อนุญาตให้คุณจัดเก็บคู่ของคีย์ / ค่าที่ค่าถูก จำกัด ให้เป็นสตริงสูงสุด 1MB
มันดีที่นี่ แต่ก็แค่นั้นแหละ คุณสามารถเข้าถึงค่าเหล่านั้นด้วยกุญแจของพวกเขาด้วยความเร็วสูงมากมักจะทำให้เครือข่ายที่มีอยู่อิ่มตัวหรือแบนด์วิดธ์หน่วยความจำ
เมื่อคุณรีสตาร์ท memcached ข้อมูลของคุณจะหายไป นี่เป็นสิ่งที่ดีสำหรับแคช คุณไม่ควรเก็บอะไรที่สำคัญไว้ที่นั่น
หากคุณต้องการประสิทธิภาพสูงหรือความพร้อมใช้งานสูงมีเครื่องมือผลิตภัณฑ์และบริการของบุคคลที่สาม
Redis
Redis สามารถทำงานเช่นเดียวกับ memcached สามารถและสามารถทำได้ดีกว่า
Redis สามารถทำหน้าที่เป็นแคชได้เช่นกัน มันสามารถเก็บคู่ของคีย์ / ค่าได้เช่นกัน ในสีแดงพวกเขายังสามารถได้ถึง 512MB
คุณสามารถปิดการคงอยู่และมันจะสูญเสียข้อมูลของคุณอย่างมีความสุขเมื่อรีสตาร์ทเช่นกัน หากคุณต้องการให้แคชของคุณอยู่รอดรีสตาร์ทจะช่วยให้คุณทำเช่นนั้นได้ ที่จริงแล้วนั่นคือค่าเริ่มต้น
มันเร็วมากเช่นกันมักถูก จำกัด ด้วยแบนด์วิดท์เครือข่ายหรือหน่วยความจำ
หากอินสแตนซ์หนึ่งของ redis / memcached มีประสิทธิภาพไม่เพียงพอสำหรับเวิร์กโหลดของคุณ redis เป็นตัวเลือกที่ชัดเจน Redis รวมถึงการสนับสนุนคลัสเตอร์และมาพร้อมกับเครื่องมือความพร้อมใช้งานสูง ( redis-sentinel ) ขวา "ในกล่อง" ในช่วงไม่กี่ปีที่ผ่านมา Redis ก็กลายเป็นผู้นำที่ชัดเจนในการใช้เครื่องมือของบุคคลที่สาม บริษัท เช่น Redis Labs, Amazon และอื่น ๆ เสนอเครื่องมือและบริการ redis ที่มีประโยชน์มากมาย ระบบนิเวศรอบ Redis มีขนาดใหญ่กว่ามาก จำนวนการปรับใช้ขนาดใหญ่ในขณะนี้น่าจะมากกว่า memcached
The Redis Superset
Redis เป็นมากกว่าแคช มันเป็นเซิร์ฟเวอร์โครงสร้างข้อมูลในหน่วยความจำ ด้านล่างคุณจะพบภาพรวมอย่างรวดเร็วของสิ่งต่าง ๆ ที่ Redis ทำได้นอกเหนือจากการเป็นแคช / คีย์ / ค่าอย่างง่ายเช่น memcached คุณสมบัติส่วนใหญ่ของ redis เป็นสิ่งที่ memcached ไม่สามารถทำได้
เอกสาร
Redis เป็นเอกสารที่ดีกว่า memcached แม้ว่าสิ่งนี้อาจเป็นเรื่องส่วนตัว แต่ดูเหมือนว่าจะเป็นจริงมากขึ้นเรื่อย ๆ ตลอดเวลา
redis.ioเป็นแหล่งข้อมูลการนำทางที่ง่ายดาย มันช่วยให้คุณลอง redis ในเบราว์เซอร์และให้ตัวอย่างแบบอินเทอร์แอคทีฟกับแต่ละคำสั่งในเอกสาร
ขณะนี้มีสแต็กโอเวอร์โฟลว์มากถึง 2 เท่าสำหรับ redis เป็น memcached ผลการค้นหาของ Google มากถึง 2 เท่า ตัวอย่างที่เข้าถึงได้ง่ายขึ้นในภาษาอื่น ๆ พัฒนาอย่างต่อเนื่อง การพัฒนาลูกค้าที่ใช้งานมากขึ้น การวัดเหล่านี้อาจไม่ได้มีความหมายแยกกันมากนัก แต่เมื่อใช้ร่วมกันพวกเขาจะวาดภาพที่ชัดเจนว่าการสนับสนุนและเอกสารประกอบสำหรับ Redis นั้นใหญ่กว่าและทันสมัยกว่ามาก
โดยค่าเริ่มต้น redis ยืนยันข้อมูลของคุณไปยังดิสก์โดยใช้กลไกที่เรียกว่าสแนปชอต หากคุณมี RAM เพียงพอก็สามารถเขียนข้อมูลทั้งหมดลงดิสก์ได้เกือบจะไม่มีประสิทธิภาพลดลง เกือบฟรีแล้ว!
ในโหมดสแนปชอตมีโอกาสที่ความผิดพลาดฉับพลันอาจส่งผลให้ข้อมูลสูญหายเล็กน้อย หากคุณต้องการตรวจสอบให้แน่ใจว่าไม่มีข้อมูลสูญหายไม่ต้องกังวล redis มีข้อมูลของคุณอยู่ที่นั่นด้วยโหมด AOF (Append Only File) ในข้อมูลโหมดการคงอยู่นี้สามารถซิงค์กับดิสก์ได้ตามที่เขียน วิธีนี้สามารถลดปริมาณงานการเขียนสูงสุดได้อย่างรวดเร็ว แต่ดิสก์ของคุณสามารถเขียนได้เร็ว แต่ก็ควรจะค่อนข้างเร็ว
มีตัวเลือกการกำหนดค่ามากมายเพื่อปรับแต่งการคงอยู่หากคุณต้องการ แต่ค่าเริ่มต้นนั้นสมเหตุสมผลมาก ตัวเลือกเหล่านี้ทำให้การติดตั้ง redis นั้นเป็นเรื่องง่ายและปลอดภัยในการจัดเก็บข้อมูล มันเป็นฐานข้อมูลจริง
ประเภทข้อมูลจำนวนมาก
Memcached ถูก จำกัด ไว้ที่สตริง แต่ Redis เป็นเซิร์ฟเวอร์โครงสร้างข้อมูลที่สามารถรองรับชนิดข้อมูลที่หลากหลาย นอกจากนี้ยังมีคำสั่งที่คุณต้องการใช้ประโยชน์จากประเภทข้อมูลเหล่านั้นให้มากที่สุด
ข้อความธรรมดาหรือค่าไบนารีที่มีขนาดสูงสุด 512MB นี่เป็นเพียงชนิดข้อมูล redis และการแชร์ memcached แม้ว่าสตริง memcached จะถูก จำกัด ที่ 1MB
Redis ให้เครื่องมือเพิ่มเติมสำหรับการใช้ประโยชน์จากประเภทข้อมูลนี้โดยเสนอคำสั่งสำหรับการดำเนินการระดับบิตการจัดการระดับบิตสนับสนุนการเพิ่ม / ลดจำนวนจุดลอยตัวแบบสอบถามแบบพิสัยและการดำเนินการแบบหลายคีย์ Memcached ไม่รองรับสิ่งเหล่านี้
สตริงมีประโยชน์สำหรับกรณีการใช้งานทุกประเภทซึ่งเป็นเหตุผลที่ memcached มีประโยชน์กับประเภทข้อมูลนี้เพียงอย่างเดียว
Hashes นั้นเหมือนกับที่เก็บค่าคีย์ภายในที่จัดเก็บค่าคีย์ พวกเขาแมประหว่างเขตข้อมูลสตริงและค่าสตริง การแมปฟิลด์ -> ค่าโดยใช้แฮชจะมีพื้นที่ว่างที่มีประสิทธิภาพมากกว่าการแม็พคีย์ -> โดยใช้สตริงปกติ
แฮชมีประโยชน์ในฐานะเนมสเปซหรือเมื่อคุณต้องการจัดกลุ่มคีย์จำนวนมากแบบตรรกะ ด้วยแฮชคุณสามารถคว้าสมาชิกทั้งหมดได้อย่างมีประสิทธิภาพหมดอายุสมาชิกทั้งหมดเข้าด้วยกันลบสมาชิกทั้งหมดเข้าด้วยกัน ฯลฯ เหมาะสำหรับกรณีการใช้งานใด ๆ ที่คุณมีคู่คีย์ / ค่าหลายคู่ที่จำเป็นต้องจัดกลุ่ม
ตัวอย่างหนึ่งที่ใช้แฮชคือการจัดเก็บโปรไฟล์ผู้ใช้ระหว่างแอปพลิเคชัน แฮช Redis ที่จัดเก็บด้วย ID ผู้ใช้เป็นคีย์จะช่วยให้คุณสามารถจัดเก็บข้อมูลจำนวนมากเกี่ยวกับผู้ใช้ได้ตามต้องการในขณะที่ยังคงเก็บไว้ภายใต้คีย์เดียว ข้อดีของการใช้แฮชแทนการทำให้ซีเรียลโปรไฟล์เป็นสตริงคือคุณสามารถมีแอพพลิเคชั่นต่าง ๆ อ่าน / เขียนฟิลด์ต่าง ๆ ภายในโปรไฟล์ผู้ใช้โดยไม่ต้องกังวลเกี่ยวกับแอพหนึ่งที่เอาชนะการเปลี่ยนแปลงที่เกิดขึ้นโดยคนอื่น ๆ ข้อมูล).
รายการ Redis เป็นชุดคำสั่งของสตริง มีการปรับให้เหมาะสมสำหรับการแทรกการอ่านหรือการลบค่าจากด้านบนหรือด้านล่าง (aka: ซ้ายหรือขวา) ของรายการ
Redis มีคำสั่งมากมายสำหรับการใช้ประโยชน์จากลิสต์รวมถึงคำสั่งในการพุช / ป๊อปไอเท็มพุช / ป๊อประหว่างรายการ
รายการทำให้ทนทานยิ่งยวดอะตอมคิว ใช้งานได้ดีกับคิวงาน, บันทึก, บัฟเฟอร์, และกรณีการใช้งานอื่น ๆ
ชุดคือชุดที่ไม่ซ้ำกันของค่าที่ไม่ซ้ำกัน มีการปรับให้เหมาะสมเพื่อให้คุณตรวจสอบได้อย่างรวดเร็วว่ามีค่าอยู่ในชุดเพิ่ม / ลบค่าอย่างรวดเร็วและเพื่อวัดความซ้ำซ้อนกับชุดอื่นหรือไม่
สิ่งเหล่านี้ยอดเยี่ยมสำหรับสิ่งต่าง ๆ เช่นรายการควบคุมการเข้าถึงตัวติดตามผู้เยี่ยมชมที่ไม่ซ้ำกันและอื่น ๆ อีกมากมาย ภาษาโปรแกรมส่วนใหญ่มีบางอย่างที่คล้ายกัน (มักเรียกว่าชุด) นี่เป็นแบบนั้นกระจายกันเท่านั้น
Redis ให้หลาย ๆ คำสั่งเพื่อจัดการชุด มีคนที่เห็นได้ชัดเช่นการเพิ่มการลบและการตรวจสอบชุดที่มีอยู่ ดังนั้นคำสั่งที่ชัดเจนน้อยกว่าเช่นการ popping / อ่านรายการสุ่มและคำสั่งสำหรับการดำเนินการสหภาพและทางแยกกับชุดอื่น ๆ
ชุดเรียง ( คำสั่ง )
ชุดที่เรียงเป็นชุดของค่าที่ไม่ซ้ำกัน คำสั่งเหล่านี้ตามชื่อหมายถึงถูกสั่ง พวกเขาได้รับคำสั่งจากคะแนนแล้วพจนานุกรม
ชนิดข้อมูลนี้เหมาะสำหรับการค้นหาอย่างรวดเร็วด้วยคะแนน การรับค่าสูงสุดต่ำสุดหรือช่วงใด ๆ ในระหว่างนั้นจะเร็วมาก
หากคุณเพิ่มผู้ใช้ไปยังกลุ่มที่เรียงลำดับพร้อมกับคะแนนสูงสุดของพวกเขาคุณจะมีกระดานผู้นำที่สมบูรณ์แบบ เมื่อคะแนนสูงสุดใหม่เข้ามาเพียงแค่เพิ่มพวกเขาไปยังชุดอีกครั้งด้วยคะแนนสูงของพวกเขาและมันจะสั่งคณะผู้นำของคุณอีกครั้ง ยังยอดเยี่ยมสำหรับการติดตามครั้งล่าสุดที่ผู้ใช้เข้าชมและผู้ที่ทำงานในแอปพลิเคชันของคุณ
การจัดเก็บค่าที่มีคะแนนเท่ากันจะทำให้เรียงลำดับพจนานุกรม (คิดตามตัวอักษร) สิ่งนี้มีประโยชน์สำหรับสิ่งต่าง ๆ เช่นคุณลักษณะการทำให้สมบูรณ์อัตโนมัติ
คำสั่งชุดที่เรียงลำดับจำนวนมากคล้ายกับคำสั่งสำหรับชุดบางครั้งก็มีพารามิเตอร์คะแนนเพิ่มเติม รวมทั้งยังเป็นคำสั่งสำหรับการจัดการคะแนนและแบบสอบถามโดยคะแนน
ภูมิศาสตร์
Redis มีหลายคำสั่งสำหรับการจัดเก็บการดึงและการวัดข้อมูลทางภูมิศาสตร์ ซึ่งรวมถึงการสอบถามรัศมีและการวัดระยะทางระหว่างจุดต่างๆ
ข้อมูลทางเทคนิคทางภูมิศาสตร์เป็นสีแดงจะถูกเก็บไว้ในชุดที่มีการเรียงลำดับดังนั้นนี่จึงไม่ใช่ประเภทข้อมูลที่แยกจากกันอย่างแท้จริง มันเป็นส่วนเสริมเพิ่มเติมด้านบนของชุดเรียง
บิตแมปและ HyperLogLog
เช่นเดียวกับที่ตั้งทางภูมิศาสตร์ประเภทข้อมูลเหล่านี้ไม่ได้แยกจากกัน เหล่านี้คือคำสั่งที่ให้คุณปฏิบัติต่อข้อมูลสตริงราวกับว่ามันเป็นบิตแมปหรือไฮเปอร์บล็อก
บิตแมปเป็นสิ่งที่ตัวดำเนินการระดับบิตที่ฉันอ้างถึงStrings
ใช้สำหรับ ชนิดของข้อมูลนี้เป็นกลุ่มอาคารพื้นฐานสำหรับ Reddit ล่าสุดของโครงการศิลปะการทำงานร่วมกัน: R / สถานที่
HyperLogLog ช่วยให้คุณใช้พื้นที่น้อยมากในการนับค่าที่ไม่ซ้ำกันเกือบไม่ จำกัด ด้วยความแม่นยำที่น่าตกใจ ด้วยการใช้เพียง ~ 16KB คุณสามารถนับจำนวนผู้เยี่ยมชมเว็บไซต์ของคุณได้อย่างมีประสิทธิภาพแม้ว่าจำนวนนั้นจะเป็นล้านก็ตาม
ธุรกรรมและปรมาณู
คำสั่งเป็นสีแดงคืออะตอมมิกหมายความว่าคุณสามารถมั่นใจได้ว่าทันทีที่คุณเขียนค่าให้กับ Redis ค่านั้นจะปรากฏให้ลูกค้าทุกคนที่เชื่อมต่อกับ Redis เห็น ไม่ต้องรอให้ค่านั้นเผยแพร่ เทคนิค memcached เป็นอะตอมเช่นกัน แต่ด้วย redis การเพิ่มฟังก์ชั่นทั้งหมดนี้นอกเหนือจาก memcached นั้นมีมูลค่า noting และค่อนข้างน่าประทับใจว่าชนิดข้อมูลและคุณสมบัติเพิ่มเติมทั้งหมดเหล่านี้ยังเป็นอะตอม
แม้ว่าจะไม่เหมือนกับธุรกรรมในฐานข้อมูลเชิงสัมพันธ์ แต่ Redis ก็มีธุรกรรมที่ใช้ "การล็อคในแง่ดี" ( WATCH / MULTI / EXEC )
pipelining
Redis ให้คุณสมบัติที่เรียกว่า ' pipelining ' หากคุณมีคำสั่ง redis จำนวนมากคุณต้องการเรียกใช้งานคุณสามารถใช้ pipelining เพื่อส่งคำสั่งไปยัง redis all-at-one แทนการจ่ายครั้งละครั้ง
โดยปกติเมื่อคุณรันคำสั่งเพื่อ redis หรือ memcached แต่ละคำสั่งจะเป็นรอบการร้องขอ / ตอบกลับที่แยกต่างหาก ด้วย pipelining, redis สามารถบัฟเฟอร์หลายคำสั่งและดำเนินการทั้งหมดในครั้งเดียวตอบสนองกับการตอบสนองทั้งหมดของคำสั่งทั้งหมดของคุณในการตอบกลับเดียว
สิ่งนี้ช่วยให้คุณสามารถรับปริมาณงานที่มากขึ้นในการนำเข้าจำนวนมากหรือการดำเนินการอื่น ๆ ที่เกี่ยวข้องกับคำสั่งจำนวนมาก
ผับ / ตำบล
Redis มีคำสั่งเฉพาะสำหรับฟังก์ชั่น pub / subช่วยให้Redis ทำหน้าที่เป็นผู้เผยแพร่ข้อความความเร็วสูง สิ่งนี้ช่วยให้ไคลเอนต์เดียวสามารถเผยแพร่ข้อความไปยังไคลเอนต์อื่น ๆ ที่เชื่อมต่อกับช่อง
Redis ทำ pub / sub รวมถึงเครื่องมือเกือบทุกชนิด โบรกเกอร์ข้อความเฉพาะเช่นRabbitMQอาจมีข้อได้เปรียบในบางพื้นที่ แต่ความจริงที่ว่าเซิร์ฟเวอร์เดียวกันยังสามารถให้คิวที่คงทนถาวรและโครงสร้างข้อมูลอื่น ๆ ที่ผับ / งานย่อยของคุณต้องการได้ Redis มักจะพิสูจน์ว่าเป็นเครื่องมือที่ดีที่สุดและง่ายที่สุด สำหรับงาน
ลัวะสคริปติ้ง
คุณสามารถคิดถึงสคริปต์ luaเช่น SQL ของ Redis เองหรือกระบวนงานที่เก็บไว้ มันมีทั้งมากกว่าและน้อยกว่านั้น แต่การเปรียบเทียบส่วนใหญ่ใช้งานได้
บางทีคุณอาจมีการคำนวณที่ซับซ้อนที่คุณต้องการให้ Redis ทำ บางทีคุณอาจไม่สามารถทำธุรกรรมของคุณย้อนกลับและต้องการรับประกันทุกขั้นตอนของกระบวนการที่ซับซ้อนจะเกิดขึ้นแบบอะตอม ปัญหาเหล่านี้และอีกมากมายสามารถแก้ไขได้ด้วยการเขียนสคริปต์ lua
สคริปต์ทั้งหมดจะถูกดำเนินการแบบอะตอมดังนั้นถ้าคุณสามารถปรับตรรกะของคุณเป็นสคริปต์ lua คุณมักจะสามารถหลีกเลี่ยงการยุ่งกับธุรกรรมล็อคในแง่ดี
ขูดหินปูน
ดังกล่าวข้างต้น Redis redis-sentinel
รวมถึงการสร้างในการสนับสนุนการจัดกลุ่มและมาพร้อมกับเครื่องมือที่มีประสิทธิภาพที่สูงของตัวเองที่เรียกว่า
ข้อสรุป
โดยไม่ลังเลฉันจะแนะนำ redis มากกว่า memcached สำหรับโครงการใหม่ใด ๆ หรือโครงการที่มีอยู่ซึ่งยังไม่ได้ใช้ memcached
ด้านบนอาจฟังดูเหมือนฉันไม่ชอบ memcached ในทางตรงกันข้ามมันเป็นเครื่องมือที่ทรงพลังเรียบง่ายมั่นคงเป็นผู้ใหญ่และแข็งตัว มีบางกรณีที่ใช้งานได้เร็วกว่า redis เล็กน้อย ฉันรัก memcached ฉันไม่คิดว่ามันสมเหตุสมผลสำหรับการพัฒนาในอนาคต
Redis ทำทุกอย่างที่ memcached ทำได้ดีกว่า ข้อได้เปรียบด้านประสิทธิภาพใด ๆ สำหรับ memcached นั้นมีขนาดเล็กและมีปริมาณงานเฉพาะ นอกจากนี้ยังมีเวิร์กโหลดที่ Redis จะเร็วกว่าและเวิร์กโหลดอีกมากมายที่ Redis สามารถทำซึ่ง memcached ไม่สามารถทำได้ ความแตกต่างด้านประสิทธิภาพเพียงเล็กน้อยนั้นดูเล็กน้อยเมื่อเผชิญหน้ากับอ่าวขนาดใหญ่ในการใช้งานและความจริงที่ว่าเครื่องมือทั้งสองทำงานได้อย่างรวดเร็วและมีประสิทธิภาพซึ่งอาจเป็นชิ้นส่วนสุดท้ายของโครงสร้างพื้นฐานของคุณ
มีเพียงสถานการณ์เดียวที่ memcached มีเหตุผลมากกว่านี้: โดยที่ memcached มีการใช้งานเป็นแคชอยู่แล้ว หากคุณแคชด้วย memcached แล้วให้ใช้ต่อไปหากตรงกับความต้องการของคุณ มันอาจไม่คุ้มค่ากับความพยายามที่จะเปลี่ยนเป็นสีแดงและถ้าคุณกำลังจะใช้ Redis เพียงเพื่อแคชมันอาจไม่ได้รับประโยชน์เพียงพอที่จะคุ้มค่ากับเวลาของคุณ หาก memcached ไม่ตอบสนองความต้องการของคุณคุณควรย้ายไปที่ Redis สิ่งนี้เป็นจริงไม่ว่าคุณจะต้องขยายขนาดเกิน memcached หรือคุณต้องการฟังก์ชั่นเพิ่มเติม