Tên đầy đủ của Redis RDB là gì? Redis chế độ hoạt động bền bỉ dữ liệu bộ nhớ RDB

Tên đầy đủ của RDB làRedis database.

  • Như tên cho thấy, RDB là một cơ sở dữ liệu Redis được sử dụng để lưu trữ dữ liệu.
  • Do đó, thông qua sự bền bỉ của RDB, dữ liệu được lưu trữ trong bộ nhớ Redis được ghi vào tệp RDB và được lưu vào đĩa để đạt được sự bền bỉ.
  • Đặc điểm của Redis là có thể lưu dữ liệu, tức là ghi dữ liệu trong bộ nhớ vào đĩa để đảm bảo không bị mất dữ liệu, đồng thời có thể tải dữ liệu từ đĩa vào bộ nhớ.

Tên đầy đủ của Redis RDB là gì? Redis chế độ hoạt động bền bỉ dữ liệu bộ nhớ RDB

Các hoạt động giải trí của Redis lúc đầu đều dựa vào bộ nhớ nên hiệu suất rất cao, tuy nhiên một khi đóng chương trình thì tài liệu sẽ bị mất .Do đó, tất cả chúng ta cần ghi tài liệu trong bộ nhớ vào đĩa theo những khoảng chừng thời hạn xác lập, đó là Snapshot trong biệt ngữ .Khi Phục hồi, tệp ảnh chụp nhanh được ghi trực tiếp vào bộ nhớ .Đây cũng là một trong những điểm độc lạ chính giữa Redis và Memcached, vì Memcached không có năng lực bền chắc .

Để dữ liệu bộ nhớ Redis tồn tại lâu dài, Redis cung cấp cho chúng tôi các phương pháp sau:

  • Phương thức chụp nhanh (RDB, Redis DataBase): ghi dữ liệu bộ nhớ vào đĩa dưới dạng nhị phân tại một thời điểm nhất định;
  • Chỉ thêm tệp (AOF, Append Only File), ghi lại tất cả các lệnh hoạt động và nối vào tệp ở dạng văn bản;
  • Tính bền lai, một phương pháp mới sau Redis 4.0, bền lai kết hợp những ưu điểm của RDB và AOF.Khi ghi, trước tiên hãy ghi dữ liệu hiện tại vào đầu tệp dưới dạng RDB, sau đó lưu các lệnh hoạt động tiếp theo vào tệp dưới dạng AOF, điều này không chỉ có thể đảm bảo tốc độ khởi động lại Redis mà còn giảm nguy cơ mất dữ liệu.

Bởi vì mỗi lược đồ bền chắc có những trường hợp sử dụng đơn cử .

Redis chính sách hoạt động giải trí bền chắc tài liệu bộ nhớ RDB

  • RDB (Redis DataBase) là quá trình ghi một ảnh chụp nhanh bộ nhớ (Snapshot) tại một thời điểm nhất định vào đĩa dưới dạng nhị phân.
  • Ảnh chụp nhanh bộ nhớ là những gì chúng tôi đã nói ở trên.Nó đề cập đến bản ghi trạng thái của dữ liệu trong bộ nhớ tại một thời điểm nhất định.
  • Điều này tương tự như chụp ảnh, khi bạn chụp ảnh một người bạn, một bức ảnh có thể ghi lại tất cả hình ảnh của người bạn đó ngay lập tức.
  • Có hai cách để kích hoạt RDB: một là kích hoạt thủ công và cách kia là kích hoạt tự động.

Kích hoạt RDB theo cách bằng tay thủ công

Có hai thao tác để kích hoạt tính kiên trì theo cách thủ công:savebgsave.

Sự độc lạ chính giữa chúng là có chặn việc thực thi luồng chính của Redis hay không .

1. lưu lệnh

Việc thực thi lệnh lưu ở phía máy khách sẽ kích hoạt sự sống sót của Redis, nhưng nó cũng sẽ làm cho Redis ở trạng thái chặn. Nó sẽ không phản hồi những lệnh được gửi bởi những máy khách khác cho đến khi RDB được duy trì, thế cho nên nó phải được sử dụng cẩn trọng trong thiên nhiên và môi trường sản xuất .

127.0.0.1:6379> save
OK
127.0.0.1:6379>

Quá trình thực thi lệnh được hiển thị trong hình

