내 연락처 정보
우편메소피아@프로톤메일.com
2024-07-12
한어Русский языкEnglishFrançaisIndonesianSanskrit日本語DeutschPortuguêsΕλληνικάespañolItalianoSuomalainenLatina
1.성능
Redis: 평균적으로 단일 코어만 사용합니다. 각 코어에 작은 데이터를 저장할 때 Redis는 Memcached보다 성능이 더 높습니다.
Memcached: 다중 코어를 사용할 수 있으며, 100k 이상의 데이터에서는 Memcached 성능이 Redis보다 높습니다.
2. 메모리 사용 효율성
MemCached: 간단한 키-값 저장소를 사용하는 Memcached는 메모리 활용도가 더 높습니다.
Redis: 해시 구조가 키-값 저장에 사용되는 경우 결합된 압축으로 인해 메모리 사용률이 Memcached보다 높아집니다.
3. 메모리 공간 및 데이터 크기
MemCached: LRU 알고리즘을 사용하여 최대 메모리를 수정할 수 있습니다. Memcached에서 단일 키-값의 크기는 제한되어 있으며 값은 최대 1MB만 지원합니다.
Redis: VM 기능을 추가하고 물리적 메모리의 한계를 극복합니다. Redis는 최대 512MB의 단일 키-값 크기를 지원합니다.
4.데이터 구조 지원
MemCached: 단일 데이터 구조로 데이터를 캐시하는 데만 사용됩니다.
Redis: 더욱 풍부한 데이터 유형을 지원합니다. Redis는 단순한 k/v 유형 데이터를 지원할 뿐만 아니라 list, set, zset 및 hash와 같은 데이터 구조의 저장도 제공합니다.
데이터에 대한 다양한 작업을 서버 측에서 직접 수행할 수 있으므로 네트워크 IO 시간과 데이터 볼륨을 줄일 수 있습니다.
5.신뢰성
Memcached: 안정성 요구 사항이 낮은 단순한 메모리 캐시입니다. MemCached는 데이터 지속성을 지원하지 않습니다. 정전 또는 재시작 후에 데이터는 사라지지만 안정성은 보장됩니다.
Redis: 높은 안정성 요구 사항이 있고 데이터 지속성 및 데이터 복구를 지원하며 단일 실패 지점을 허용하고 일부 성능에도 영향을 미칩니다. 데이터 백업, 즉 마스터-슬레이브 모드의 데이터 백업을 지원합니다. Redis는 데이터 지속성을 지원하므로 메모리의 데이터를 디스크에 저장하고 다시 시작할 때 사용할 수 있도록 다시 로드할 수 있습니다.
6. 응용 시나리오
Memcached: 동적 시스템 캐시에서 데이터베이스 로드를 줄이고 성능을 향상시키며, 더 많은 읽기, 더 적은 쓰기 및 대용량 데이터 볼륨 시나리오에 적합합니다.
Redis: 높은 읽기 및 쓰기 효율성, 복잡한 데이터 처리 비즈니스, 높은 보안 요구 사항이 필요한 시스템에 적합합니다.
1.레디스 설치
먼저 방화벽을 꺼주세요
- 先把防火墙关掉
- systemctl stop firewalld
- set setenforce 0
-
- [root@localhost ~]# yum -y install gcc* zlib-devel
- 解压 redis包
- [root@localhost ~]# tar xvzf redis-4.0.9.tar.gz
- [root@localhost ~]# cd redis-4.0.9/
-
- make
- 2:查看进程
- [root@localhost utils]# netstat -anpt | grep redis
-
- 3:redis服务控制
- [root@localhost ~]#/etc/init.d/redis_6379 stop
- [root@localhost ~]#/etc/init.d/redis_6379 start
- [root@localhost ~]#/etc/init.d/redis_6379 restart
- [root@localhost ~]#/etc/init.d/redis_6379 status
- 4.配置参数的修改
- [root@localhost ~]#vim /etc/redis/6379.conf
- bind 127.0.0.1 192.168.10.101 //监听的主机地址
- port 6379 //端口
- daemonize yes //启用守护进程
- pidfile /var/run/redis_6379.pid //指定 PID 文件
- loglevel notice //日志级别
- logfile /var/log/redis_6379.log //指定日志文件
-
- [root@localhost~]#/etc/init.d/redis_6379 restart
- [root@localhost utils]# netstat -anpt | grep redis
-
- 二:Redis 命令工具
- redis-server:用于启动 Redis 的工具;
- redis-benchmark:用于检测 Redis 在本机的运行效率;
- redis-check-aof:修复 AOF 持久化文件;
- redis-check-rdb:修复 RDB 持久化文件;
- redis-cli:Redis 命令行工具。
세트 생성
보기
키 * 모두 보기
이름 바꾸기(덮어쓰겠습니다)
renamenx (동일한 이름이 있는지 확인한 후 rename 명령 실행 여부를 결정,)
del(명령어는 현재 데이터베이스의 지정된 키를 삭제할 수 있음)
존재합니다(명령은 키 값이 존재하는지 여부를 확인할 수 있음).
type(type 명령을 사용하여 키에 해당하는 값 유형을 가져옵니다)
선택(데이터베이스 전환)
이동(데이터 이동)
flashdb(현재 데이터베이스 데이터 지우기)
플러시홀(모든 데이터베이스 데이터 지우기)
- -p:指定服务器端口;
- -s:指定服务器 socket;
- -c:指定并发连接数;
- -n:指定请求数;
- -d:以字节的形式指定 SET/GET 值的数据大小;
- -k:1=keep alive 0=reconnect;
- -r:SET/GET/INCR 使用随机 key, SADD 使用随机值;
- -P:通过管道传输<numreq>请求;
- -q:强制退出 redis。仅显示 query/sec 值;
- --csv:以 CSV 格式输出;
- -l:生成循环,永久执行测试;
- -t:仅运行以逗号分隔的测试命令列表;
- -I:Idle 模式。仅打开 N 个 idle 连接并等待。
레디스 모든 데이터는 메모리에 저장된 후 때때로 디스크에 비동기적으로 저장됩니다.(이것은 ... 불리운다“반영구적 모드”); 모든 데이터 변경 사항을 파일만 추가(aof)~에(이것은 ... 불리운다“전체 지속성 모드”)。
왜냐하면 레디스 지속성이 구성되지 않은 경우 모든 데이터는 메모리에 저장됩니다.레디스 다시 시작하면 모든 데이터가 손실됩니다.따라서 다음을 활성화해야 합니다.레디스 지속성 기능은 데이터를 디스크에 저장합니다. 레디스 재부팅 후 디스크에서 데이터를 복구할 수 있습니다.레디스 지속성을 위해 두 가지 방법이 제공됩니다. 그 중 하나는 뉴스레터 구독하기(레디스 데이터베이스) 지속성(원칙은 리드인메모리 데이터베이스 로깅 타이밍 덤프 디스크에 뉴스레터 구독하기 끈기), 다른 하나는 오피오피(추가 전용 파일)지속성(원칙은 리드 작업 로그는 첨부된 방식으로 파일에 기록됩니다.
기본 방법
RDB 지속성은 현재 프로세스 데이터의 스냅샷을 생성하여 하드 디스크에 저장하는 프로세스입니다. RDB 지속성을 트리거하는 프로세스는 수동 트리거링과 자동 트리거링으로 구분됩니다.
트리거 메커니즘: 수동 트리거는 각각 save 및 bgsave 명령에 해당합니다.
save 명령: RDB 프로세스가 완료될 때까지 현재 Redis 서버를 차단합니다. 메모리 양이 많은 인스턴스의 경우 시간 차단이 발생합니다. 온라인 환경에서는 사용하지 않는 것이 좋습니다.
bgsave 명령: Redis 프로세스는 포크(프로세스 생성에 사용되는 함수) 작업을 실행하여 하위 프로세스를 생성합니다. RDB 지속성 프로세스는 하위 프로세스를 담당하며 완료 후 자동으로 종료됩니다. 차단은 포크 단계에서만 발생합니다.
RDB의 장점:
RDB는 특정 시점의 Redis 데이터 스냅샷을 나타내는 압축된 압축 바이너리 파일입니다. 백업, 전체 복사 및 기타 시나리오에 매우 적합합니다. 예를 들어, 6시간마다 bgsave 백업을 수행하고 재해 복구를 위해 RDB 파일을 원격 시스템이나 파일 시스템에 복사합니다.
Redis는 RDB를 로드하고 AOF 방식보다 훨씬 빠르게 데이터를 복구합니다.
RDB의 단점:
RDB 모드의 데이터는 실시간 지속성/두 번째 수준 지속성을 달성할 수 없습니다. bgsave를 실행할 때마다 자식 프로세스를 생성하기 위해 포크(fork) 작업을 수행하기 때문에 이는 중량 작업이고 빈번한 실행 비용이 너무 높습니다.
RDB 파일은 특정 바이너리 형식으로 저장됩니다. Redis 버전이 발전하면서 RDB 버전의 형식이 다양해졌습니다. Redis 서비스의 이전 버전이 새 버전의 RDB 형식과 호환되지 않는 문제가 있습니다.
2. AOF란 무엇인가요?
AOF(append only file) 지속성: 각 쓰기 명령을 독립 로그에 기록한 다음 AOF 파일에서 명령을 다시 실행하여 다시 시작할 때 데이터를 복원합니다. AOF의 주요 기능은 데이터 지속성의 실시간 문제를 해결하는 것입니다. 이는 이제 Redis 지속성의 주류입니다.
더 높은 캐시 일관성을 위해 일부 성능을 희생합니다(오피오피),
쓰기 작업이 빈번할 경우 성능 향상을 위해 백업을 활성화하지 말고 수동 작업을 기다리십시오. 구하다 언제 다시 백업해두세요(뉴스레터 구독하기)
주목:
Redies가 다시 시작된 후 영구 파일을 로드해야 하는 경우 AOF 파일이 선택됩니다.
RDB를 먼저 활성화한 다음 AOF를 활성화하고 RDB를 먼저 유지하면 RDB 파일의 내용이 AOF로 덮어쓰여집니다.
[root@localhost ~]# vim /etc/redis/6379.conf
열려 있는 6379.conf 파일을 검색한 후 구하다, 아래와 같이 구성 정보를 볼 수 있습니다.
존재하다 레디스 구성 파일에는 세 가지 동기화 방법이 있습니다.
항상: 동기 지속성, 데이터가 변경될 때마다 즉시 디스크에 기록됩니다.
Everysec: 기본적으로 권장, 1초마다 비동기식으로 녹화(기본값)
no: 동기화하지 않습니다. 동기화 방법을 결정하는 것은 운영 체제에 맡깁니다.
문제가 있을 수 있는 마지막 명령을 무시합니다.
[root@localhost ~]#/etc/init.d/redis_6379 재시작
해결하기 위해 오피오피 파일 크기가 계속 증가하는 경우 사용자는 다음 주소로 신고할 수 있습니다. 레디스 보내다 BGREWRITEAOF주문하다.BGREWRITEAOF 명령은 다음을 통해 제거됩니다. 오피오피 재정의할 파일의 중복 명령(고쳐 쓰기)오피오피파일, 만들다 오피오피 파일 크기를 가능한 한 작게 유지하십시오.
127.0.0.1:6379> bgrewriteaof
백그라운드 추가 전용 파일 다시 쓰기가 시작되었습니다.
# 로그가 BGREWRITEAOF인 경우,만약에다시 쓰기 시 appendfsync 없음yes로 설정하면 새 쓰기 작업이 fsync와 동기화되지 않고 임시로만 버퍼에 저장된다는 의미입니다. , 디스크 IO 작업 충돌을 방지하려면 쓰기 전에 다시 쓰기가 완료될 때까지 기다리십시오. Redis의 기본값은 no입니다.
no-appendfsync-on-rewrite 없음
# 마지막 로그 재작성 중에 현재 AOF 파일 크기가 AOF 파일 크기의 두 배가 되면 BGREWRITEAOF 작업이 발생합니다.
자동-aof-재작성-백분율 100
주목:
100추천아오프파일 증가율은 마지막 재작성과 비교하여 현재 AOF 파일의 증가율을 나타냅니다.,100두 번이다
#Reids가 처음 시작될 때 작은 파일 크기로 인해 빈번한 BGREWRITEAOF를 피하기 위해 BGREWRITEAOF 명령을 실행하기 위한 현재 AOF 파일의 최소값입니다.
자동-aof-재작성-최소-크기-64mb
192.168.9.236:7001> 정보 메모리
Used_memory:1210776 #사용된 메모리의 크기,바이트 단위
Used_memory_human:1.15M # 단위로 표시,M으로
Used_memory_rss:7802880 # 운영 체제 관점에서 Redis는 얼마나 많은 메모리를 차지합니까?
Used_memory_rss_human:7.44M # 단위로 표시
maxmemory:1073741824 # 최대 메모리 크기
maxmemory_human:1.00G # 단위로 표시
최대 메모리 정책: 재활용 전략
Ø 휘발성-lru: 허용한다 레디스 전체 데이터 세트에서 가장 최근에 사용된 데이터를 선택하세요. 열쇠 삭제
Ø 휘발성-ttl:~에 따르면열쇠제거 만료 시간
Ø 휘발성-무작위: 설정된 만료 시간에 따라 데이터 수집에서 제거할 데이터를 무작위로 선택합니다.
Ø 올키스-lru:사용 루 알고리즘은 모든 데이터 세트에서 데이터를 제거합니다.
Ø allkeys-무작위: 데이터 수집에서 제거할 데이터를 무작위로 선택합니다.
Ø 퇴거 금지: 데이터 제거 비활성화(기본값)
주목:
키 만료 시간 설정
만료 v1 10
v1의 만료 시간은 10초입니다.
주목:
언제 레디스 메모리 부족으로 인해 하나를 회수해야 함 열쇠 시간,레디스 가장 먼저 고려해야 할 사항은 가장 오래된 데이터가 아닌 최근에 가장 적게 사용된 데이터를 재활용하는 것입니다. 열쇠 또는 만료 예정 열쇠 다음 중 무작위로 하나를 선택하세요. 열쇠, 데이터 세트에서 제거됨
requirepass 키워드와 비밀번호를 찾으세요. 기본적으로 주석 처리되어 있습니다. 즉, 기본적으로 비밀번호가 필요하지 않습니다.
댓글을 열고 비밀번호를 설정한 후 다시 시작하세요.
redis-cli를 사용하여 redis에 연결하고 다음 명령을 실행합니다.
config set requirepass 123456
실행이 완료된 후에는 클라이언트를 종료하고 다시 로그인할 때 비밀번호를 입력할 필요가 없습니다.
[root@localhost bin]# ./redis-cli -a 123456
[root@localhost bin]# ./redis-cli127.0.0.1:6379> auth 123456
[root@localhost bin]# ./redis-cli -a 123456 shutdown
1) 구성 파일을 수정하여 설정한 비밀번호는 영구적으로 적용됩니다. 명령을 사용하여 설정한 비밀번호는 일시적으로 적용되며 다시 시작한 후에는 유효하지 않습니다.
2) 구성 파일에 설정된 비밀번호를 수정하려면 다시 시작해야 합니다. 명령으로 설정한 비밀번호는 로그아웃한 후 다시 로그인해야 적용되며, 다시 시작하면 해당 비밀번호가 무효화됩니다.
3) 명령의 우선순위가 구성 파일의 우선순위보다 높습니다.