Two clients will be covered: XMemcached and spymemcached
Xmemcached
Add dependency
Add in BuildConfig.groovy:
dependencies { ... compile 'com.googlecode.xmemcached:xmemcached:1.4.2' }
Set up the bean
Add in conf/spring/resources.groovy:
beans = { ... memcachedClient(net.rubyeye.xmemcached.utils.XMemcachedClientFactoryBean) { servers="localhost:11211" } }
Usage in a service
class MyService { static final int expiry = 30 // 30s def memcachedClient def perform() { def val = memcachedClient.get('key') if (!val) { // cache miss ... // put in cache memcachedClient.set('key', expiry, val) } // use val } ... }
Spy Memcached
Add dependency
Add in BuildConfig.groovy:
dependencies { ... compile 'net.spy:spymemcached:2.9.1' }
Set up the bean
Add in conf/spring/resources.groovy:
beans = { ... memcachedClient(net.spy.memcached.spring.MemcachedClientFactoryBean) { servers="localhost:11211" } }
Usage in a service
class MyService { static final int expiry = 30 // 30s def memcachedClient def perform() { def val = memcachedClient.get('key') if (!val) { // cache miss ... // put in cache memcachedClient.set('key', expiry, val) } // use val } ... }