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

đặt thời hạn cho các giá trị Hashmap trong Redis?

Không, bạn không thể tạo hàm băm bằng SETEX (là một phương thức chuỗi). Bạn có thể gọi EXPIRE trên khóa băm, nhưng điều đó sẽ hết hạn toàn bộ hàm băm. Hiện tại không có hỗ trợ nào cho việc hết hạn các cặp khóa / giá trị băm riêng lẻ.

Cập nhật:

Nếu bạn muốn đặt thời hạn trên toàn bộ hàm băm trong khi đặt các phần tử riêng lẻ của nó, bạn có thể đạt được điều đó bằng một số cách.

  1. Sử dụng pipelining. Pipelining là một chế độ hoạt động đặc biệt trong đó ứng dụng redis đưa ra một số lệnh liên tiếp nhanh chóng, không phải đợi phản hồi để gửi lệnh tiếp theo. Đây là một ví dụ trong ruby:

    redis.pipelined do
      redis.hset "foo", "bar", 1
      redis.expire "foo", 300
    end
    
  2. Sử dụng các giao dịch. Nếu không có các khóa được theo dõi, điều này tương tự như pipelining (đối với một giao dịch không thể hủy bỏ). Các lệnh được đảm bảo chạy cùng nhau và nguyên tử (một số đường ống có thể chạy xen kẽ, các giao dịch được tuần tự hóa)

    redis.multi do
      redis.hset "foo", "bar", 1
      redis.expire "foo", 300
    end
    
  3. Sử dụng kịch bản lua để thực hiện lệnh HSETEX tùy chỉnh của bạn. Nó sẽ được thực thi nguyên tử và bạn chỉ cần gửi một lệnh (thay vì 2 (pipelining) hoặc 4 (giao dịch)).




  1. Redis
  2.   
  3. MongoDB
  4.   
  5. Memcached
  6.   
  7. HBase
  8.   
  9. CouchDB
  1. Bộ nhớ đệm khởi động mùa xuân với redis, khóa có \ xac \ xed \ x00 \ x05t \ x00 \ x06

  2. Ứng dụng khách C # /. NET cho Redis

  3. Lưu vào bộ đệm các đối tượng JSON ở phía máy chủ

  4. Hiệu suất của Redis vs Disk trong ứng dụng bộ nhớ đệm

  5. Django ValueError:Không tìm thấy đường dẫn nào cho đường dẫn 'ws / chat //'