Computer >> Máy Tính >  >> Lập trình >> Redis

Xóa các đối tượng lớn trong Redis

Trong Redis, việc xóa các đối tượng không phải chuỗi lớn như băm, danh sách, tập hợp và tập hợp sắp xếp có thể chặn máy chủ của bạn trong một khoảng thời gian đáng kể, có khả năng gây ra các sự cố như hết thời gian chờ phía máy khách. Điều này là do hai khía cạnh của cách Redisworks:

  • Redis là một luồng. Điều này có nghĩa là nó chỉ có thể xử lý một lệnh tại một thời điểm bất kể bạn đã kết nối bao nhiêu máy khách. Nếu một lệnh mất nhiều thời gian để chạy, thì mọi lệnh khác sẽ cần phải đợi.

  • DEL là một O(n) hoạt động trên băm, danh sách, tập hợp và tập hợp được sắp xếp. Điều này có nghĩa là một đối tượng có 1 triệu phần tử sẽ mất khoảng 10.000 lần để xóa so với một đối tượng tương tự cùng loại có 100 phần tử.

May mắn thay, Redis cung cấp cho chúng tôi một số công cụ để chúng tôi có thể sử dụng để xóa các đối tượng lớn mà không cần chặn máy chủ trong một khoảng thời gian dài. Chúng tôi đã biên soạn các giải pháp của mình tại đây:

  • Xóa các băm lớn
  • Xóa danh sách lớn
  • Xóa các tập hợp lớn
  • Xóa các tập hợp được sắp xếp lớn