SlideShare ist ein Scribd-Unternehmen logo
1 von 20
What is memcached briefly?
 Memcached is a high-performance, distributed
memory object caching system, generic in nature
 Memcache is an in-memory key-value store for
small chunks of arbitrary data (strings, objects)
from results of database calls, API calls, or page
rendering.
 Memcache is not faster than database, but it's
faster than database when connections and
requests increase.
Why was memcached made?
• It was originally developed by Danga
Interactive to enhance the speed of
LiveJournal.com
• It dropped the database load to almost
nothing, yielding faster page load times for
users, better resource utilization, and faster
access to the databases on a memcache miss
• http://www.danga.com/memcached/
Memcached Users
•
•
•
•
•
•
•
•
•
•

LiveJournal
Wikipedia
Flickr
Twitter
Youtube
Dig
Wordpress
Craigslist
Facebook (around 200 dedicated memcache servers)
Yahoo! India Movies
Where does memcached reside?
• Memcache is not part of the database but sits
outside it on the server(s).
• Memcache is not meant for providing any
backup support. Its all about simple read and
write.
Why use memcached?
• To reduce the load on the database by caching
data BEFORE it hits the database
• Can be used for more then just holding
database results (objects) and improve the
entire application response time
• Feel the need for speed
• Memcache is in RAM - much faster then hitting
the disk or the database
Why not use memcached?
• Memcache is held in RAM. This is a finite
resource.
• Adding complexity to a system just for
complexities sake is a waste. If the system can
respond within the requirements without it leave it alone
What are the limits of memcached?
• Keys can be no more then 250 characters
• Stored data can not exceed 1M (largest typical slab
size)
• There are generally no limits to the number of nodes
running memcache
• There are generally no limits the the amount of RAM
used by memcache over all nodes
• 32 bit machines do have a limit of 4GB though
First User Request
• First request goes to database server at the same time data
object storing in Memcached server.
Second User Request
• Second user request data comes from Memcached object.
How do I easily install memcached?
• You can build and install memcached from the source
code directly, or you can use an existing operating
system package or installation.
• on a RedHat, Fedora or CentOS host, use yum:
• root-shell> yum install memcached

• on a Debian or Ubuntu host, use apt-get:
• root-shell> apt-get install memcached

• on a Gentoo host, use emerge:
• root-shell> emerge install memcached

• on OpenSolaris, use the pkg for SUNWmemcached:
• root-shell> pkg install SUNWmemcached
How do I compile memcached from source?
• Get the source from the website:
http://www.danga.com/memcached/downloa
d.bml
• Memcache has a dependancy on libevent so make
sure you have that also.

• Decompress, cd into the dir
• ./configure;make;make install;
How do I start memcached?
• Memcached can be run as a non-root user if it
will not be on a restricted port (<1024) though the user can not have a memory limit
restriction
• shell> memcached
• Default configuration - Memory: 64MB, all
network interfaces, port:11211, max
simultaneous connections: 1024
How can I connect to memcached?
• Memcached uses a protocol that many
languages implement with an API.
• Languages that implement it:
• Perl, PHP, Python, Ruby, Java, C#, C, Lua, Postgres,
MySQL, Chicken Scheme

• And yes - because it is a protocol you can even
use telnet
• shell> telnet localhost 11211
Memcached protocol
• 3 types of commands
• Storage - ask the server to store some data
identified by a key
• set, add, replace, append, prepend and cas

