ความแตกต่าง
1. Redis เป็นฐานข้อมูลการจัดเก็บข้อมูล Memcache ยังสามารถแคชรูปภาพได้
Redis และ Memcache เก็บข้อมูลไว้ในหน่วยความจำและเป็นฐานข้อมูลหน่วยความจำ อย่างไรก็ตาม Memcache ยังสามารถแคชสิ่งอื่นๆ เช่น รูปภาพและวิดีโอ Redis ไม่เพียงแต่รองรับข้อมูลประเภท k/v อย่างง่ายเท่านั้น แต่ยังมีพื้นที่จัดเก็บโครงสร้างข้อมูล เช่น รายการ ชุด และแฮชอีกด้วย
กลยุทธ์การหมดอายุ มีการระบุ Memcache เมื่อตั้งค่า ตัวอย่างเช่น setkey1008 ไม่มีวันหมดอายุ Redis สามารถตั้งค่าได้ผ่านการหมดอายุ ตัวอย่างเช่น expirname10
ความปลอดภัยของพื้นที่จัดเก็บข้อมูล หลังจากปิด Memcache แล้ว ข้อมูล Redis จะหายไปและสามารถบันทึกลงในดิสก์ได้เป็นประจำ
การกู้คืนความเสียหาย หลังจากที่ข้อมูล Redis สูญหายและข้อมูลไม่สามารถกู้คืนได้หลังจากที่ Memcache วางสายแล้ว ก็สามารถกู้คืนได้ผ่าน aof
Redis รองรับการสำรองข้อมูล กล่าวคือ การสำรองข้อมูลในโหมดมาสเตอร์-สเลฟ
สถานการณ์การใช้งานที่แตกต่างกัน:
2. Redis สามารถสร้างฐานข้อมูล nosql, คิวข่าว ฯลฯ Memcache ยังสามารถแคชคำสั่ง SQL ได้อีกด้วย
Redis ไม่เพียงแต่สร้างฐานข้อมูล NoSQL เท่านั้น แต่ยังสร้างคิวข่าวสาร สแต็กข้อมูล แคชข้อมูล ฯลฯ อีกด้วย Memcache เหมาะสำหรับการแคชคำสั่ง SQL, ชุดข้อมูล, ข้อมูลชั่วคราวของผู้ใช้, ข้อมูลการสืบค้นที่ล่าช้า, เซสชัน ฯลฯ
ตัวอย่าง
เชื่อมต่อกับบริการ Redis
<?php $redis = new redis(); //สร้าง object ของคลาส redis หลังจากสร้าง คุณสามารถใช้เมธอดในคลาส $redis->connect('127.0.0.1',6379); //The IP address and หมายเลขพอร์ตสำหรับเชื่อมต่อกับ redis$ redis->set('redistest','666666'); // กำหนดค่าเพื่อ redistest เป็น 666666 echo $redis->get('redistest'); //รับค่าของ redistest?>
การใช้งาน Memcached
<?php $memcache = Memcache ใหม่; $memcache->connect("127.0.0.1",11211) or die("Memcached เชื่อมต่อล้มเหลว"); echo "เวอร์ชันของ Memcached: " . $memcache->getVersion() . $ข้อมูล = อาร์เรย์( 'url' => "http://www.cnblogs.com/wujuntian/", 'name' => "โปรแกรมเมอร์ ณ จุดสิ้นสุดของโลก" - $memcache -> set("ข้อมูล",$data,0,10); $info = $memcache->get("ข้อมูล"); เสียงสะท้อน '<pre>'; print_r($ข้อมูล); -
ข้างต้นคือความแตกต่างระหว่าง Redis และ Memcached ใน php ฉันหวังว่ามันจะเป็นประโยชน์กับทุกคน