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 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ì dữ liệu sẽ bị mất.

Do đó, chúng ta cần ghi dữ liệu trong bộ nhớ vào đĩa theo các khoảng thời gian xác định, đó là Snapshot trong biệt ngữ.

Khi khôi phục, 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 khác biệt chính giữa Redis và Memcached, vì Memcached không có khả năng bền bỉ.

Để 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 bỉ có các tình huống sử dụng cụ thể.

Redis chế độ hoạt động bền bỉ dữ 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 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ự khác biệt 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ự tồn tại 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 các lệnh được gửi bởi các máy khách khác cho đến khi RDB được duy trì, vì vậy nó phải được sử dụng cẩn thận trong 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 hiện 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 thủ công, chúng ta hãy xem xét kích hoạt tự động.Chúng tôi có thể cấu hình các điều kiện để kích hoạt tự động trong tệp cấu hình.

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 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 bộ hóa Master-slave

Trong Redis master-slave replication, khi nút slave thực hiện một hoạt động sao chép đầy đủ, nút chính sẽ thực hiện lệnh bgsave để gửi tệp RDB đến nút slave. Quá trình này sẽ tự động kích hoạt tính bền vững của Redis.

Redis có thể truy vấn các tham số cấu hình hiện tại thông qua các 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 máy chủ Redis sẽ chặn khi tải file RDB cho đến khi tải xong nên có thể gây ra rất lâu và không vào được trang web.

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 cấu hình 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, config set dir "/usr/data" là lệnh lưu trữ để sửa đổi tệp RDB

Lưu ý: Cấu hình trong redis.conf có thể được lấy thông qua config get xxx và được sửa đổi thông qua giá trị config set xxx và phương pháp sửa đổi thủ công tệp cấu hình Redis có hiệu lực trên toàn cầu, nghĩa là các tham số được thiết lập bằng cách khởi động lại máy chủ 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 thủ công tệp cấu hình Redis có hiệu lực ngay lập tức, bạn cần khởi động lại máy chủ Redis và phương thức lệnh không yêu cầu khởi động lại máy chủ Redis.

Phục hồi tệp RDB

Khi máy chủ Redis khởi động, nếu tệp RDB dump.rdb tồn tại trong thư mục gốc của Redis, Redis sẽ tự động tải tệp RDB để khôi phục dữ liệu liên tục.

Nếu không có tệp dump.rdb trong thư mục gốc, trước tiên hãy 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 khôi phục các tập tin RDB cũng rất đơn giản, chỉ cần đưa các tập tin RDB vào thư mục gốc của Redis, Redis sẽ tự động tải và khôi phục dữ liệu khi khởi động.

Ưu và nhược điểm của RDB

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

Nội dung của RDB là dữ liệu nhị phân, chiếm ít bộ nhớ hơn, nhỏ gọn hơn và phù hợp hơn như một tệp sao lưu;

RDB rất hữu ích cho việc khôi phục sau thảm họa, nó là một tệp nén có thể được chuyển đến một máy chủ từ xa nhanh hơn để phục hồi dịch vụ Redis;

RDB có thể cải thiện đáng kể tốc độ của Redis, bởi vì quá trình Redis chính sẽ phân nhánh một quá trình con để duy trì dữ liệu trên đĩa.

Quá trình chính của Redis không thực hiện các hoạt động như I / O đĩa;

So với các 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ỉ có thể lưu dữ liệu trong một khoảng thời gian nhất định, nếu dịch vụ Redis vô tình bị chấm dứt giữa chừng, dữ liệu Redis sẽ bị mất trong một khoảng thời gian;

Một quá trình trong đó RDB yêu cầu các nhánh thường xuyên để 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 có thể tốn thời gian và nếu tập dữ liệu lớn, hiệu suất CPU kém, có thể khiến Redis không thể phục vụ khách hàng trong vài mili giây hoặc thậm chí 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.

Hy vọng Chen Weiliang Blog ( https://www.chenweiliang.com/ ) đã chia sẻ “Tên đầy đủ của Redis RDB là gì? Redis RDB In-Memory Data Persistence Operation Mode ", sẽ giúp bạn.

Chào mừng bạn đến chia sẻ liên kết của bài viết này:https://www.chenweiliang.com/cwl-26677.html

Chào mừng bạn đến với kênh Telegram trên blog của Chen Weiliang để cập nhật những thông tin mới nhất!

🔔 Hãy là người đầu tiên nhận được "Hướng dẫn sử dụng Công cụ AI tiếp thị nội dung ChatGPT" có giá trị trong thư mục trên cùng của kênh! 🌟
📚 Hướng dẫn này chứa đựng giá trị to lớn, 🌟Đây là cơ hội hiếm có, đừng bỏ lỡ! ⏰⌛💨
Chia sẻ và thích nếu bạn thích!
Chia sẻ và thích của bạn là động lực không ngừng của chúng tôi!

 

发表 评论

Địa chỉ email của bạn sẽ không được công bố. 项 已 * 标注

cuộn lên trên cùng