Friday, May 11, 2012

Memcached Spring integration

This is very simple example showing how to integrate Spring with memcached.

MemcachedClientFactoryBean is a Spring factory, which creates instance of MemcachedClient. Client class manages connections to memcached server farm, and takes care of .... mostly everything that is required for daily usage ;)

Configured Transcoder serializes Java objects - they are available on memcached server in binary form.

Spring bean below has single injection -  "memcached.client", this is the bean name of the factory, but spring recognises, that injected bean is a factory and does not inject factory itself, but uses it to create Bean instance - in this case memcached client.
<?xml version="1.0" encoding="UTF-8"?>
<beans xmlns="" 


    <bean id="memcached.client" class="net.spy.memcached.spring.MemcachedClientFactoryBean">
        <property name="servers" value="host1:1122,host2:1122" />
        <property name="protocol" value="BINARY" />
        <property name="transcoder">
            <bean class="net.spy.memcached.transcoders.SerializingTranscoder" />
        <property name="locatorType" value="ARRAY_MOD" />
        <property name="opTimeout" value="2000" />
        <property name="failureMode" value="Cancel" />
        <property name="useNagleAlgorithm" value="false" />
        <property name="timeoutExceptionThreshold" value="20" />
public class MemcachedSpringBeanExample {

    private MemcachedClient memcached;

    protected MemcachedSpringBeanExample(@Named("memcached.client") MemcachedClient memcached) {
        this.memcached = memcached;

    public void doSomething(UasAccountId uasAccountId, LastLoginHistory histiry) {
        memcached.add("my_bean_key", 2000, new Object[] { "val1", "val2" });


  1. Hi Mac,
    I am very for this but i have some problem with memcache,I am trying for this in spring and hibernate with memcache but we are facing the problem if u have any idea about the configuration please reply as soon as possible(example program).

    Thanks & Regards,

  2. what problem do you have exactly?