Skip to content

Instantly share code, notes, and snippets.

@eexit
Created July 21, 2021 12:18
Show Gist options
  • Star 0 You must be signed in to star a gist
  • Fork 0 You must be signed in to fork a gist
  • Save eexit/ff39796c52553d81a56c141206674c75 to your computer and use it in GitHub Desktop.
Save eexit/ff39796c52553d81a56c141206674c75 to your computer and use it in GitHub Desktop.
I don't recall who is the author of this script.
#!/usr/bin/perl
use 5.10.0;
use Cache::Memcached;
use Data::Dumper;
use MIME::Base64;
use strict;
my $server = "127.0.0.1:11211";
my $memcached = new Cache::Memcached {
'servers' => [ $server ],
'debug' => 0
};
my @items = split(/\r\n/, $memcached->stats("items")->{hosts}->{$server}->{items});
my %buckets = ();
foreach my $bucket (@items) {
$bucket =~ s/^.*:(.*):.*$/$1/ig;
$buckets{$bucket} = 1;
}
foreach my $bucket (sort keys %buckets) {
my @lines = split(/\r\n/, $memcached->stats("cachedump $bucket 0")->{hosts}->{$server}->{"cachedump $bucket 0"});
foreach my $ticket (@lines) {
$ticket =~ /^ITEM (?<item>.*) \[(?<bytes>\d+) b; (?<expire>\d+) s\]$/ig;
printf("%s: %s bytes: expires %s (%s)\n%s\n", $+{item}, $+{bytes}, $+{expire}, scalar(gmtime($+{expire})), $memcached->get($+{item}));
}
}
$memcached->disconnect_all;
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment