In part I of this blog we saw how to install and test Memcached.
In this part, we will see how to use this amazing software in command line.
memcached-tool
We can use the default script memcached-tool
/usr/share/memcached/scripts/memcached-tool
Usage: memcached-tool <host[:port] | /path/to/socket> [mode]
memcached-tool 10.0.0.5:11211 display # shows slabs
memcached-tool 10.0.0.5:11211 # same. (default is display)
memcached-tool 10.0.0.5:11211 stats # shows general stats
memcached-tool 10.0.0.5:11211 dump # dumps keys and values
display
/usr/share/memcached/scripts/memcached-tool 127.0.0.1:11211 display # Item_Size Max_age Pages Count Full? Evicted Evict_Time OOM 3 152B 11s 1 1 no 0 0 0
stats
/usr/share/memcached/scripts/memcached-tool 127.0.0.1:11211 stats
#127.0.0.1:11211 Field Value
accepting_conns 1
auth_cmds 0
auth_errors 0
bytes 146
bytes_read 9363
bytes_written 22531
cas_badval 0
cas_hit's 0
cas_misses 0
cmd_flush 0
cmd_get 92
cmd_set 82
cmd_touch 0
conn_yields 0
connection_structures 7
curr_connections 5
curr_items 1
decr_hit's 0
decr_misses 0
delete_hit's 1
delete_misses 0
evicted_unfetched 0
evictions 0
expired_unfetched 0
get_hit's 87
get_misses 5
hash_bytes 524288
hash_is_expanding 0
hash_power_level 16
incr_hit's 0
incr_misses 0
libevent 2.0.19-stable
limit_maxbytes 67108864
listen_disabled_num 0
pid 23989
pointer_size 64
reclaimed 17
reserved_fds 20
rusage_system 74.119732
rusage_user 94.034704
threads 4
time 1433928279
total_connections 52
total_items 82
touch_hit's 0
touch_misses 0
uptime 2940441
version 1.4.13
dump
/usr/share/memcached/scripts/memcached-tool 127.0.0.1:11211 dump
Dumping memcache contents
Number of buckets: 1
Number of items : 1
Dumping bucket 3 - 1 total items
add key3 1 1430987838 76
O:8:"stdClass":2:{s:8:"str_attr";s:13:"never_expires";s:8:"int_attr";i:333;}
Making a connection with telnet
To make a connection to Memcached, use the following command:
[user@server]$ telnet localhost 11211 Trying 127.0.0.1... Connected to localhost. Escape character is '^]'.
Accessing statistics
Stats command allows you to have an overview showing important Memcached statistics:
stats STAT pid 2004 STAT uptime 14043 STAT time 1479306474 STAT version 1.4.13 STAT libevent 2.0.19-stable STAT pointer_size 64 STAT rusage_user 1.046840 STAT rusage_system 0.649901 STAT curr_connections 5 STAT total_connections 6 STAT connection_structures 6 STAT reserved_fds 20 STAT cmd_get 0 STAT cmd_set 0 STAT cmd_flush 0 STAT cmd_touch 0 STAT get_hit's 0 STAT get_misses 0 STAT delete_misses 0 STAT delete_hit's 0 STAT incr_misses 0 STAT incr_hit's 0 STAT decr_misses 0 STAT decr_hit's 0 STAT cas_misses 0 STAT cas_hit's 0 STAT cas_badval 0 STAT touch_hit's 0 STAT touch_misses 0 STAT auth_cmds 0 STAT auth_errors 0 STAT bytes_read 7 STAT bytes_written 0 STAT limit_maxbytes 67108864 STAT accepting_conns 1 STAT listen_disabled_num 0 STAT threads 4 STAT conn_yields 0 STAT hash_power_level 16 STAT hash_bytes 524288 STAT hash_is_expanding 0 STAT expired_unfetched 0 STAT evicted_unfetched 0 STAT bytes 0 STAT curr_items 0 STAT total_items 0 STAT evictions 0 STAT reclaimed 0 END
We can see some important informations :Some useful information is returned, such as :
- the server uptime,
- the server version,
- the total number of items,
- the current client connections to the server.
Accessing slabs
Slabs are a chunks of memory allocated by Memcached for internal use. This mecanism enhances the optimization of memory use.
To list the slabs, use the stats slabs command:
stats slabs STAT 1:chunk_size 88 STAT 1:chunks_per_page 11915 STAT 1:total_pages 1 STAT 1:total_chunks 11915 STAT 1:used_chunks 11915 STAT 1:free_chunks 0 STAT 1:free_chunks_end 11914 STAT 6:chunk_size 296 STAT 6:chunks_per_page 3542 STAT 6:total_pages 1 STAT 6:total_chunks 3542 STAT 6:used_chunks 3541 STAT 6:free_chunks 1 STAT 6:free_chunks_end 3541 STAT 7:chunk_size 376 STAT 7:chunks_per_page 2788 STAT 7:total_pages 1 STAT 7:total_chunks 2788 STAT 7:used_chunks 2788 STAT 7:free_chunks 0 STAT 7:free_chunks_end 2787 STAT 8:chunk_size 472 STAT 8:chunks_per_page 2221 STAT 8:total_pages 1 STAT 8:total_chunks 2221 STAT 8:used_chunks 2220 STAT 8:free_chunks 1 STAT 8:free_chunks_end 2218 STAT active_slabs 4 STAT total_malloced 4193552 END
Each slabs contains a list of items. To have these items you can use:
stats items STAT items:3:number 3 STAT items:3:age 38 STAT items:3:evicted 0 STAT items:3:evicted_nonzero 0 STAT items:3:evicted_time 0 STAT items:3:outofmemory 0 STAT items:3:tailrepairs 0 STAT items:3:reclaimed 0 STAT items:3:expired_unfetched 0 STAT items:3:evicted_unfetched 0 END
How to manipulate data ?
Setting key:
set <key> <flags> <expire-time> <bytes> <value>
Example:
set mykey 0 1000 4 myValue STORED
Getting key:
get mykey VALUE mykey 0 4 myValue END
Based on the php script used in part I we can use key3 which never expire:
get key3
VALUE key3 1 76
O:8:"stdClass":2:{s:8:"str_attr";s:13:"never_expires";s:8:"int_attr";i:333;}
ENDDeleting key:
delete key3 DELETED
Hope this blog helped you to understand memcached which is really very powerful and widely used by big companies like Facebook or Twitter. Feel free to read our other blogs and give us your feedbacks. Till next time.
Latest posts by ZIADI Mohamed Ali (see all)
- How to show mounted devices in Linux? - July 25, 2017
- How to use Positional parameters and special variables in Linux - June 28, 2017
- Linux: Connect to your WiFi network through CLI? - June 25, 2017
- How to find a file in Linux? - March 19, 2017
- Mysql: How to find table and database size? - January 9, 2017

