Memcached Set in Ruby (Detailed Guide w/ Code Examples)

Use Case(s)

The set method in Memcached is used when storing data in Memcached using Ruby. It allows you to store a key-value pair in the cache, which can be later retrieved using the get method. Common use cases are caching results from expensive database queries or storing session data.

Code Examples

Here's an example of how you can use the set method in Memcached with Ruby:

require 'memcached' cache ="localhost:11211") cache.set('key', 'value')

In this example, we connect to the Memcached server running on localhost on port 11211. We then use the set method to store the value 'value' with the key 'key'.

Another example could involve setting an expiration time for the cached data:

require 'memcached' cache ="localhost:11211") cache.set('key', 'value', 60)

This example is similar to the previous one, but we've added an additional parameter to the set method. The number 60 specifies that the key-value pair will expire and be removed from the cache after 60 seconds.

Best Practices

  1. Be careful with what data you choose to cache. Data that changes frequently or is sensitive (like user passwords) should not be cached.
  2. Don't forget to handle exceptions. Operations on Memcached might throw exceptions, such as Memcached::NotFound or Memcached::ConnectionFailure, which need to be handled to prevent your application from crashing.
  3. Use meaningful keys so that they provide some context about the corresponding value.

Common Mistakes

  1. Not setting an expiration time for cached data. This can fill up your cache space quickly and may lead to important data being evicted.
  2. Storing large values: Memcached is not designed for storing large values as it has a limit on the size of the value (typically 1MB).


  1. Can I store Ruby objects in Memcached?
    Yes, Memcached can store Ruby objects. These objects will be serialized before being stored and deserialized when retrieved.

  2. What happens when Memcached runs out of memory?
    When Memcached runs out of memory, it uses a technique called LRU (Least Recently Used) to remove some old data and make room for new data.

Was this content helpful?

Start building today

Dragonfly is fully compatible with the Redis ecosystem and requires no code changes to implement.