1. 소개
캐시된 강좌 데이터 "course-course uid"와 같이 특정 규칙의 키를 일괄 삭제해야 하는 상황이 자주 발생합니다. "course -*"와 유사한 데이터를 삭제합니다. 그러나 redis는 이러한 유형의 키를 일괄 쿼리하기 위한 명령을 제공하지만 특정 유형의 키를 일괄 삭제하기 위한 명령은 제공하지 않습니다.
이제 해결 방법을 정리했으니 모든 사람에게 도움이 되기를 바랍니다.
2. 솔루션
먼저 어떻게 해결하는지 살펴보겠습니다.
1. 먼저 redis 클라이언트를 입력하세요
cd redis所在目录/src ./redis-cli
2. 데이터 초기화 및 데이터 시뮬레이션
127.0.0.1:6379> set course-1 1 OK 127.0.0.1:6379> set course-2 2 OK 127.0.0.1:6379> set course-3 3 OK
3. 이제 위의 세 가지 키가 있음을 확인할 수 있습니다
127.0.0.1:6379> keys course-* 1) "course-3" 2) "course-2" 3) "course-1"
4. 5.1, 키 로컬 일괄 삭제
127.0.0.1:6379> exit
물론-*의 관련 키 3개가 삭제되었습니다
원리 분석:
먼저 redis 클라이언트를 통해 키 명령을 실행하고 xargs 명령을 통해 모든 키를 퍼지 검색합니다. 이전에 쿼리한 키는 후속 redis del 명령의 입력으로 사용됩니다
최종 실행 결과는
(동영상 공유 학습:
redis 비디오 튜토리얼./redis-cli keys "course-*" | xargs ./redis-cli del
query Out of 위의 코스-1 코스-2 코스-3 이 세 개의 키
2. 키를 삭제하는 세 개의 키
del은 이전 키 쿼리
keys "course-*"
5.2 키의 원격 일괄 삭제
에서 자주 발생합니다. 그 당시에는 redis가 로컬이 아닐 수도 있습니다. redis 클라이언트를 통해 원격으로 삭제할 수 있습니다
del course-1 course-2 course-3
3. 보충 지식
1. 원격 머신의 Redis
다음 예는 호스트에 연결하는 방법을 보여줍니다. : 127.0.0.1, 포트는 6379이고, redis 서비스의 비밀번호는 mypass입니다.
./redis-cli -h redis所在服务器ip -p 端口 keys "course-*" |xargs ./redis-cli -h redis所在服务器ip -p 端口 del
2.xargs 명령
xargs 명령은 매개변수를 다른 명령에 전달하기 위한 필터이자 여러 명령을 결합하는 도구이기도 합니다. 자세한 코스웨어 http://man.linuxde.net/xargs
관련 권장 사항:
redis 데이터베이스 튜토리얼위 내용은 redis는 특정 규칙의 키를 일괄 삭제합니다.의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!