MemCached Basic
Memcached is a distributed memory object caching system that accelerates that data fetching from database.
The main reason for using this open source software is to cut down the load that can be faced during accessing the data from the database by temporarily storing in memcached server. This enhance the performance of the web applications.It stores the data in key-value pair in memory and due to inconstancy memcached rather seems NoSQl database.
Working of it:
Simply first if the users/client-server want to retrieve data from web applications it seeks/checks to the memcached server.
The requested data will be forwaded to user/client-server if that is alreadyin memcached server otherwise the data will be retrieved from database and ensuing it in memcached.
Let’s install it
For Debian or Ubuntu: sudo apt-get install memcached
For Redhat/Fedora: yum install memcached
For Windows: I recommend this website for installation process.
https://commaster.net/posts/installing-memcached-windows/
For Mac: brew install memcached
Why not try it?
This process is for Debian/Ubuntu users.
To access it first you have to connect to the localhost using telnet protocal.
“Telnet is a simple, text-based network protocol that is used for accessing remote computers over TCP/IP networks like the Internet.”
Command:
ps -ef | grep -i memc
“ps” finds the information about the running processes.
In above, you can see that the memcached is running on port and localhost (127.0.0.1). “-m 64” indicates 64megabytes of memory is allocated in memcached.
Now connect it through telnet.
Command:
telnet localhost 11211
If connection fails type below Command.
/etc/init.d/memcached restart
This simply restart the memcached.
Commands on memcached:
1.stats
This gives bevy information.
Some like:
cmd_get 0 > indicates how many time we hit get Command
cmd_set 0 > indicates how many time we hit set Command
total_items 0 > depicts the total items
We will again see this after checking some commands.
2.Let set the key and value:
ex:
set KEY <flag> <expiration-time> <bytes>
Here we have set the key foo and 0 3600 3 are the parameters.
What does mean them?
‘0’=setting flag
3600>>expiration time in second which may not exceed more than 2592000s(30 days) if then memcached uses UNIX timestamp. If it is set 0 the item will never expire.
‘3’=bytes
After setting key ‘wow’ value is given.
We can retrieve stored data from memcached using ‘get foo’ command.
3.Command:
replace <key-name> <flag> <expiration-time> <bytes>
To suppress the existing key in memcached server replace command should use.
4.delete <key-name> <flag> <expiration-time> <bytes>
This delete the key-value.
5.flush_all
To delete all key-value data pairs(existing cache items) ‘flush_all’ command should use.
Now check the stats .We have hit get command 6 times ,get misses 2 times ,set command 7 times, flush_all command 1 time etc.
Hope this below figure will help you to understand even better.
credit: https://lzone.de/cheat-sheet/memcached
Now, let’s dive into another part.Even without connecting through telnet we can access memcached server.
For this package ‘libmemcached-tools’ should be installed.
sudo apt-get install libmemcached-tools
libmemcached is a C and C++ client library provided to the memcached server which providesfull access to server side methods.
Commandlines: These are just the alternative way of doing.
memstat — -it shows statistics of the server
memcdump — -it shows what we have stored
memccat — -it shows the value of a key
memcrm — -to remove key-value
memccp — -copy files in memcached servers
memcflush — -flush all key-value data pairs
Check the stats.
There are memcached libraries in python ,node.js, php etc so that memcached can even used in python ,node.js, php.
I have listed the sites for tutorials you can see them for further knowledge and ideas.
For python:-
https://pymemcache.readthedocs.io/en/latest/getting_started.html
For node.js:-
https://redislabs.com/lp/node-js-memcached/
For php:-