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

Redis, làm thế nào để tăng tất cả các điểm số của một zset với ZINCRBY?

Không có lệnh nào cho việc đó, ZINCRBY chỉ có thể tăng cho 1 thành viên tại một thời điểm. Vì vậy, nếu bạn muốn thực hiện điều này một cách nguyên tử và nhanh chóng, bạn cần phải thực hiện một tập lệnh Lua. Cái nào sẽ trông giống như thế này (trước tiên bạn lấy tất cả các thành viên của tập hợp đã sắp xếp, sau đó lặp lại chúng và tăng điểm):

local zsetMembers = redis.call('zrange', KEYS[1], '0', '-1') 
for k,member in pairs(zsetMembers) do 
  redis.call('zincrby', KEYS[1], 1, member) 
end

Và bạn có thể đẩy tập lệnh này sang Redis bằng EVAL lệnh.



  1. Redis
  2.   
  3. MongoDB
  4.   
  5. Memcached
  6.   
  7. HBase
  8.   
  9. CouchDB
  1. Tham số liên kết làm gì trong Redis?

  2. Cách kết nối với phiên bản Redis (kho bộ nhớ) từ Công cụ ứng dụng tiêu chuẩn của Google (Python 3.7)

  3. PooledRedisClientManager không giải phóng kết nối

  4. Chuyển đổi dự phòng cụm

  5. Cách tạo hình ảnh docker từ kho lưu trữ github