>  기사  >  백엔드 개발  >  .net에서 Memcached 적용

.net에서 Memcached 적용

黄舟
黄舟원래의
2017-03-13 13:18:221335검색

1. 서버 설치 및 구성

1) 파일을 c:memcached에 추출합니다(어느 위치든 선택 가능)

2) 명령줄에 'c:memcachedmemcached.exe -d install' 입력

3) 명령줄에 'c:memcachedmemcached.exe -d start' 입력 이 명령은 Memcached를 시작하며 기본 수신 포트는 11211

4) memcached.exe -h

를 통해 도움말을 볼 수 있습니다. 둘째, 클라이언트 설치 및 참고



클라이언트가 서버를 운영하기 위해서는 다양한 옵션이 있지만 여기서는 dll 메서드를 사용하기로 결정했습니다. 왜냐하면 dll 메서드가 생성 속도가 더 빠르고 구성 파일의 번거로운 설정을 피하는 것이 더 편리하기 때문입니다. 텔넷 명령 등의 경우 서버 측에서 이를 사용하여 데이터 확인, 캐시 적중률 확인 등을 할 수 있습니다.

1. Dll 관련 참고자료

Dll 다운 후 프로젝트에 그림 참조 추가

2, 문제가 발생할 수 있습니다

log4net을 소개할 때 Memcached.ClientLibray로 작업하면서 도입되었고, 클래스 파일에도 using이 추가되었으나, 생성 시 오류가 보고되었는데, 나중에 버전을 변경한 후 .net 프레임워크 버전에 문제가 있는 것으로 확인되었습니다. 아래 표시된 버전에서 .net Framework 4로 생성되었습니다.

3가지, Memcached 메커니즘에 대한 심층적인 이해

1. , 간단한 프로토콜

1) C/S 아키텍처, 이때 memcached가 서버이고, memcached 서버에 접속하기 위해 다양한 클라이언트 프로그램을 사용할 수 있다.

2) Memcached의 서버-클라이언트 통신은 XML 및 기타 형식을 사용하지 않고 간단한 텍스트 라인 기반 프로토콜을 사용하므로 텔넷을 통해 Memcached에 데이터를 저장하고 얻을 수도 있습니다. .

2, libevent 기반 이벤트 처리

1) Libevent는 이러한 운영 체제와 호환되는 크로스 플랫폼 이벤트 처리 인터페이스 캡슐화 세트입니다. system: Windows/Linux/BSD/Solaris 등 운영 체제의 이벤트 처리입니다.

2) Memcached는 libevent를 사용하여 동시 네트워크 연결을 처리하므로 대규모 동시 상황에서도 빠른 응답 능력을 유지할 수 있습니다.

3. 내장 메모리 저장 방식

성능 향상을 위해 memcached에 저장된 데이터를 내장 메모리에 저장합니다. memcahced의 메모리 저장 공간입니다. 데이터는 메모리에만 존재하기 때문에 memcached를 다시 시작하고 운영 체제를 다시 시작하면 모든 데이터가 사라집니다. 또한, 콘텐츠 용량이 지정된 값에 도달하면 LRU(Least Recent Used) 알고리즘을 기반으로 사용하지 않는 캐시를 자동으로 삭제합니다. Memcached 자체는 캐싱, 숨기기 및 데이터 지속성에 대해 너무 많이 생각하지 않도록 설계된 서버입니다.

4, 클라이언트 기반 분산

Memcached는 "분산형" 캐시 서버이지만 서버에는 분산 기능이 없습니다. 개별 memcached는 정보를 공유하기 위해 서로 통신하지 않습니다. 따라서 배포를 수행하는 방법은 전적으로 클라이언트 구현에 따라 다릅니다. 관심이 있는 경우 Baidu에서 해시 알고리즘을 다운로드할 수 있습니다.




코드 경험:


4개, memcached와 세션

1) 수명 주기가 다릅니다

2) 해결하려는 문제의 초점이 다르다

다섯째, memcached와 Cache

