redis-cli로 :
Redis 문서 :
예를 들어, 쉘에서 :
redis-cli flushall
redis-cli flushall
- Cmag(error) LOADING Redis is loading the dataset in memory
. 이유를 지정할 수 있습니까? - Ram Patra(new Process { StartInfo = new ProcessStartInfo { FileName = "redis-cli", Arguments = "flushall", CreateNoWindow = true }}).start();
- Christian-h
redis 서버 위치를 지정하는 플래그 - Adam F
그 머리 위로FLUSHALL
과잉 일 수 있습니다.FLUSHDB
데이터베이스를 플러시하는 것입니다.FLUSHALL
전체 서버를 제거합니다. 서버의 모든 데이터베이스에서와 같습니다. 질문은 데이터베이스를 비우는 것에 관한 것이므로 별도의 답변을 제시하는 것이 중요하다고 생각합니다.
지금까지의 답변은 절대적으로 정확합니다. 그들은 모든 키를 삭제합니다.
그러나 모든 항목을 삭제하려는 경우소요스크립트를 Redis 인스턴스에서 가져 오려면 다음을 수행해야합니다.
OP는 두 가지 질문을한다. 이것은 두 번째 질문을 완료합니다 (모두닦음).
I want everything wiped out and give me a blank database.
의문더 이상. 그래서, imho, 나의 추가는 좋은 사람이다. 그것은 소수의 사람들을 도왔다. SOC가 무엇인지에 대해 동의하지 않으셔도됩니다. - Tw Bert
redis-rb 보석을 사용하는 경우 다음 전화를 걸면됩니다.
your_redis_client.flushdb
이 방법은 저에게 효과적이었습니다 - Jedis 클러스터에서 현재 연결된 모든 데이터베이스를 삭제하십시오.
public static void resetRedis() {
jedisCluster = RedisManager.getJedis(); // your JedisCluster instance
for (JedisPool pool : jedisCluster.getClusterNodes().values()) {
try (Jedis jedis = pool.getResource()) {
jedis.flushAll();
}
catch (Exception ex){
System.out.println(ex.getMessage());
}
}
}
내 옆에서 한 가지 더 옵션 :
우리 프로덕션 및 프로덕션 데이터베이스에는 수천 개의 키가 있습니다. 일부 마스크를 사용하여 일부 키를 삭제하고 몇 가지 기준으로 수정해야 할 때가 있습니다. 물론 CLI에서 수동으로 수행 할 방법이 없습니다. 특히 섀딩 (각 물리적 물리에서 512 논리 dbs)이 필요합니다.
이 목적을 위해이 모든 작업을 수행하는 Java 클라이언트 도구를 작성합니다. 키 삭제의 경우 유틸리티는 매우 간단 할 수 있습니다. 단 하나의 클래스 만 존재합니다.
public class DataCleaner {
public static void main(String args[]) {
String keyPattern = args[0];
String host = args[1];
int port = Integer.valueOf(args[2]);
int dbIndex = Integer.valueOf(args[3]);
Jedis jedis = new Jedis(host, port);
int deletedKeysNumber = 0;
if(dbIndex >= 0){
deletedKeysNumber += deleteDataFromDB(jedis, keyPattern, dbIndex);
} else {
int dbSize = Integer.valueOf(jedis.configGet("databases").get(1));
for(int i = 0; i < dbSize; i++){
deletedKeysNumber += deleteDataFromDB(jedis, keyPattern, i);
}
}
if(deletedKeysNumber == 0) {
System.out.println("There is no keys with key pattern: " + keyPattern + " was found in database with host: " + host);
}
}
private static int deleteDataFromDB(Jedis jedis, String keyPattern, int dbIndex) {
jedis.select(dbIndex);
Set<String> keys = jedis.keys(keyPattern);
for(String key : keys){
jedis.del(key);
System.out.println("The key: " + key + " has been deleted from database index: " + dbIndex);
}
return keys.size();
}
}
그런 종류의 도구를 쓰는 것은 매우 쉽고 더 이상 5 ~ 10 분을 소비하지 않습니다.
FLUSHALL 모든 기존 데이터베이스의 모든 키를 h 제합니다. Redis 버전> 4.0, FLUSHALL ASYNC가 지원되며 서버를 차단하는 백그라운드 스레드에서 실행됩니다https://redis.io/commands/flushall
FLUSHDB - 선택한 데이터베이스의 모든 키를 삭제합니다.https://redis.io/commands/flushdb
작업을 수행하는 데 드는 시간 복잡도는 O (N)입니다. 여기서 N은 데이터베이스의 키 수입니다.
redis의 응답은 "OK"라는 간단한 문자열입니다.
모든 데이터베이스에서 모든 키를 삭제하는 FLUSHALL을 사용할 수 있습니다. FLUSHDB는 현재 데이터베이스에서 모든 키를 삭제합니다.
나는 때때로 redis-server를 중지하고 rdb, aof 파일을 삭제한다고 생각한다. 다시로드 할 수있는 데이터가 없는지 확인하십시오. 그런 다음 redis-server를 시작합니다. 이제는 새 것이고 비어 있습니다.
redis-cli -h <host> -p <port> flushall
연결된 클라이언트에서 모든 데이터를 제거합니다 (호스트 및 포트 사용)
다음을 사용하여 Redis-server를 시작한 후 :service redis-server start --port 8000
또는redis-server
.
용도redis-cli -p 8000
다른 터미널에서 클라이언트로 서버에 연결합니다.
둘 중 하나를 사용할 수 있습니다.
설명서를 확인하십시오.ASYNC둘 다에 대한 옵션.
파이썬 인터페이스를 통해 Redis를 사용하는 경우 동일한 기능을 위해 다음 두 가지 기능을 사용하십시오.
def flushall(self):
"Delete all keys in all databases on the current host"
return self.execute_command('FLUSHALL')
과
def flushdb(self):
"Delete all keys in the current database"
return self.execute_command('FLUSHDB')
redis-cli를 열고 다음을 입력하십시오.
FLUSHALL
귀하의 질문에 대한 데이터베이스에서 전체 키를 삭제하는 것 같다. 이 경우 다음을 시도해야합니다.
redis-cli
(포트 6379에서 실행중인 경우), 그렇지 않으면 포트 번호도 지정해야합니다.select {Index}
)flushdb
모든 데이터베이스에서 키를 플러시하려면flushall
.
RDM (Redis Desktop Manager)을 사용할 수 있다면 더 좋습니다. RDM에 새 연결을 작성하여 redis 서버에 연결할 수 있습니다.
연결이되면 라이브 데이터를 확인할 수 있으며 redis 명령으로 재생할 수 있습니다.
RDM에서 cli 열기.
1) 연결을 마우스 오른쪽 버튼으로 클릭하면 콘솔 옵션이 표시됩니다. 콘솔 옵션을 클릭하면 RDM 하단에 새 콘솔 창이 열립니다.
FLUSHALL이 명령입니다. 간단히 FLUSHALL을 입력하면됩니다.
또한 redis 명령과 그 적절한 사용법을 알고 싶다면 아래 링크를 방문하십시오.https://redis.io/commands.
다양한 접근법이 있습니다. 원격지에서이 작업을 수행하려면 명령 행 도구 redis-cli 또는 프로그래밍 언어 SDK 인 telnet 등의 도구를 사용하여 해당 인스턴스에 flushall을 실행하십시오. 또는 해당 서버에 로그인하여 프로세스를 종료하고 dump.rdb 파일 및 appendonly.aof를 삭제하십시오 (삭제하기 전에 백업하십시오).
del *
작동하지 않습니다. 0을 반환합니다. - Chloe