2. lệnh bgsave

  • bgsave (lưu trong nền) là một lưu trong nền.
  • Sự khác biệt lớn nhất giữa nó và lệnh save là bgsave sẽ phân nhánh một tiến trình con để thực hiện bền bỉ.
  • Toàn bộ quá trình chỉ xảy ra khi tiến trình con là fork.Chỉ có một sự tắc nghẽn ngắn.
  • Sau khi tiến trình con được tạo, tiến trình chính của Redis có thể phản hồi các yêu cầu từ các máy khách khác.

với việc chặn toàn bộ quá trìnhsaveso với lệnhbgsaveLệnh rõ ràng là phù hợp hơn để chúng ta sử dụng.

127.0.0.1:6379> bgsave
Background Saving started # 提示开始后台保存 
127.0.0.1:6379>

Tự động kích hoạt RDB

Sau khi nói về kích hoạt bằng tay thủ công, tất cả chúng ta hãy xem xét kích hoạt tự động hóa. Chúng tôi hoàn toàn có thể thông số kỹ thuật những điều kiện kèm theo để kích hoạt tự động hóa trong tệp thông số kỹ thuật .

1. cứu mn

  • save mn có nghĩa là trong vòng m giây, nếu n phím thay đổi, tính năng duy trì sẽ tự động được kích hoạt.Tham số m và n có thể được tìm thấy trong tệp cấu hình Redis.
  • Ví dụ: lưu 60 1 có nghĩa là trong vòng 60 giây, miễn là một khóa thay đổi, tính bền lâu của RDB sẽ được kích hoạt.
  • Bản chất của tính kiên trì tự động kích hoạt là nếu các điều kiện kích hoạt đã đặt được đáp ứng, Redis sẽ tự động thực hiện lệnh bgsave một lần.

Lưu ý : Khi nhiều lệnh lưu mn được đặt, bất kể một điều kiện kèm theo nào cũng sẽ kích hoạt tính liên tục .

Ví dụ, chúng tôi đặt hai lệnh save mn sau:

save 60 10
save 600 20
  • Khi giá trị khóa Redis thay đổi 60 lần trong vòng 10 giây, tính năng duy trì sẽ được kích hoạt;
  • Nếu khóa Redis thay đổi trong vòng 60 giây và nếu giá trị thay đổi ít hơn 10 lần, thì Redis sẽ xác định xem khóa Redis đã được sửa đổi ít nhất 600 lần trong vòng 20 giây hay chưa và nếu có, hãy kích hoạt tính năng duy trì.

2. Flushall

  • Lệnh flushall được sử dụng để xóa cơ sở dữ liệu Redis.
  • Nó phải được sử dụng thận trọng trong môi trường sản xuất.
  • Khi Redis thực hiện lệnh flushall, nó sẽ kích hoạt tính năng liên tục tự động và xóa tệp RDB.

3. Kích hoạt đồng điệu hóa Master-slave

Trong Redis master-slave replication, khi nút slave thực thi một hoạt động giải trí sao chép rất đầy đủ, nút chính sẽ thực thi lệnh bgsave để gửi tệp RDB đến nút slave. Quá trình này sẽ tự động hóa kích hoạt tính bền vững và kiên cố của Redis .Redis hoàn toàn có thể truy vấn những tham số thông số kỹ thuật hiện tại trải qua những lệnh .

Định dạng của lệnh truy vấn là:config get xxx

Ví dụ: nếu bạn muốn nhận cài đặt tên lưu trữ của tệp RDB, bạn có thể sử dụng config get dbfilename .

Hiệu quả thực thi như sau:

127.0.0.1:6379> config get dbfilename
1) "dbfilename"
2) "dump.rdb"

Do sever Redis sẽ chặn khi tải file RDB cho đến khi tải xong nên hoàn toàn có thể gây ra rất lâu và không vào được website .

Nếu bạn muốn xóa thủ công tệp cache RDB dump.rdb của Redis, bạn có thể sử dụng lệnh sau để tìm đường dẫn lưu trữ của tệp dump.rdb ▼

find / -name dump.rdb
  • Sau đó, xóa thủ công tệp bộ nhớ cache dump.rdb qua SSH.

Redis đặt thông số kỹ thuật của RDB

Về việc thiết lập cấu hình của RDB, bạn có thể sử dụng hai cách sau:

  1. Sửa đổi thủ công tệp cấu hình Redis
  2. Sử dụng cài đặt dòng lệnh, đặt cấu hình dir “/ usr / data” là lệnh lưu trữ để sửa đổi tệp RDB

