Introduction to Memcached
Memcached is a high-performance, distributed memory caching system, commonly used to speed up dynamic web applications by reducing the database load. Memcached stores data in-memory and serves it from there until cache expiration, offering rapid data retrieval.
Core APIs of Memcached
Below are some of the most commonly used APIs of Memcached, illustrated with code snippets in Python, using the popular pymemcache
library:
1. Connect to Memcached
from pymemcache.client import base
client = base.Client(('localhost', 11211))
2. Set a Value
client.set('key', 'value')
3. Get a Value
value = client.get('key')
print(value)
4. Delete a Value
client.delete('key')
5. Increment a Value
client.incr('counter', 1)
6. Decrement a Value
client.decr('counter', 1)
7. Check Key Existence
exists = client.get('key') is not None
print(exists)
8. Add a Value (Only if it Doesn’t Exist)
client.add('new_key', 'new_value')
9. Replace a Value (Only if it Exists)
client.replace('existing_key', 'new_value')
10. Append to a Value
client.append('key', 'additional_value')
11. Prepend to a Value
client.prepend('key', 'initial_value')
Example Application Using Memcached
Let’s create a simple web application using Flask, a lightweight WSGI web application framework, to showcase the use of Memcached:
from flask import Flask, request
from pymemcache.client import base
app = Flask(__name__)
client = base.Client(('localhost', 11211))
@app.route('/')
def index():
return 'Welcome to the Memcached Example App!'
@app.route('/set')
def set_value():
key = request.args.get('key')
value = request.args.get('value')
client.set(key, value)
return f'Set {key} to {value}'
@app.route('/get')
def get_value():
key = request.args.get('key')
value = client.get(key)
return f'The value of {key} is {value}'
@app.route('/delete')
def delete_value():
key = request.args.get('key')
client.delete(key)
return f'Deleted {key}'
if __name__ == '__main__':
app.run(debug=True)
In this example, we’ve created an application that can set, get, and delete values from Memcached. You can run the Flask app and test the functionalities via your web browser or tools like Postman.