Memcache のサンプル利用例

利用する箇所は、Controller でも Service でもよい。
下記は Controller での利用した場合のサンプル。

import org.slim3.memcache.Memcache;

public class MyAppController extends Controller {
    private MyAppService service = new MyAppService();
    private static final Integer 30_SECONDS = 30;

    @Override
    public Navigation run() throws Exception {
        List<MyModel> myModelList;

        String parameterHoge = (null == request.getParameter("a")) ? "N/A" : request.getParameter("a");
        String parameterFuga = (null == request.getParameter("b")) ? "N/A" : request.getParameter("b");
        String cacheKey = Hoge + ":" + Fuga;

        if (Memcache.contains(cacheKey)) {
            myModelList = articleList = Memcache.get(cacheKey);
        } else {
            myModelList = service.getAll(Hoge, Fuga);
            Memcache.put(cacheKey, myModelList, Expiration.byDeltaSeconds(30_SECONDS), SetPolicy.SET_ALWAYS);
        }

        requestScope("myModelList", myModelList);
        return forward("index.jsp");
    }
}

すごく簡単。