Redis
 sql >> Teknologi Basis Data >  >> NoSQL >> Redis

Redis INCRBY dengan batas

Jawaban ini mungkin tidak seperti yang Anda harapkan. Tetapi saya harus mengatakan bahwa skrip Lua adalah solusi yang sangat jelas.

-- range-incrby.lua key , increment
local key = KEYS[1]
local increment = ARGV[1]
local cnt = redis.call('get', key) or 0
cnt = cnt + increment
if (cnt >= 0 and cnt <= 100) then
    redis.call('set', key, cnt)
    return cnt
end

Juga, jika rentangnya adalah [0, 2^N - 1] , maka Anda dapat menggunakan BITFIELD perintah dengan kontrol luapan untuk menyelesaikan masalah.

BITFIELD key OVERFLOW FAIL INCRBY uN 0 increment

Namun, sepertinya itu bukan kasus Anda.




  1. Redis
  2.   
  3. MongoDB
  4.   
  5. Memcached
  6.   
  7. HBase
  8.   
  9. CouchDB
  1. Metode yang lebih cepat untuk memindahkan data redis ke MySQL

  2. Bagaimana saya bisa menjalankan redis pada satu server di port yang berbeda?

  3. Penyelamatan:Koneksi ditolak - Tidak dapat terhubung ke Redis di localhost:6379

  4. Bagaimana cara menyimpan hanya satu database di Redis?

  5. docker-compose + Django + redis - Kesalahan 111 menghubungkan ke 127.0.0.1:6379. Koneksi ditolak