[爆卦]Std::string include是什麼?優點缺點精華區懶人包

雖然這篇Std::string include鄉民發文沒有被收入到精華區:在Std::string include這個話題中,我們另外找到其它相關的精選爆讚文章

在 std::string產品中有1篇Facebook貼文,粉絲數超過10萬的網紅BorntoDev,也在其Facebook貼文中提到, เพื่อน ๆ รู้หรือไม่ 💡 ว่าการเก็บข้อมูลที่แสนจะมากมายมหาศาลของ Facebook นั้นเขามีวิธีการเก็บอย่างไร และใช้ฐานข้อมูลแบบไหน ?? วันนี้เรามาหาคำตอบกันเลยจ้...

  • std::string 在 BorntoDev Facebook 的最佳貼文

    2021-07-27 11:00:15
    有 133 人按讚

    เพื่อน ๆ รู้หรือไม่ 💡 ว่าการเก็บข้อมูลที่แสนจะมากมายมหาศาลของ Facebook นั้นเขามีวิธีการเก็บอย่างไร และใช้ฐานข้อมูลแบบไหน ?? วันนี้เรามาหาคำตอบกันเลยจ้า !! ❤️
    .
    🔹 Facebook นั้นมีผู้ใช้ประมาณ 1.2 พันล้านคน ซึ่งถือว่าเยอะมากกกก -0- และทุกคนนั้นจะเห็นหน้าเพจเป็นแบบไดนามิก ซึ่งทาง Facebook ต้องใช้ Tools ต่าง ๆ ในการจัดเก็บข้อมูลเพื่อให้รองรับกิจกรรมต่าง ๆ เช่น การกดไลก์ แสดงความคิดเห็น และการแชร์ เป็นต้น
    .
    👉 ซึ่งในปัจจุบันทาง Facebook มีการใช้ฐานข้อมูลแบบ SQL ไม่ว่าจะเป็น MySQL และ InnoDB ด้วยประสิทธิภาพและความน่าเชื่อถือของทั้งสอง รองรับข้อมูลที่มหาศาลได้ แต่ก็จะมีข้อจำกัดบางอย่าง จึงได้พัฒนาฐานข้อมูลที่ชื่อว่า RocksDB เพื่อมาใช้ร่วมกันนั่นเอง
    .
    ซึ่งเจ้า RocksDB เป็นฐานข้อมูลแบบ Embeddable Key-value จัดเก็บข้อมูลได้อย่างรวดเร็ว แถมยังเป็น Open-Source สร้างและใช้งานบน Facebook เขียนด้วยภาษา C++
    .
    ✨ คุณสมบัติ
    🔸 1) สามารถปรับขนาดให้ทำงานบนเซิร์ฟเวอร์ที่มี Core CPU จำนวนมาก
    RocksDB มีข้อดีที่ช่วยให้สามารถจัดการกับเซิร์ฟเวอร์แบบ Muti Core ได้อย่างมีประสิทธิภาพ แถมยังสามารถแบ่งพาร์ติชันให้เป็นฐานข้อมูลแบบ Read-only และ Read-write
    .
    🔸 2) ใช้พื้นที่เก็บข้อมูลได้อย่างมีประสิทธิภาพ
    สามารถบีบอัดข้อมูลซึ่งสามารถลดพื้นที่เก็บข้อมูลลงได้ และทำงานได้อย่างรวดเร็ว ลดปัญหาคอขวดของข้อมูล
    .
    🔸 3) มีความยืดหยุ่น
    RocksDB สามารถจัดการและขยายได้ง่าย มีหน่วยเก็บข้อมูลที่มีประสิทธิภาพในการอ่านและเขียนนั่นเอง รองรับข้อมูลได้หลากหลาย
    .
    🌈 RocksDB ใช้สถาปัตยกรรมแบบ Pluggable คือสามารถปรับเปลี่ยนได้ง่ายโดยไม่ส่งผลต่อสถาปัตยกรรมของระบบ ซึ่งสามารถปรับใช้กับ Workloads และ Hardware ที่แตกต่างกันได้นั่นเอง
    .
    ⚙️ วิธีใช้งานเบื้องต้น
    RocksDB จะใช้ Methods Put, Delete, และ Get เพื่อแก้ไข ลบ และ Query ข้อมูลนั่นเอง
    .
    👨‍💻 โค้ดตัวอย่าง
    เป็นการย้ายค่าไปเก็บไว้ภายใต้ Key1 และ Key2
    .
    std::string value;
    rocksdb::Status s = db->Get(rocksdb::ReadOptions(), key1, &value);
    if (s.ok()) s = db->Put(rocksdb::WriteOptions(), key2, value);
    if (s.ok()) s = db->Delete(rocksdb::WriteOptions(), key1);
    .
    ⚡ RocksDB เหมาะกับงานแบบใด ?
    - ใช้จัดเก็บประวัติการเข้าชม และสถานะของผู้ใช้
    - ตรวจจับสแปม
    - ใช้กับ Graph-search ที่ต้องสแกนข้อมูลแบบเรียลไทม์
    - ใช้กับ Hadoop
    - ใช้ในงานที่รองรับ Message Queue
    .
    ซึ่งเขาเปิดให้เหล่า Dev ได้ลองเล่นกันสักพักล่ะใน GitHub หากใครสนใจสามารถคลิกลิงค์ไปลองใช้งานกันได้เลย
    💥 GitHub : https://github.com/facebook/rocksdb
    .
    📑 และสามารถอ่านข้อมูลเพิ่มเติมเกี่ยวกับ RocksDB ได้ที่ >> https://rocksdb.org/ , https://engineering.fb.com/2013/11/21/core-data/under-the-hood-building-and-open-sourcing-rocksdb/
    .
    borntoDev - 🦖 สร้างการเรียนรู้ที่ดีสำหรับสายไอทีในทุกวัน