Memcached and Redis
Memcached and Redis
https://memcached.org/about
Memcached Overview
• Distributed hashtable (Key-Value Store)
• Except that “Forgetting is a feature”
• When full – LRU gets dumped
• Excellent for high-throughput servers
• Memory is much lower latency than disk
• Excellent for high-latency queries
• Caching results can prevent the need to repeat these big units of work
Memcached Architecture
• Servers maintain a “key-value” store
• Clients know about all servers
• Clients query server by key to get value
• Two hash functions
• Key--->Server
• Key-->Associative Array, within server
• All clients know everything.
Code, From Wikipedia
function get_foo(int userid) {
data = db_select("SELECT * FROM users WHERE userid = ?", userid);
return data;
}
function get_foo(int userid) {
/* first try the cache */
data = memcached_fetch("userrow:" + userid);
if (!data) {
/* not found : request database */
data = db_select("SELECT * FROM users WHERE userid = ?", userid);