Lưu ý : Cấu hình trong redis.conf hoàn toàn có thể được lấy trải qua config get xxx và được sửa đổi trải qua giá trị config set xxx và chiêu thức sửa đổi bằng tay thủ công tệp thông số kỹ thuật Redis có hiệu lực thực thi hiện hành trên toàn thế giới, nghĩa là những tham số được thiết lập bằng cách khởi động lại sever Redis sẽ không bị mất, nhưng được sửa đổi bằng cách sử dụng lệnh, nó sẽ bị mất sau khi Redis khởi động lại .Tuy nhiên, nếu bạn muốn sửa đổi bằng tay thủ công tệp thông số kỹ thuật Redis có hiệu lực hiện hành ngay lập tức, bạn cần khởi động lại sever Redis và phương pháp lệnh không nhu yếu khởi động lại sever Redis .

Phục hồi tệp RDB

Khi sever Redis khởi động, nếu tệp RDB dump.rdb sống sót trong thư mục gốc của Redis, Redis sẽ tự động hóa tải tệp RDB để Phục hồi tài liệu liên tục .Nếu không có tệp dump.rdb trong thư mục gốc, thứ nhất hãy vận động và di chuyển tệp dump.rdb vào thư mục gốc của Redis .Tất nhiên, có thông tin nhật ký khi Redis khởi động, thông tin này sẽ hiển thị liệu tệp RDB có được tải hay không .

Máy chủ Redis chặn trong khi tải tệp RDB cho đến khi quá trình tải hoàn tất.

Bây giờ chúng ta biết rằng sự bền bỉ của RDB được chia thành hai cách: kích hoạt thủ công và kích hoạt tự động:

  1. Ưu điểm của nó là tệp lưu trữ nhỏ và việc khôi phục dữ liệu nhanh hơn khi khởi động Redis.
  2. Nhược điểm là có nguy cơ mất dữ liệu.

Việc Phục hồi những tập tin RDB cũng rất đơn thuần, chỉ cần đưa những tập tin RDB vào thư mục gốc của Redis, Redis sẽ tự động hóa tải và Phục hồi tài liệu khi khởi động .

Ưu và điểm yếu kém của RDB

1 ) Ưu điểm của RDB

Nội dung của RDB là tài liệu nhị phân, chiếm ít bộ nhớ hơn, nhỏ gọn hơn và tương thích hơn như một tệp sao lưu ;RDB rất hữu dụng cho việc Phục hồi sau thảm họa, nó là một tệp nén hoàn toàn có thể được chuyển đến một máy chủ từ xa nhanh hơn để hồi sinh dịch vụ Redis ;RDB hoàn toàn có thể cải tổ đáng kể vận tốc của Redis, chính bới quy trình Redis chính sẽ phân nhánh một quy trình con để duy trì tài liệu trên đĩa .Quá trình chính của Redis không thực thi những hoạt động giải trí như I / O đĩa ;So với những tệp định dạng AOF, tệp RDB khởi động lại nhanh hơn .

2 ) Nhược điểm của RDB

Bởi vì RDB chỉ hoàn toàn có thể lưu dữ liệu trong một khoảng chừng thời hạn nhất định, nếu dịch vụ Redis vô tình bị chấm hết giữa chừng, tài liệu Redis sẽ bị mất trong một khoảng chừng thời hạn ;Một quy trình trong đó RDB nhu yếu những nhánh liên tục để lưu nó trên đĩa bằng cách sử dụng subentry .Nếu tập dữ liệu lớn, việc fork hoàn toàn có thể tốn thời hạn và nếu tập dữ liệu lớn, hiệu suất CPU kém, hoàn toàn có thể khiến Redis không hề ship hàng người mua trong vài mili giây hoặc thậm chí còn một giây .

Tất nhiên, chúng ta cũng có thể tắt tính năng bền bỉ để cải thiện hiệu quả thực thi của Redis.

Nếu bạn không nhạy cảm với việc mất dữ liệu, bạn có thể làm điều này khi máy khách kết nối config set save "" Lệnh vô hiệu hóa tính duy trì cho Redis.

redis.conf, nếu trongsaveNhận xét tất cả các cấu hình khi bắt đầu và tính năng bền bỉ cũng sẽ bị vô hiệu hóa, nhưng điều này thường không được thực hiện.