• Retrieval - ask the server to retrieve data
corresponding to a set of keys
• get, gets
PHP Script
• Information about the PHP API at
http://www.php.net/memcache
<?php
// make a memcache object
$memcache = new Memcache;
// connect to memcache
$memcache->connect('localhost', 11211) or die ("Could not
connect");
//get the memcache version
$version = $memcache->getVersion();
echo "Server's version: ".$version."<br/>n";
PHP Script (con’t)
// test data
$tmp_object = new stdClass;
$tmp_object->str_attr = 'test';
$tmp_object->int_attr = 123;
// set the test data in memcache
$memcache->set('key', $tmp_object, false, 10) or die ("Failed
to save data at the server");
echo "Store data in the cache (data will expire in 10
seconds)<br/>n";
// get the data
$get_result = $memcache->get('key');
echo "Data from the cache:<br/>n";
echo ‘<pre>’, var_dump($get_result), ‘</pre>’;
PHP Script (con’t)
// modify the data
$tmp_object->str_attr = ‘boo’;
$memcache->replace(‘key’, $tmp_object, false, 10) or
die(“Failed to save new data to the server<br/>n”);
Echo “Stored data in the cache changed<br/>n”;
// get the new data
$get_result = $memcache->get(‘key’);
Echo “New data from the cache:<br/>n”;
Echo ‘<pre>’, var_dump($get_result), “</pre>n”;
// delete the data
$memcache->delete(‘key’) or die(“Data not deleted<br/>n”);
Possible ways to secure memcached
• It has no authentication system - so protection
is important
• Run as a non-priveledged user to minimize
potential damage
• Specify the ip address to listen on using -l
• 127.0.0.1, 192.168.0.1, specific ip address

• Use a non-standard port
• Use a firewall
Contact details

THANK YOU

Weitere ähnliche Inhalte

Was ist angesagt?

A memcached implementation in Java
A memcached implementation in JavaA memcached implementation in Java
A memcached implementation in Java
elliando dias
 
Apache Tomcat 8 Application Server
Apache Tomcat 8 Application ServerApache Tomcat 8 Application Server
Apache Tomcat 8 Application Server
mohamedmoharam
 

Was ist angesagt? (20)

Memcached: What is it and what does it do?
Memcached: What is it and what does it do?Memcached: What is it and what does it do?
Memcached: What is it and what does it do?
 
Caching Data For Performance
Caching Data For PerformanceCaching Data For Performance
Caching Data For Performance
 
Tomcatx performance-tuning
Tomcatx performance-tuningTomcatx performance-tuning
Tomcatx performance-tuning
 
Apache Performance Tuning: Scaling Out
Apache Performance Tuning: Scaling OutApache Performance Tuning: Scaling Out
Apache Performance Tuning: Scaling Out
 
Tomcat Server
Tomcat ServerTomcat Server
Tomcat Server
 
Give Your Site a Boost with Memcache
Give Your Site a Boost with MemcacheGive Your Site a Boost with Memcache
Give Your Site a Boost with Memcache
 
A memcached implementation in Java
A memcached implementation in JavaA memcached implementation in Java
A memcached implementation in Java
 
Setting up a local WordPress development environment
Setting up a local WordPress development environmentSetting up a local WordPress development environment
Setting up a local WordPress development environment
 
Memcached: What is it and what does it do? (PHP Version)
Memcached: What is it and what does it do? (PHP Version)Memcached: What is it and what does it do? (PHP Version)
Memcached: What is it and what does it do? (PHP Version)
 
Memcache basics on google app engine
Memcache basics on google app engineMemcache basics on google app engine
Memcache basics on google app engine
 
Drupal, varnish, esi - Toulouse November 2
Drupal, varnish, esi - Toulouse November 2Drupal, varnish, esi - Toulouse November 2
Drupal, varnish, esi - Toulouse November 2
 
Tomcat next
Tomcat nextTomcat next
Tomcat next
 
Tips for Fixing a Hacked WordPress Site - WordCamp Sydney 2016
Tips for Fixing a Hacked WordPress Site - WordCamp Sydney 2016Tips for Fixing a Hacked WordPress Site - WordCamp Sydney 2016
Tips for Fixing a Hacked WordPress Site - WordCamp Sydney 2016
 
Zendcon scaling magento
Zendcon scaling magentoZendcon scaling magento
Zendcon scaling magento
 
Scale ColdFusion with Terracotta Distributed Caching for Ehchache
Scale ColdFusion with Terracotta Distributed Caching for EhchacheScale ColdFusion with Terracotta Distributed Caching for Ehchache
Scale ColdFusion with Terracotta Distributed Caching for Ehchache
 
1
11
1
 
High performance WordPress
High performance WordPressHigh performance WordPress
High performance WordPress
 
cache concepts and varnish-cache
cache concepts and varnish-cachecache concepts and varnish-cache
cache concepts and varnish-cache
 
Tomcat Optimisation & Performance Tuning
Tomcat Optimisation & Performance TuningTomcat Optimisation & Performance Tuning
Tomcat Optimisation & Performance Tuning
 
Apache Tomcat 8 Application Server
Apache Tomcat 8 Application ServerApache Tomcat 8 Application Server
Apache Tomcat 8 Application Server
 

Andere mochten auch (7)

Drupal High Availability and High Performance
Drupal High Availability and High PerformanceDrupal High Availability and High Performance
Drupal High Availability and High Performance
 
High Performance Drupal
High Performance DrupalHigh Performance Drupal
High Performance Drupal
 
Apc Memcached Confoo 2011
Apc Memcached Confoo 2011Apc Memcached Confoo 2011
Apc Memcached Confoo 2011
 
Memcached And MySQL
Memcached And MySQLMemcached And MySQL
Memcached And MySQL
 
Plugin Memcached%20 Study
Plugin Memcached%20 StudyPlugin Memcached%20 Study
Plugin Memcached%20 Study
 
Implementing High Performance Drupal Sites
Implementing High Performance Drupal SitesImplementing High Performance Drupal Sites
Implementing High Performance Drupal Sites
 
Build a responsive website with drupal
Build a responsive website with drupalBuild a responsive website with drupal
Build a responsive website with drupal
 

Ähnlich wie Memcached B box presentation

Membase Intro from Membase Meetup San Francisco
Membase Intro from Membase Meetup San FranciscoMembase Intro from Membase Meetup San Francisco
Membase Intro from Membase Meetup San Francisco
Membase
 
Improving Website Performance and Scalability with Memcached
Improving Website Performance and Scalability with MemcachedImproving Website Performance and Scalability with Memcached
Improving Website Performance and Scalability with Memcached
Acquia
 
Advanced caching techniques with ehcache, big memory, terracotta, and coldfusion
Advanced caching techniques with ehcache, big memory, terracotta, and coldfusionAdvanced caching techniques with ehcache, big memory, terracotta, and coldfusion
Advanced caching techniques with ehcache, big memory, terracotta, and coldfusion
ColdFusionConference
 
Site Performance - From Pinto to Ferrari
Site Performance - From Pinto to FerrariSite Performance - From Pinto to Ferrari
Site Performance - From Pinto to Ferrari
Joseph Scott
 

Ähnlich wie Memcached B box presentation (20)

Introduction to memcached
Introduction to memcachedIntroduction to memcached
Introduction to memcached
 
Improving Website Performance with Memecached Webinar | Achieve Internet
Improving Website Performance with Memecached Webinar | Achieve InternetImproving Website Performance with Memecached Webinar | Achieve Internet
Improving Website Performance with Memecached Webinar | Achieve Internet
 
Caching with Memcached and APC
Caching with Memcached and APCCaching with Memcached and APC
Caching with Memcached and APC
 
Anthony Somerset - Site Speed = Success!
Anthony Somerset - Site Speed = Success!Anthony Somerset - Site Speed = Success!
Anthony Somerset - Site Speed = Success!
 
Caching and tuning fun for high scalability
Caching and tuning fun for high scalabilityCaching and tuning fun for high scalability
Caching and tuning fun for high scalability
 
Lonestar php scalingmagento
Lonestar php scalingmagentoLonestar php scalingmagento
Lonestar php scalingmagento
 
Memcached
MemcachedMemcached
Memcached
 
Top ten-list
Top ten-listTop ten-list
Top ten-list
 
Mini-Training: To cache or not to cache
Mini-Training: To cache or not to cacheMini-Training: To cache or not to cache
Mini-Training: To cache or not to cache
 
Caching and tuning fun for high scalability @ FrOSCon 2011
Caching and tuning fun for high scalability @ FrOSCon 2011Caching and tuning fun for high scalability @ FrOSCon 2011
Caching and tuning fun for high scalability @ FrOSCon 2011
 
Membase East Coast Meetups
Membase East Coast MeetupsMembase East Coast Meetups
Membase East Coast Meetups
 
Memcached Presentation
Memcached PresentationMemcached Presentation
Memcached Presentation
 
Improve WordPress performance with caching and deferred execution of code
Improve WordPress performance with caching and deferred execution of codeImprove WordPress performance with caching and deferred execution of code
Improve WordPress performance with caching and deferred execution of code
 
(DAT407) Amazon ElastiCache: Deep Dive
(DAT407) Amazon ElastiCache: Deep Dive(DAT407) Amazon ElastiCache: Deep Dive
(DAT407) Amazon ElastiCache: Deep Dive
 
Membase Intro from Membase Meetup San Francisco
Membase Intro from Membase Meetup San FranciscoMembase Intro from Membase Meetup San Francisco
Membase Intro from Membase Meetup San Francisco
 
Improving Website Performance and Scalability with Memcached
Improving Website Performance and Scalability with MemcachedImproving Website Performance and Scalability with Memcached
Improving Website Performance and Scalability with Memcached
 
Caching and tuning fun for high scalability
Caching and tuning fun for high scalabilityCaching and tuning fun for high scalability
Caching and tuning fun for high scalability
 
Advanced caching techniques with ehcache, big memory, terracotta, and coldfusion
Advanced caching techniques with ehcache, big memory, terracotta, and coldfusionAdvanced caching techniques with ehcache, big memory, terracotta, and coldfusion
Advanced caching techniques with ehcache, big memory, terracotta, and coldfusion
 
Caching and tuning fun for high scalability @ phpBenelux 2011
Caching and tuning fun for high scalability @ phpBenelux 2011Caching and tuning fun for high scalability @ phpBenelux 2011
Caching and tuning fun for high scalability @ phpBenelux 2011
 
Site Performance - From Pinto to Ferrari
Site Performance - From Pinto to FerrariSite Performance - From Pinto to Ferrari
Site Performance - From Pinto to Ferrari
 

Kürzlich hochgeladen

Histor y of HAM Radio presentation slide
Histor y of HAM Radio presentation slideHistor y of HAM Radio presentation slide
Histor y of HAM Radio presentation slide
vu2urc
 

Kürzlich hochgeladen (20)

04-2024-HHUG-Sales-and-Marketing-Alignment.pptx
04-2024-HHUG-Sales-and-Marketing-Alignment.pptx04-2024-HHUG-Sales-and-Marketing-Alignment.pptx
04-2024-HHUG-Sales-and-Marketing-Alignment.pptx
 
Bajaj Allianz Life Insurance Company - Insurer Innovation Award 2024
Bajaj Allianz Life Insurance Company - Insurer Innovation Award 2024Bajaj Allianz Life Insurance Company - Insurer Innovation Award 2024
Bajaj Allianz Life Insurance Company - Insurer Innovation Award 2024
 
TrustArc Webinar - Unlock the Power of AI-Driven Data Discovery
TrustArc Webinar - Unlock the Power of AI-Driven Data DiscoveryTrustArc Webinar - Unlock the Power of AI-Driven Data Discovery
TrustArc Webinar - Unlock the Power of AI-Driven Data Discovery
 
HTML Injection Attacks: Impact and Mitigation Strategies
HTML Injection Attacks: Impact and Mitigation StrategiesHTML Injection Attacks: Impact and Mitigation Strategies
HTML Injection Attacks: Impact and Mitigation Strategies
 
Apidays Singapore 2024 - Building Digital Trust in a Digital Economy by Veron...
Apidays Singapore 2024 - Building Digital Trust in a Digital Economy by Veron...Apidays Singapore 2024 - Building Digital Trust in a Digital Economy by Veron...
Apidays Singapore 2024 - Building Digital Trust in a Digital Economy by Veron...
 
Data Cloud, More than a CDP by Matt Robison
Data Cloud, More than a CDP by Matt RobisonData Cloud, More than a CDP by Matt Robison
Data Cloud, More than a CDP by Matt Robison
 
Histor y of HAM Radio presentation slide
Histor y of HAM Radio presentation slideHistor y of HAM Radio presentation slide
Histor y of HAM Radio presentation slide
 
GenCyber Cyber Security Day Presentation
GenCyber Cyber Security Day PresentationGenCyber Cyber Security Day Presentation
GenCyber Cyber Security Day Presentation
 
GenAI Risks & Security Meetup 01052024.pdf
GenAI Risks & Security Meetup 01052024.pdfGenAI Risks & Security Meetup 01052024.pdf
GenAI Risks & Security Meetup 01052024.pdf
 
Tata AIG General Insurance Company - Insurer Innovation Award 2024
Tata AIG General Insurance Company - Insurer Innovation Award 2024Tata AIG General Insurance Company - Insurer Innovation Award 2024
Tata AIG General Insurance Company - Insurer Innovation Award 2024
 
Partners Life - Insurer Innovation Award 2024
Partners Life - Insurer Innovation Award 2024Partners Life - Insurer Innovation Award 2024
Partners Life - Insurer Innovation Award 2024
 
Real Time Object Detection Using Open CV
Real Time Object Detection Using Open CVReal Time Object Detection Using Open CV
Real Time Object Detection Using Open CV
 
Scaling API-first – The story of a global engineering organization
Scaling API-first – The story of a global engineering organizationScaling API-first – The story of a global engineering organization
Scaling API-first – The story of a global engineering organization
 
A Year of the Servo Reboot: Where Are We Now?
A Year of the Servo Reboot: Where Are We Now?A Year of the Servo Reboot: Where Are We Now?
A Year of the Servo Reboot: Where Are We Now?
 
Advantages of Hiring UIUX Design Service Providers for Your Business
Advantages of Hiring UIUX Design Service Providers for Your BusinessAdvantages of Hiring UIUX Design Service Providers for Your Business
Advantages of Hiring UIUX Design Service Providers for Your Business
 
What Are The Drone Anti-jamming Systems Technology?
What Are The Drone Anti-jamming Systems Technology?What Are The Drone Anti-jamming Systems Technology?
What Are The Drone Anti-jamming Systems Technology?
 
Handwritten Text Recognition for manuscripts and early printed texts
Handwritten Text Recognition for manuscripts and early printed textsHandwritten Text Recognition for manuscripts and early printed texts
Handwritten Text Recognition for manuscripts and early printed texts
 
Connector Corner: Accelerate revenue generation using UiPath API-centric busi...
Connector Corner: Accelerate revenue generation using UiPath API-centric busi...Connector Corner: Accelerate revenue generation using UiPath API-centric busi...
Connector Corner: Accelerate revenue generation using UiPath API-centric busi...
 
🐬 The future of MySQL is Postgres 🐘
🐬  The future of MySQL is Postgres   🐘🐬  The future of MySQL is Postgres   🐘
🐬 The future of MySQL is Postgres 🐘
 
Apidays New York 2024 - Scaling API-first by Ian Reasor and Radu Cotescu, Adobe
Apidays New York 2024 - Scaling API-first by Ian Reasor and Radu Cotescu, AdobeApidays New York 2024 - Scaling API-first by Ian Reasor and Radu Cotescu, Adobe
Apidays New York 2024 - Scaling API-first by Ian Reasor and Radu Cotescu, Adobe
 

Memcached B box presentation

  • 1.
  • 2. What is memcached briefly?  Memcached is a high-performance, distributed memory object caching system, generic in nature  Memcache is an in-memory key-value store for small chunks of arbitrary data (strings, objects) from results of database calls, API calls, or page rendering.  Memcache is not faster than database, but it's faster than database when connections and requests increase.
  • 3. Why was memcached made? • It was originally developed by Danga Interactive to enhance the speed of LiveJournal.com • It dropped the database load to almost nothing, yielding faster page load times for users, better resource utilization, and faster access to the databases on a memcache miss • http://www.danga.com/memcached/
  • 5. Where does memcached reside? • Memcache is not part of the database but sits outside it on the server(s). • Memcache is not meant for providing any backup support. Its all about simple read and write.
  • 6. Why use memcached? • To reduce the load on the database by caching data BEFORE it hits the database • Can be used for more then just holding database results (objects) and improve the entire application response time • Feel the need for speed • Memcache is in RAM - much faster then hitting the disk or the database
  • 7. Why not use memcached? • Memcache is held in RAM. This is a finite resource. • Adding complexity to a system just for complexities sake is a waste. If the system can respond within the requirements without it leave it alone
  • 8. What are the limits of memcached? • Keys can be no more then 250 characters • Stored data can not exceed 1M (largest typical slab size) • There are generally no limits to the number of nodes running memcache • There are generally no limits the the amount of RAM used by memcache over all nodes • 32 bit machines do have a limit of 4GB though
  • 9. First User Request • First request goes to database server at the same time data object storing in Memcached server.
  • 10. Second User Request • Second user request data comes from Memcached object.
  • 11. How do I easily install memcached? • You can build and install memcached from the source code directly, or you can use an existing operating system package or installation. • on a RedHat, Fedora or CentOS host, use yum: • root-shell> yum install memcached • on a Debian or Ubuntu host, use apt-get: • root-shell> apt-get install memcached • on a Gentoo host, use emerge: • root-shell> emerge install memcached • on OpenSolaris, use the pkg for SUNWmemcached: • root-shell> pkg install SUNWmemcached
  • 12. How do I compile memcached from source? • Get the source from the website: http://www.danga.com/memcached/downloa d.bml • Memcache has a dependancy on libevent so make sure you have that also. • Decompress, cd into the dir • ./configure;make;make install;
  • 13. How do I start memcached? • Memcached can be run as a non-root user if it will not be on a restricted port (<1024) though the user can not have a memory limit restriction • shell> memcached • Default configuration - Memory: 64MB, all network interfaces, port:11211, max simultaneous connections: 1024
  • 14. How can I connect to memcached? • Memcached uses a protocol that many languages implement with an API. • Languages that implement it: • Perl, PHP, Python, Ruby, Java, C#, C, Lua, Postgres, MySQL, Chicken Scheme • And yes - because it is a protocol you can even use telnet • shell> telnet localhost 11211
  • 15. Memcached protocol • 3 types of commands • Storage - ask the server to store some data identified by a key • set, add, replace, append, prepend and cas • Retrieval - ask the server to retrieve data corresponding to a set of keys • get, gets
  • 16. PHP Script • Information about the PHP API at http://www.php.net/memcache <?php // make a memcache object $memcache = new Memcache; // connect to memcache $memcache->connect('localhost', 11211) or die ("Could not connect"); //get the memcache version $version = $memcache->getVersion(); echo "Server's version: ".$version."<br/>n";
  • 17. PHP Script (con’t) // test data $tmp_object = new stdClass; $tmp_object->str_attr = 'test'; $tmp_object->int_attr = 123; // set the test data in memcache $memcache->set('key', $tmp_object, false, 10) or die ("Failed to save data at the server"); echo "Store data in the cache (data will expire in 10 seconds)<br/>n"; // get the data $get_result = $memcache->get('key'); echo "Data from the cache:<br/>n"; echo ‘<pre>’, var_dump($get_result), ‘</pre>’;
  • 18. PHP Script (con’t) // modify the data $tmp_object->str_attr = ‘boo’; $memcache->replace(‘key’, $tmp_object, false, 10) or die(“Failed to save new data to the server<br/>n”); Echo “Stored data in the cache changed<br/>n”; // get the new data $get_result = $memcache->get(‘key’); Echo “New data from the cache:<br/>n”; Echo ‘<pre>’, var_dump($get_result), “</pre>n”; // delete the data $memcache->delete(‘key’) or die(“Data not deleted<br/>n”);
  • 19. Possible ways to secure memcached • It has no authentication system - so protection is important • Run as a non-priveledged user to minimize potential damage • Specify the ip address to listen on using -l • 127.0.0.1, 192.168.0.1, specific ip address • Use a non-standard port • Use a firewall