Redis
 sql >> Cơ Sở Dữ Liệu >  >> NoSQL >> Redis

Redis lua khi nào thì thực sự sử dụng nó?

Tập lệnh Lua có nghĩa là hoạt động giống như MULTI các lệnh. Trên thực tế, hầu hết các lệnh mà bạn sẽ phát triển bằng cách sử dụng MULTI các lệnh từ máy khách Redis có thể được thực hiện trong Lua. Nghĩa là, bạn có thể đóng gói một số hoạt động phức tạp trong một tập lệnh và lớp dữ liệu của bạn sẽ thực hiện thao tác ghi nguyên tử mà không cần lo lắng về chiến lược lập mô hình dữ liệu của bạn trên Redis.

Ngoài ra, tôi thấy chúng hữu ích khi bạn muốn thực hiện các thao tác đọc nhanh nhưng phức tạp. Ví dụ, bạn có thể muốn sắp xếp các đối tượng theo thứ tự. Các đối tượng được lưu trữ trong một khóa băm trong khi đơn đặt hàng được xác định bởi một khóa tập hợp được sắp xếp . Bạn nhận được một phạm vi của cái gọi là tập hợp đã sắp xếp và bạn nhận được các đối tượng trong hàm băm bằng cách sử dụng hmget .

Điểm quan trọng nhất là các tập lệnh Lua nên triển khai những thứ có thể thực thi nhanh nhất có thể, vì Redis sẽ chặn các hoạt động khác trong khi tập lệnh Lua đang chạy. Đó là, bạn cần thực hiện ngắt nhanh nếu không hiệu suất Redis tổng thể của bạn sẽ giảm đi rất nhiều.

Lập luận để không sử dụng Lua

Tôi sẽ tranh luận rằng bạn nên sử dụng chúng khi bạn thực sự cần chúng. Thông thường, các máy khách được phát triển bằng các ngôn ngữ lập trình cấp cao như C #, Java, JavaScript, Ruby ... và chúng cung cấp trải nghiệm phát triển tốt hơn:trình gỡ lỗi tốt, IDE, hoàn thành mã ...

Tóm tắt:bạn nên sử dụng chúng nếu bạn có thể chứng minh rằng có lợi ích thực sự (về hiệu suất) nếu bạn chuyển một số phần logic miền của mình thành các tập lệnh Redis Lua.



  1. Redis
  2.   
  3. MongoDB
  4.   
  5. Memcached
  6.   
  7. HBase
  8.   
  9. CouchDB
  1. Khóa hết hạn Spring Data Redis

  2. Người tiêu dùng cạnh tranh trên Redis Pub / Sub được hỗ trợ?

  3. Redis `SCAN`:làm thế nào để duy trì sự cân bằng giữa các khóa mới có thể khớp và đảm bảo kết quả cuối cùng trong một thời gian hợp lý?

  4. Làm thế nào để tạo cơ sở dữ liệu riêng trong redis?

  5. ngủ đông bộ nhớ cache cấp hai với Redis -sẽ cải thiện hiệu suất?