Nginx adds strange characters using rails/memcached_pass

Filed under linux, memcached, nginx, programming, quickie, rails, ruby, and web.

After upgrading a few gems recently, I found that the content returned from the nginx memcached_pass directive always had a few strange characters prepended.

After some investigation it seems that this is caused by rails ‘marshalling’ the data. If you’re using a memcached set command such as

Cache.set(key, content, time_to_live)

You need to add an extra argument to force rails to cache the raw data instead of marshalling it :

Cache.set(key, content, time_to_live, true)

Restart memcached to make sure the old data is cleared, and the problem should go away.


If you enjoyed this post, please follow us on twitter or subscribe to our feed!