memcached가 꽤나 많이 쓰나 보다.
c/c++,java,php,python,ruby,perl 등등.
언어별로 몇가지씩 다 있다.
그중 java에서는 크게
danga하고 spy가 유명한듯 하고,
둘다 사용하기는 편한것 같다.
어차피 memacehd의 목적이
db처럼 select, insert, update 등
데이타 넣고 빼고 하는거라,
멤캐쉬에서도 get/set/delete 정도만 쓰기 때문에,
굳이 클라이언트 라이브러리가
복잡할만한 이유도 없는듯 하다.
* Memcached client - java
우선 아래 두개 import 해주시고
import net.spy.memcached.MemcachedClient; import net.spy.memcached.internal.OperationFuture;
* pom.xml
maven에서 dependency는 아래처럼 추가해주면 된다.
maven에서 dependency는 아래처럼 추가해주면 된다.
<dependency> <groupId>com.google.code.simple-spring-memcached</groupId> <artifactId>spymemcached</artifactId> <version>2.8.1</version> </dependency>
* memcachedclient.java - delete (in spring)
memcached 접근은 MemcachedClient 객체를 사용하면 되고,
결과값은 boolean 타입이 아니라,
OperationFuture<Boolean>
이라는 객체타입으로 받는다.
memcached 접근은 MemcachedClient 객체를 사용하면 되고,
결과값은 boolean 타입이 아니라,
OperationFuture<Boolean>
이라는 객체타입으로 받는다.
@RequestMapping(value = "/memcached/delete", method = RequestMethod.POST, headers="Accept=application/json") public @ResponseBody Map<String, Object> delete(Locale locale, Model model, HttpServletRequest request, @RequestParam(value = "key", required = true, defaultValue = StringUtils.EMPTY) String key ){ Map<String, Object> rtMap = new HashMap<String, Object>(); MemcachedClient c; if(key.isEmpty()) { rtMap.put("rtcod","-1001"); return rtMap; } try { c = new MemcachedClient(new InetSocketAddress(nbilldv01, 11211)); OperationFuture<Boolean> result = c.delete(key); logger.info("[MemcacheController] DELETE - " + "key: " + key + ", result: " + result.getStatus()); rtMap.put("result", result.getStatus()); rtMap.put("rtcode", "0"); } catch (IOException e) { rtMap.put("rtcode", "-9999"); e.printStackTrace(); } return rtMap; }
참고
댓글
댓글 쓰기