데이터베이스 -memcached 캐시 서비스

2.1 문제

이 경우 memcached 서버를 빠르게 설정하고 memcached를 간단히 추가, 삭제, 수정 및 확인
해야합니다. memcached 소프트웨어를 설치하고 서비스를 시작합니다.
텔넷을 사용하여 memcached 서비스
테스트하여 추가, 삭제, 수정 및 확인합니다. memcached, etc. Operation
2.2 Scheme

RHEL7 가상 머신을 memcached 서버 (192.168.4.5)로 사용합니다.
Memcached는 RHEL7 시스템 CD에 포함되어 있으므로 미리 yum 소스를 구성하고 yum을 사용하여 직접 설치할 수 있으며 클라이언트 테스트를 위해 텔넷 원격 도구를 미리 설치해야합니다.
확인을 위해서는 클라이언트 호스트가 telnet을 설치하고 원격 memcached를 설치하여 서버의 기능을 확인해야합니다.
add name 0180 10 // 변수가 없으면
set name 추가 0180 10 // 변수 추가 또는 교체
replace name 0 180 10 //
이름 바꾸기 // 변수
삭제 이름 읽기 // 변수 삭제
flush_all // 모두 지우기
팁 : 0은 압축되지 않음을 의미하고 180은 데이터 캐시 시간, 10은 저장해야하는 데이터 바이트 수입니다. .
2.3 단계

이 경우를 구현하려면 아래 단계를 따라야합니다.
1 단계 : Memcached 서비스 빌드

1) yum을 사용하여 패키지 memcached
[root @ proxy ~] # yum -y install memcached telnet
[root @ proxy ~] # rpm -qa memcached
memcached-1.4.15-10.el7_3.1.x86_64
2) memcached 구성 파일 (수정없이 볼 수 있음)
[root @ proxy ~] # vim /usr/lib/systemd/system/memcached.service
ExecStart = / usr / bin / memcached -u $ USER -p $ PORT -m $ CACHESIZE- c $ MAXCONN $ OPTIONS
[root @ proxy ~] # vim / etc / sysconfig / memcached
PORT =“11211”
USER =“memcached”
MAXCONN =“1024”
CACHESIZE =“64”
OPTIONS = ""
3) 서비스 시작 및 확인 네트워크 연결 상태 확인 성공 :
ss 명령은 시스템에서 시작된 포트 정보를 볼 수 있습니다.이 명령의 일반적인 옵션은 다음과 같습니다.
-a 모든 포트의 정보를
표시합니다. -n 숫자 형식으로 포트 번호를 표시합니다
.- t는 TCP 연결 포트를 표시합니다.
-u는 UDP를 표시합니다. 연결된 포트
-l은 서비스가 모니터링하는 포트 정보를 표시합니다. 예를 들어 httpd가 시작된 후에는 항상 포트 80을 수신합니다.
-p는 수신 포트의 서비스 이름 (즉, 프로그램 이름)을 표시합니다.
참고 : RHEL7 시스템에서는 netstat 대신 ss 명령을 사용할 수 있으며 기능은 옵션과 동일합니다.
[root @ proxy ~] # systemctl start memcached
[root @ proxy ~] # systemctl status memcached
[root @ proxy ~] # ss -anptu | grep Memcached
udp UNCONN 0 0 : 11211 : users : (( "memcached", pid = 12068, fd = 28))
udp UNCONN 00 ::: 11211 :::
users : (( "memcached", pid = 12068, fd = 29))
tcp LISTEN 0128 : 11211 : users : (( "memcached", pid = 12068, fd = 26))
tcp LISTEN 0128 ::: 11211 :::
users : (( "memcached", pid = 12068, fd = 27))
2 단계 : 텔넷을 사용하여 memcached 서버에 액세스

1) 텔넷을 사용하여 서버에 연결하여 추가, 삭제, 수정 및 확인과 같은 작업을 포함하여 memcached 서버 기능을 테스트합니다.
[root @ proxy ~] # telnet 192.168.4.5 11211 192.168.4.5
시도 중 ...
……
## 힌트 : 0은 압축되지 않음을 의미하고 180은 데이터 캐시 시간을 의미하며 3은 저장해야하는 데이터 바이트 수를 의미합니다.
set name
0180 3 // 변수 정의, 변수 이름은 이름 plj // 변수 값 입력, 값은 plj
STORED
get name // 변수 값 가져 오기
VALUE name 0 3 // 결과 출력
plj
END
## 힌트 : 0은 압축하지 않음을 의미하고 180은 데이터 캐시 시간, 3은 저장해야하는 데이터 바이트 수입니다.
add myname 0180 10 // 새로 만들기, myname이 존재하지 않으면 추가, 존재하면 오류보고
set myname 0180 10 // 변수 추가 또는 교체
replace myname 0180 10 // replace, myname이 없으면 신고,보고 an error
get myname // read Variable
delete myname // Delete variable
flush_all // Empty all
quit // Log out
3 사례 3 : PHP가 세션 공유를 인식합니다.
3.1 문제

사용 운동 셋은 PHP-FPM 구성 파일을 수정하여 세션 공유를 실현하기 :
. 공유 세션 정보에 memcached를 서버를 사용하도록 구성 PHP를 할 때
클라이언트가 두 개의 서로 다른 백 엔드 웹 서버에 액세스 세션 정보가 일치한다.
3.2 솔루션

실습 3 토폴로지를 기반으로 Nginx 서버는 스케줄러 역할을 맡을뿐만 아니라 memcached 데이터베이스 역할도 수행해야하며 두 백엔드 LNMP 서버에서 PHP 세션 공유를 구현합니다. 토폴로지는 그림 -4에 나와 있습니다.
여기에 사진 설명 삽입
그림 -4
3.3 단계

이 경우를 구현하려면 아래 단계를 따라야합니다.
1 단계 : 웹 서버용 PHP 확장 설치

1) web1 호스트에 PHP 용 memcache 확장 추가
[root @ web1 ~] # yum -y install php-pecl-memcache
[root @ web1 ~] # systemctl restart php-fpm
2) web2 host
[root @ web2 ~] # yum -y install php-pecl-memcache
[root @ web2 ~] # systemctl restart php-fpm
2 단계 : 백엔드 LNMP 서버에 세션 공유 배포

참고 : 이러한 작업은 두 백엔드 웹 서버에서 모두 수행해야합니다. 다음 작업에서는 Web1 (192.168.2.100) 서버를 예로 들어 설명합니다.
1) PHP-FPM 구성 파일을 수정하고 서비스를 다시 시작합니다.
두 개의 백엔드 웹 서버 (web1, web2)가 모두 구성 파일 (아래 예제의 web1도)을 수정해야하기 때문입니다.
[root @ web1 ~] # vim /etc/php-fpm.d/www.conf // 구성 파일의 두 매개 변수 수정 // 파일
의 마지막 두 줄
수정 전 효과는 다음과 같습니다.
php_value [session .save_handler] = 파일
php_value [session.save_path] = / var / lib / php / session
// 원본 파일, Sessoin 세션 정보 기본 정의 로컬 컴퓨터 (기본값 : / var / lib / php / session)
+++++ ++++++ ++++++++++++++++++++++++++++++++++++++++++++ ++++++++ ++++++++++++
수정 된 효과는 다음과 같습니다.
php_value [session.save_handler] = memcache
php_value [session.save_path] = "tcp : //192.168.2.5 : 11211 "
// 저장할 세션 정보를 정의합니다. 공개 memcached 서버에서 호스트 매개 변수는 memcache (d 없음)입니다.
// path 매개 변수를 사용하여 공개 memcached 서버가있는 위치 (서버 IP 및 포트)를 정의합니다.
[root @ web1 ~] # systemctl restart php-fpm
3 단계 : 클라이언트 테스트

클라이언트는 브라우저를 사용하여 두 개의 서로 다른 웹 서버에 액세스합니다.
작업 단계는 연습 1을 참조하고 마지막으로 관련 세션 ID 정보를 가져옵니다.

추천

출처blog.csdn.net/weixin_45942735/article/details/104576960