ดูเนื้อหาของ memcached


36

มีเครื่องมือใดบ้างในการสำรวจสิ่งที่แคชในปัจจุบันในพูล memcached หรือไม่? มีกราฟไม่มากนัก แต่มีคีย์ / ค่าจริงที่เก็บอยู่ในปัจจุบัน

คำตอบ:


9

ลองstats items- เช่น

echo "stats items" | nc 127.0.0.1 11211

16
คำถามนี้ตอบคำถามได้อย่างไร! นี่ให้เพียงสถิติเซิร์ฟเวอร์เท่านั้นไม่เรียกคืนคีย์ใด ๆ
Jagtesh Chadha

24

คำตอบที่ถูกต้องก็คือ echo "stats cachedump SLABS_ID LIMIT" | nc HOSTNAME PORT

เช่น. echo "stats cachedump 15 4" | nc 127.0.0.1 11211

สิ่งนี้จะให้ผลลัพธ์ในบรรทัดของ:

ITEM cache_path-comments%2Fpage%2F2 [2211 b; 1337195558 s]
ITEM cache_path-comments%2Fpage%2F5 [2205 b; 1337195558 s]
ITEM cache_path-comments%2Fpage%2F6 [2179 b; 1337195558 s]
ITEM cache_path-comments [2164 b; 1337195558 s]
END

หมายเหตุ:นี่เป็นคำสั่งที่ไม่มีเอกสารซึ่งไม่ได้รับการสนับสนุนโดยทีม memcached และสามารถลบออกได้ในทุกรุ่น สำหรับอ้างอิงที่สมบูรณ์, ตรวจสอบการทำความเข้าใจ Memcached สถิติคำสั่ง


cachedump ถูก จำกัด จำนวนข้อมูลที่ไม่มีเอกสารไม่โลภเกิน 1-2mb ดังนั้นจึงไม่น่าเชื่อถือ
John

11

memcached เครื่องมือ

ในเวอร์ชั่นล่าสุดmemcachedยังมีmemcached-toolสคริปต์ Perl เช่นการใช้งาน:

memcached-tool localhost:11211 dump | less

ซึ่งทิ้งคีย์และค่าทั้งหมด

memdump

ในการดัมพ์รายการคีย์จากเซิร์ฟเวอร์ให้ใช้memcdump/ memdumptool เช่น

memcdump --servers=localhost 

ในการถ่ายโอนข้อมูลวัตถุทั้งหมด:

memcdump --servers=localhost | xargs -L1 -I% sh -c 'echo "get %" | nc localhost 11211'

หากต้องการดัมพ์ค่าคีย์ทั้งหมดเป็นไฟล์แยก:

while read -r key; do [ -f "$key" ] || echo "get $key" | nc localhost 11211 > "$key.dump"; done < <(memcdump --server localhost)

memccat

หากต้องการพิมพ์ค่าคีย์คุณสามารถใช้memccatคำสั่งเช่น

memccat CACHE-KEY

ทุบตี

หากต้องการดัมพ์คีย์ทั้งหมดใน Bash เชลล์ให้ลอง:

exec {memcache}<>/dev/tcp/localhost/11211; printf "stats items\nquit\n" >&${memcache}; cat <&${memcache}

netcat

นี่คือตัวอย่างการรับค่าของรายการเดียวโดยใช้netcat:

echo "get 13456_-cache-some_object" | nc 127.0.0.1 11211

หลาม

ดู: วิธีการส่งออกคีย์และค่าทั้งหมดจาก memcached ด้วย Python ได้อย่างไร


2
คำตอบนี้ช่วยให้ผมหาสิ่งที่เกิดขึ้นจริงเครื่องมือ memcached: memcdump ดูคำตอบนี้: stackoverflow.com/a/14491419/720360
mmuller

1
ครั้งแรกที่ฉันได้ไปแต่แล้วก็ยังไม่ได้อยู่บนเส้นทางของฉันดังนั้นapt install libmemcached-tools /usr/share/memcached/scripts/memcached-tool localhost:11211 dumpUbuntu 18.
Camille Goudeseune


6

ติดตั้งlibmemcached-toolsแล้วคุณสามารถใช้คำสั่งนี้เพื่อรับคีย์ทั้งหมด:

memcdump --server=127.0.0.1

หากต้องการดูเนื้อหาคุณสามารถขอรหัสเฉพาะได้:

memccat --server=127.0.0.1 SOME_KEY

หรือคุณสามารถวนซ้ำรายการคีย์ใน Bash:

for key in $(memcdump --server=127.0.0.1); do echo ------ $key ------; memccat --server=127.0.0.1 $key; done

ตรวจสอบให้แน่ใจว่าใช้ 127.0.0.1 (ถ้าคุณใช้คำสั่งบนโฮสต์เดียวกัน) เพราะlocalhostดูเหมือนจะไม่ทำงาน


2

ใน memcached พื้นฐานฉันไม่คิดว่าจะมีวิธีการสอบถามคีย์ที่เก็บไว้ในเซิร์ฟเวอร์ เพียงคิดว่าคุณจะได้รับคือสถิติที่เกี่ยวข้องกับการจัดเก็บและรายการที่เก็บไว้

ผู้ค้าบางรายที่ได้พัฒนาโซลูชันที่สอดคล้องกับ memcached เช่นGear6ได้เพิ่มฟังก์ชันการทำงานเพื่อให้สามารถสอบถามได้

โดยการใช้ไซต์ของเรา หมายความว่าคุณได้อ่านและทำความเข้าใจนโยบายคุกกี้และนโยบายความเป็นส่วนตัวของเราแล้ว
Licensed under cc by-sa 3.0 with attribution required.