캐시를 사용한다 . Net의 상태 관리 기능도 매우 강력합니다. 1. 캐시 종속성: 파일, 데이터베이스 또는 종속성의 조합에 의존할 수 있으며 데이터가 만료될 때 데이터를 제때 업데이트할 수 있도록 데이터 만료에 대한 알림 메커니즘을 제공합니다. . 2. 알림 메커니즘 사용: 과거에는 데이터가 만료되었는지 여부를 확인하는 데 폴링 메커니즘이 사용되었습니다. 이는 데이터가 업데이트되었는지 확인하는 루프와 유사합니다. 시간. 하지만 항상 폴링 메커니즘이 매우 이상하다고 느낍니다. 예를 들어 집에서 물을 끓일 때 항상 물이 끓는지 확인해야 할 것이 아니라 물이 끓고 있는지 확인해야 합니다. 소리는 물이 끓고 있다는 것을 알려줄 것입니다. 노티피케이션 메커니즘의 의미는 옵저버 패턴을 보면 알 수 있는데, 23가지 디자인 패턴 중에서 꽤 많이 사용됩니다.

6. memcached 적용 시나리오

1) 자주 변경되고 불안정한 데이터를 실시간으로 저장할 필요가 없음(예: 사용자) 온라인 상태, 온라인 접속자 수)

2) 포털 홈페이지 소식 등, 페이지의 정적 페이지는 아직 요건을 충족하지 못해서 넣을 수 있는 것 같아요. Memcached(jquery AJAX 요청 사용) 🎜>

……

7. memcached의 보안 문제

memcached에는 인증 메커니즘이 내장되어 있지 않으므로 다음을 사용하여 로그인할 수 있습니다. telnet을 통해 IP+포트에 접속한 후 내부로 들어가면 데이터가 도살될 양이 됩니다. 해킹을 방지하기 위해 memcached 서버의 외부 액세스 포트를 닫고 로컬 프로그램만 액세스하도록 허용할 수 있습니다.

에잇, 유사 기술 비교

1, Redis

1) 더 많은 가치 지원 type

2) 지속성: redis는 주기적으로 업데이트된 데이터를 디스크에 쓰거나 추가 기록 파일에 수정 작업을 쓰며, 이를 기반으로 마스터-슬레이브(master-slave)를 구현합니다. 동기화

3) 마스터-슬레이브 동기화 지원: 마스터 서버에서 원하는 수의 슬레이브 서버로 데이터를 동기화할 수 있으며 슬레이브 서버는 다른 슬레이브 서버 메인 서버와 연결할 수 있습니다. 이를 통해 Redis는 단일 수준 트리 복제를 수행할 수 있습니다. 저장은 의도적으로 또는 의도하지 않게 데이터를 쓸 수 있습니다. 게시/구독 메커니즘이 완전히 구현되었으므로 슬레이브 데이터베이스가 어디에서나 트리를 동기화하면 채널을 구독하고 마스터 서버의 전체 메시지 릴리스 기록을 수신할 수 있습니다. 동기화는 읽기 작업의 확장성과 데이터 중복성에 도움이 됩니다.

2, EhCache

1) 빠르고 유능한 순수 Java 프로세스 내 캐싱 프레임워크는 Hibernate의 기본 CacheProvider입니다.

2) 오픈 소스 Java 분산 캐시: 주로 일반 캐시, Java EE 및 경량 컨테이너용입니다. 메모리 및 디스크 저장소, 캐시 로더, 캐시 확장, 캐시 예외 처리기, gzip 캐시 서블릿 필터, REST 및 SOAP API 지원 등을 제공합니다.

. . . . . . . . .

위 내용은 .net의 Memcached 애플리케이션 내용입니다. 더 많은 관련 내용은 PHP 중국어 홈페이지(www.php.cn)를 참고해주세요!

성명:
본 글의 내용은 네티즌들의 자발적인 기여로 작성되었으며, 저작권은 원저작자에게 있습니다. 본 사이트는 이에 상응하는 법적 책임을 지지 않습니다. 표절이나 침해가 의심되는 콘텐츠를 발견한 경우 admin@php.cn으로 문의하세요.
이전 기사:모두를 위한 Xamarin다음 기사:모두를 위한 Xamarin