Làm thế nào để làm trống một cơ sở dữ liệu redis?


164

Tôi đã chơi với redis (và thêm một số niềm vui với nó) trong vài ngày qua và tôi muốn biết liệu có cách nào để làm trống db (loại bỏ các bộ, khóa hiện tại ....) một cách dễ dàng .
Trong các thử nghiệm của mình, tôi đã tạo ra một số bộ có rất nhiều thành viên, thậm chí đã tạo các bộ mà tôi không nhớ tên (làm thế nào tôi có thể liệt kê những người đó?).
Bất kỳ ý tưởng về làm thế nào để thoát khỏi tất cả chúng?

Câu trả lời:


197

Bạn có hai lựa chọn:

  • FLUSHDB - xóa cơ sở dữ liệu hiện đang hoạt động
  • FLUSHALL - xóa tất cả các cơ sở dữ liệu hiện có

136

Hãy cẩn thận ở đây.

FlushDB xóa tất cả các khóa trong cơ sở dữ liệu hiện tại trong khi FlushALL xóa tất cả các khóa trong tất cả các cơ sở dữ liệu trên máy chủ hiện tại.


Có bất kỳ nhược điểm nào khi sử dụng FlushDB để xóa cơ sở dữ liệu cụ thể khỏi mã sản xuất không?
Alex Naspo

1
@AlexNaspo có khả năng có vấn đề vì DB của bạn càng lớn thì càng mất nhiều thời gian để tuôn ra. Vì cơ sở dữ liệu được đánh số (chia sẻ) được quản lý bởi cùng một máy chủ Redis, điều này có thể chặn các cơ sở dữ liệu khác của bạn trong khoảng thời gian đó. Nếu có thể, hãy hạn chế sử dụng cơ sở dữ liệu dùng chung vì điều đó và cũng vì chúng không phải là bằng chứng trong tương lai (không được hỗ trợ trong v3). Xem tại đây để biết thêm chi tiết: redislabs.com/blog/ khăn
Itamar Haber

@ItamarHaber Cách hiệu quả nhất để xóa hoặc hết hạn một bộ khóa phù hợp với một định dạng cụ thể là gì?
Alex Naspo

1
@AlexNaspo nếu bạn đang sử dụng v2.8 +, một kết hợp SCAN và DEL sẽ thực hiện thủ thuật độc đáo. Xem ở đây để biết một tập lệnh bash thực hiện nó: stackoverflow.com/a/23399125/3160475
Itamar Haber

$ redis-clisau đó chọn cơ sở dữ liệu. Tôi đang chọn 0 > select 0và xóa tất cả các khóa của db 0> FLUSHDB
sagar Junnarkar

31

Với redis-cli:

FLUSHDB       - Removes data from your connection's CURRENT database.
FLUSHALL      - Removes data from ALL databases.

Redis Docs: FLUSHDB , FLushALL


30

tldr: flushdbxóa một cơ sở dữ liệu và flushallxóa tất cả các cơ sở dữ liệu

Xóa HIỆN TẠI

Xóa cơ sở dữ liệu mặc định hoặc hiện được chọn (thường là `0) với

redis-cli flushdb

Rõ ràng CỤ THỂ

Xóa cơ sở dữ liệu redis cụ thể với (ví dụ 8như cơ sở dữ liệu đích của tôi):

redis-cli -n 8 flushdb 

Làm sạch tất cả

Xóa tất cả các cơ sở dữ liệu redis với

redis-cli flushall

2

Có câu trả lời đúng nhưng tôi chỉ muốn thêm một tùy chọn nữa (yêu cầu thời gian chết):

  1. Dừng lại Redis.
  2. Xóa tệp RDB (tìm vị trí trong redis.conf).
  3. Bắt đầu Redis.

0

mở Redis cli của bạn và Có hai tùy chọn có thể bạn có thể sử dụng:

FLUSHDB - Xóa tất cả các khóa của DB hiện được chọn. FLUSHALL - Xóa tất cả các khóa của tất cả các cơ sở dữ liệu hiện có, không chỉ cơ sở dữ liệu hiện được chọn.

Khi sử dụng trang web của chúng tôi, bạn xác nhận rằng bạn đã đọc và hiểu Chính sách cookieChính sách bảo mật của chúng tôi.
Licensed under cc by-sa 3.0 with attribution required.