Redis는 데이터베이스, 캐시 및 메시지 중개인으로 사용할 수있는 오픈 소스, 메모리 내 데이터 구조 저장소입니다. 다양한 데이터 구조를 지원하며 기본 작업을 수행하는 방법은 다음과 같습니다.
SET : SET 명령은 키 값을 설정하는 데 사용됩니다. 키가 이미 존재하면 이전 값을 덮어 씁니다.
<code class="bash">SET key value</code>
get : get 명령은 키의 값을 얻는 데 사용됩니다. 키가 존재하지 않으면 nil
반환합니다.
<code class="bash">GET key</code>
LPUSH : LPUSH 명령은 키에 저장된 목록의 헤드에 지정된 모든 값을 삽입하는 데 사용됩니다. 키가 존재하지 않으면 푸시 작업을 수행하기 전에 빈 목록으로 생성됩니다.
<code class="bash">LPUSH key value1 value2 value3</code>
rpush : rpush 명령은 lpush와 유사하지만 목록의 꼬리에 값을 삽입합니다.
<code class="bash">RPUSH key value1 value2 value3</code>
SADD : SADD 명령은 한 명 이상의 멤버를 세트에 추가하는 데 사용됩니다. 키가 존재하지 않으면 새 세트가 생성됩니다.
<code class="bash">SADD key member1 member2 member3</code>
HSET : HSET 명령은 키에 저장된 해시에서 필드 값을 설정하는 데 사용됩니다. 키가 존재하지 않으면 해시를 보유하는 새 키가 생성됩니다.
<code class="bash">HSET key field value</code>
이러한 명령은 REDIS 데이터 구조와 상호 작용하는 데 사용되는 기본 작업입니다. 효율성을 극대화하기 위해 각각의 사용 사례를 이해하는 것이 중요합니다.
Redis 데이터 구조의 효율적인 관리는 성능 최적화에 중요합니다. 모범 사례는 다음과 같습니다.
만료 시간 사용 : 무기한 필요없는 키에 대한 만료 시간을 설정하십시오. 이를 통해 메모리 관리에 도움이되고 데이터가 부실 해지는 것을 방지합니다.
<code class="bash">SETEX key seconds value</code>
배치 작업 : 가능하면 배치 작업을 사용하여 네트워크 라운드 트립을 줄입니다. 예를 들어, 여러 키를 MGET
하는 데 MSET
사용하여 여러 값을 얻을 수 있습니다.
<code class="bash">MSET key1 value1 key2 value2 MGET key1 key2</code>
INFO memory
와 같은 Redis의 내장 명령을 사용하여 메모리 사용 및 MEMORY USAGE key
모니터링하여 특정 키에서 사용하는 메모리를 확인하십시오. 그에 따라 데이터 모델을 최적화하십시오.Redis 문제 해결에는 SET 및 GET와 같은 명령과 관련된 몇 가지 일반적인 문제가 포함될 수 있습니다. 다음은이를 진단하고 해결하기위한 몇 가지 단계입니다.
키를 찾을 수 없음 : get 명령이 nil
반환하면 키가 존재하지 않음을 의미합니다. 키 이름을 확인하고 올바르게 설정되었는지 확인하십시오.
<code class="bash">GET non-existent-key</code>
연결 문제 : Redis에 연결할 수없는 경우 서버 상태, 포트 구성 및 네트워크 설정을 확인하십시오. PING
명령을 사용하여 연결을 테스트하십시오.
<code class="bash">PING</code>
성능 문제 : Redis가 느리면 SLOWLOG
명령을 사용하여 Slow Queries 및 INFO
명령을 식별하여 성능 메트릭을 모니터링하십시오. 데이터 모델을 최적화하고 필요한 경우 Redis 인스턴스를 스케일링하는 것을 고려하십시오.
<code class="bash">SLOWLOG GET INFO</code>
MEMORY USAGE
사용하여 큰 키와 INFO memory
식별하여 전체 메모리 사용을 모니터링하십시오. 퇴거 정책을 구현하고 주요 만료 시간을 효과적으로 관리하십시오.REDIS 데이터 구조 작업을 최적화하기위한 고급 기술은 성능을 크게 향상시킬 수 있습니다. 몇 가지 전략은 다음과 같습니다.
파이프 라인 명령 : 명령 파이프를 사용하여 단일 네트워크 왕복에서 여러 명령을 REDIS로 보냅니다. 이는 벌크 작업의 대기 시간을 크게 줄일 수 있습니다.
<code class="bash"># Example in Redis CLI with pipelining enabled redis-cli --pipe </code>
LUA 스크립트 : Redis의 LUA 스크립팅을 사용하여 단일 단계에서 복잡한 작업을 실행하십시오. 이를 통해 라운드 트립의 수가 줄어들고 원자 운영을 허용합니다.
<code class="lua">EVAL "return redis.call('SET', KEYS[1], ARGV[1])" 1 mykey myvalue</code>
Pub/Sub Pattern : 클라이언트 간의 실시간 커뮤니케이션을 가능하게하는 펍/하위 패턴을 구현합니다. 이것은 알림 시스템 및 실시간 업데이트에 유용 할 수 있습니다.
<code class="bash">SUBSCRIBE channel PUBLISH channel message</code>
Hyperloglog : 최소한의 메모리 사용량으로 대형 데이터 세트에서 고유 한 요소를 계산하기 위해 Hyperloglog를 사용하십시오. 이는 분석 및 웹 사이트의 고유 한 방문자를 계산하는 데 특히 유용합니다.
<code class="bash">PFADD hll element1 element2 element3 PFCOUNT hll</code>
Redis Streams : Redis 스트림을 사용하여 신뢰할 수있는 메시지 대기열 및 이벤트 소싱. 이는 시계열 데이터 및 이벤트 관리를위한 목록에 대한보다 강력한 대안을 제공합니다.
<code class="bash">XADD mystream * field1 value1 field2 value2 XRANGE mystream -</code>
이러한 고급 기술을 구현하면 더 나은 성능과 확장 성을 위해 Redis 작업을 최적화 할 수 있습니다.
위 내용은 Redis 데이터 구조 (Set, Get, Lpush, RPUSH, SADD, HSET)로 기본 작업을 어떻게 수행합니까?의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!