Redis에서 키를 제거하려면 어떻게해야합니까?
"user *"와 일치하는 키를 제거하고 싶습니다.
redis 명령 줄에서 어떻게합니까?
이것은 지금 당장 한 번에 할 수있는 기능이 아닙니다 ( DEL
문서 의 주석 참조 ). 불행히도을 사용 KEYS
하고 결과를 반복 한 다음을 사용 DEL
하여 각각을 제거 하는 것만 남았습니다 .
bash를 사용하여 도움을주는 것은 어떻습니까?
for key in `echo 'KEYS user*' | redis-cli | awk '{print $1}'`
do echo DEL $key
done | redis-cli
단계별로 진행하려면 :
echo 'KEYS user*' | redis-cli | awk '{print $1}'
-모든 키를 얻고 awk로 원하지 않는 추가 텍스트를 제거하십시오.echo DEL $key
-각각에 대해 제거 할 echo 문을 만듭니다.| redis-cli
-DEL 문을 가져 와서 다시 cli에 전달합니다.
이것이 최선의 방법이라고 제안하지 않습니다 (사용자 이름 중 일부에 공백이 있으면 문제가 발생할 수 있지만 요점을 알 수 있습니다).
내가 원하는 작업을 수행하는 데 사용하는 또 다른 컴팩트 한 줄은 다음과 같습니다.
redis-cli KEYS "user*" | xargs redis-cli DEL
이제 키를 제거하는 명령이 있습니다. 즉, DEL 키 [키]
orangeoctopus의 대답에 더하여 echo
, 파이프 가 필요하지 않으며 명령을 인수로 전달할 수 있습니다 redis-cli
. 이것은 당신이 할 수 있음을 의미합니다
for key in `redis-cli "KEYS" "user*" | awk '{print $1}'`
do redis-cli "DEL" "$key"
done
를 사용 awk
하여 redis-cli KEYS
명령 및 파이프 간 명령을 사용하여 redis에서 일치하는 모든 키를 찾습니다 redis-cli DEL
.
redis-cli KEYS "user*" | awk '{ system("redis-cli DEL " $1) }'
나는 이것이 오래되었다는 것을 알고 있지만 여기에 오는 사람들을 위해 Google에서 :
방금 Redis 데이터베이스에서 주어진 패턴 (심지어 또는 사용자에게 요청한대로) 과 일치하는 키를 삭제할 수있는 명령 줄 인터페이스 유틸리티를 npm 및 github에 게시했습니다 .
여기에서 유틸리티를 찾을 수 있습니다.
https://www.npmjs.com/package/redis-utils-cli
oneliner를 사용할 때 특정 문자가 이스케이프되는 경우 패턴을 편집 할 수 있습니다. 예를 들어 '\ b test \ b'와 같은 패턴을 삭제하려면 다음을 사용하십시오.
redis-cli --raw KEYS '\\b*' | sed 's/\\b/\\\\b/g' | xargs redis-cli del
백 슬래시, 따옴표, 큰 따옴표 또는 공백이있는 redis 키를 제거하려면 이것을 사용하십시오.
redis-cli KEYS "user*" | sed 's/\\/\\\\/g' | sed 's/"/\\"/g' | sed "s/'/\\\\'/g" | sed 's/ /\\ /g' | xargs redis-cli DEL
참고 URL : https://stackoverflow.com/questions/8799063/in-redis-how-do-i-remove-keys
'Programing' 카테고리의 다른 글
복사본을 생성하지 않고 Python에서 목록 분할 (0) | 2020.11.21 |
---|---|
부정적인 미리보기 정규식 (0) | 2020.11.21 |
C의 구조체 멤버에 대한 기본값 (0) | 2020.11.21 |
Git 브랜치는 어디에서 시작하고 길이는 얼마입니까? (0) | 2020.11.21 |
데이터 프레임을 부분 집합화할 때 정의되지 않은 열이 선택됨 (0) | 2020.11.21 |