ทุบตี
หากต้องการรับรายการคีย์ใน Bash ให้ทำตามขั้นตอนเหล่านี้
ขั้นแรกกำหนดฟังก์ชัน wrapper ต่อไปนี้เพื่อให้ใช้งานง่าย (คัดลอกและวางลงในเชลล์):
function memcmd() {
exec {memcache}<>/dev/tcp/localhost/11211
printf "%s\n%s\n" "$*" quit >&${memcache}
cat <&${memcache}
}
Memcached 1.4.31 ขึ้นไป
คุณสามารถใช้lru_crawler metadump all
คำสั่งเพื่อถ่ายโอนข้อมูล (ส่วนใหญ่) ข้อมูลเมตาสำหรับ (ทั้งหมด) รายการในแคช
ในทางตรงกันข้ามจะcachedump
ไม่ก่อให้เกิดปัญหาด้านประสิทธิภาพที่รุนแรงและไม่มีข้อ จำกัด เกี่ยวกับจำนวนคีย์ที่สามารถทิ้งได้
ตัวอย่างคำสั่งโดยใช้ฟังก์ชันที่กำหนดไว้ก่อนหน้านี้:
memcmd lru_crawler metadump all
ดู: ReleaseNotes1431
Memcached 1.4.30 และต่ำกว่า
รับรายการแผ่นพื้นโดยใช้คำสั่งสถิติรายการเช่น:
memcmd stats items
สำหรับแต่ละคลาส slub คุณสามารถรับรายการไอเท็มได้โดยระบุ slub id พร้อมกับ จำกัด จำนวน ( 0
- ไม่ จำกัด ):
memcmd stats cachedump 1 0
memcmd stats cachedump 2 0
memcmd stats cachedump 3 0
memcmd stats cachedump 4 0
...
หมายเหตุ: คุณต้องทำสิ่งนี้สำหรับเซิร์ฟเวอร์ memcached แต่ละเครื่อง
ในการแสดงรายการคีย์ทั้งหมดจากต้นขั้วทั้งหมดนี่คือหนึ่งซับ (ต่อหนึ่งเซิร์ฟเวอร์):
for id in $(memcmd stats items | grep -o ":[0-9]\+:" | tr -d : | sort -nu); do
memcmd stats cachedump $id 0
done
หมายเหตุ: คำสั่งดังกล่าวอาจทำให้เกิดปัญหาด้านประสิทธิภาพการทำงานที่รุนแรงในขณะที่เข้าถึงรายการดังนั้นจึงไม่แนะนำให้เรียกใช้แบบสด
หมายเหตุ:
stats cachedump
ทิ้งเฉพาะHOT_LRU
(IIRC?) ซึ่งจัดการโดยเธรดพื้นหลังเมื่อมีกิจกรรมเกิดขึ้น ซึ่งหมายความว่าภายใต้เวอร์ชันใหม่ที่เพียงพอซึ่งเปิดใช้งาน 2Q algo คุณจะได้รับมุมมองภาพรวมของสิ่งที่อยู่ใน LRU เพียงรายการเดียว
หากคุณต้องการดูทุกอย่างlru_crawler metadump 1
(หรือlru_crawler metadump all
) เป็นวิธีการใหม่ที่ได้รับการสนับสนุนอย่างเป็นทางการซึ่งจะถ่ายโอนข้อมูลคีย์ได้มากเท่าที่คุณต้องการแบบอะซิงโครนัส คุณจะทำให้พวกเขาไม่เป็นระเบียบ แต่มันเข้ากับ LRU ทั้งหมดและเว้นแต่คุณจะลบ / แทนที่รายการหลาย ๆ การวิ่งควรให้ผลลัพธ์เหมือนกัน
ที่มา: GH-405
ที่เกี่ยวข้อง: