Redis Tutorial 칼럼에서는 Redis캐싱 원리를 소개하는 글이 필요한 친구들에게 도움이 되길 바랍니다!
1. Redis란
Redis는 C언어로 작성된 고성능 오픈소스 Nosql(비관계형 데이터베이스)로, 데이터가 메모리에 저장됩니다. Redis는 기존 관계형 데이터베이스와는 다른 키-값 형식으로 저장됩니다. 예를 들어 SQL 표준, 트랜잭션, 테이블 구조 등을 따르지 않는 등 기존 데이터베이스의 일부 기본 요구 사항을 반드시 따르지는 않습니다. 비관계형 데이터베이스는 엄밀히 말하면 데이터베이스가 아니라 구조화된 데이터 저장 방법의 모음입니다. Java의 데이터 구조: 문자열, 배열, 목록, 세트 맵... Redis는 다양한 데이터 구조의 데이터에 액세스하는 데 사용할 수 있는 다양한 메서드를 제공합니다.
2. 특징(장점)
1. 데이터가 메모리에 저장되며, 빠른 접근 속도와 강력한 동시성 기능을 제공합니다.
2. 문자열(string), 목록(연결된 목록) 등 비교적 많은 저장 값 유형을 지원합니다. ), set(집합), zset(정렬된 집합 - 순서가 지정된 집합) 및 hash(해시 유형)입니다.
3. Redis의 출현은 memcached와 같은 키/값 저장소의 단점을 크게 보완했으며 경우에 따라 관계형 데이터베이스(예: MySQL)에 대한 매우 좋은 보완 역할을 할 수 있습니다.
4. Java, C/C++, C#, PHP, JavaScript 및 기타 클라이언트를 제공하므로 사용이 매우 편리합니다.
5.Redis는 클러스터링(마스터-슬레이브 동기화, 로드 밸런싱)을 지원합니다. 데이터는 마스터 서버에서 원하는 수의 슬레이브 서버로 동기화될 수 있으며, 슬레이브 서버는 다른 슬레이브 서버와 연결된 마스터 서버가 될 수 있습니다.
6. 지속성 지원, 데이터를 하드 디스크의 파일에 저장할 수 있습니다.
7. QQ 그룹 구독/게시 기능 지원
1. 데이터 저장: 메모리에 저장되며 수시로 디스크에 유지될 수 있습니다. 액세스 속도가 빠르고 동시성 기능이 강력하며 정전 후에도 데이터가 손실되지 않습니다.
2. 더 많은 값 유형을 지원합니다.
3. 다중 클라이언트(언어 java php c# js)
4. 공간 확장을 위한 클러스터 지원 8G+8G+16G
5. 오픈 소스(무료이며 많은 사람들이 유지 관리)
3 Redis 서버 설치
The Redis 공식 다운로드 사이트는 http://redis.io/download 이며, 여기에서 최신 설치 프로그램을 다운로드할 수 있습니다.
3.1. Windows 환경에서 설치 및 사용
1. redis 프로그램 소프트웨어 다운로드
redisbin32 또는 redisbin64 사용
2. 녹색 소프트웨어, 설치 불필요, 직접 사용
3. redis 서비스 시작(구성 파일로 시작, 구성 파일 없이 시작)
4. 작업을 위해 redis에 연결
cmd>{%redis%}/redis -cli -h ip 주소 -p 포트 번호
ip 기본값은 로컬 -p 기본값은 6379
redis-cli -h 172.16.6.248 -p 6379
cmd>{%redis%}/redis-cli
2. Redis 지속성 구성
Redis는 redis.conf를 수정하여 구성할 수 있는 두 가지 수준의 지속성 방법인 RDB와 AOF를 제공합니다.
지속성 조건이 충족되면 유지되어 저장되며, 아직 저장되지 않은 데이터는 aof log 형태로 저장됩니다.
Redis가 시작되면 먼저 로그 파일(명령 묶음)을 구문 분석하고 데이터를 복원합니다. 그런 다음 rdb 파일도 로드합니다(합집합을 사용).
4.RDB 모드
RDB 지속성은 지정된 시간 간격 내에 데이터 세트의 특정 시점 스냅샷을 생성할 수 있습니다. 이 모드는 기본적으로 활성화되어 있습니다.
RDB 모드를 끄는 방법:
“” 저장
save 900 1 //적어도 900초 이내에 스토리지 동기화에 하나 이상의 변경 사항이 있습니다.
save xxx save 60 10000
5 AOF 로그 추가 모드
AOF는 서버에서 실행되는 모든 쓰기 작업 명령을 지속적으로 기록하고, 서버가 시작될 때 이러한 명령을 다시 실행하여 데이터 세트를 복원합니다. 이 모드는 기본적으로 꺼져 있습니다.
aof 모드를 활성화하는 방법:
추가만 yes //yes는 on, no는 off
#appendfsync 항상 //새 명령이 있을 때마다 fsync를 실행하고 버퍼 데이터를 aof 파일에 넣습니다
#여기서 Everysec을 활성화합니다
appendfsynceverysec //fsync는 초당 한 번
#appendfsync no //fsync 안 함(운영 체제에 맡겨 처리하면 fsync를 실행하는 데 시간이 오래 걸릴 수 있음)
다른 매개 변수는 redis.conf 구성 파일을 참조하세요. 자세한 설명
6.Redis 클래식 실제 시나리오 - 캐시
6.1 캐시를 사용하는 이유
자주 쿼리되는 데이터와 거의 수정되지 않는 데이터를 캐시에 저장하여 데이터베이스에 대한 액세스를 줄이고 데이터베이스 부담을 줄입니다. 일반적으로 메모리에 있으며 액세스 속도가 상대적으로 빠릅니다.
6.2 캐시에 저장하기에 적합한 데이터는 무엇인가요?
자주 쿼리: 캐싱은 데이터 쿼리에 효율적으로 액세스할 수 있도록 하기 위한 것입니다.
거의 수정되지 않음: 수정 시 캐시와 데이터베이스를 동시에 수정해야 함
예: 지역 데이터, 제품 분류, 데이터 사전 메뉴(권한 관계 없음)
6.3 적절한 캐시 선택
2차 캐시 최대 절전 모드, mybatis 2단계 캐시, redis 중앙 캐시
Hibernate 2단계 캐시, mybatis 2단계 캐시는 기본적으로 클러스터 캐시를 지원하지 않습니다. redis
6.4 데이터 저장 방법
1) json: 데이터를 변환합니다. json 형태의 문자열로 저장
캐시를 저장할 때:
Java Object------------>json string
캐시 가져오기:
json string---------> Java Object-
Json 프레임워크: jdk- json-lib jackson gson fastjson
2) 바이너리 저장소: 바이너리 직렬화 프레임워크에 저장할 데이터를 직렬화하여 구현
7. 메뉴 캐싱 구현
위 내용은 Redis 캐싱 원칙에 대한 간단하고 이해하기 쉬운 소개의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!