2011-11-19 6 views
-2

나는 mysql 데이터베이스에 엄청난 양의 데이터를 저장하는 데 너무 많은 시간이 걸리는 웹 페이지를 가지고있다.자바에서 Memcached

mysql 데이터베이스를 연결하기 위해 java 클래스 파일을 사용하고 쿼리를 실행 중입니다.

memcache를 추가해야합니다. memcache를 설치해야합니다.

그리고 테스트 DB에 연결되어있는 다른 자바 클래스입니다

String[][] test=null; 
MemcachedClient c=new MemcachedClient(new InetSocketAddress("localhost",11211)); 
if (!"mykey1".equals("")&&"mykey1"!=null) { 
    System.out.print(test[0][0]); 
} else { 
    System.out.print("Else"); 
    test=new Test(conn).getTestInfo(1,50); 
    c.set(key, 3600, url); 
    System.out.println("get"+c.get(key)); 
    Object myObject=c.get(key); 
} 

을 다음과 같이 내가 코드를했다 ... 내가 위의 코드를 실행하면 는 그냥 다른 부분을 실행하고이 클래스 파일을 실행에 간다 빌드는, pls는 자바에서 memcache에 일에 나를 도와에서 Memcache 정말 아주 새로운

암 ......

+0

mykey1은 memcache에 대한 키를 사용 ... 어떻게 키 – ashu

+0

이, mykey1 어떤 기괴한 memcache에의한다 설정하는 밝은 전망을 가지고 있겠지? 시험이란 무엇입니까? 왜 문자열 배열로 설정되어 있습니까? Test 클래스 란 무엇입니까? 열쇠는 무엇으로 선언 되었습니까? –

+0

충분한 코드를 게시 할 수 있습니까? 이 스 니펫은 mykey1이 큰 따옴표로 묶인 이유를 돕지 않습니다. –

답변

4

코드는 심각한 문제가 너무 가득 내가 알지도 못하는 중단되지 않습니다 시작합니다.

1)이있는 경우 문

if(!"mykey1".equals("")&&"mykey1"!=null){ 
    System.out.print(test[0][0]); 
} else { 

문자열 m1key1가 빈 문자열에 해당되지 않습니다 그래서 어떤 그렇지 않으면 다른 지점이 여기 실행 것보다, null로 동일하지 않습니다?

아마도 mykey1이라는 변수 대신 "mykey1"이라는 문자열을 의미 할 것입니다.

2) 라인 4 매 시간에서 예외 얻을 것입니다 :

System.out.print(test[0][0]); 

3) 당신은 당신이 값을 설정 한 후 memcache에 조회를 할 수 있습니다. 이것은 보통 당신이 원하는 것이 아닙니다.

0

Memcahced는 mysql을 오프로드하는 올바른 방법입니다. 거기에 그것을 사용하는 여러 가지 방법. 3levelmemcache 프로젝트를 예로 든 github이라는 재전송 소스를 사용하는 것이 좋습니다. Spring 기반의 추상화로 Memcahced 또는 Couchase 또는 다른 어떤 것도 숨기고 더 빠르게 개발할 수 있습니다. 연결 풀과 JVM 2 차 레벨 캐시도 있습니다.