Redis
 sql >> база данни >  >> NoSQL >> Redis

Redis INCRBY с ограничения

Този отговор може да не е това, което очаквате. Но трябва да кажа, че скриптовете на Lua са кристално чистото решение.

-- 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

Също така, ако диапазонът е [0, 2^N - 1] , тогава можете да използвате BITFIELD команда с контрол на препълване за решаване на проблема.

BITFIELD key OVERFLOW FAIL INCRBY uN 0 increment

Това обаче изглежда не е вашият случай.




  1. Redis
  2.   
  3. MongoDB
  4.   
  5. Memcached
  6.   
  7. HBase
  8.   
  9. CouchDB
  1. Не може да се свърже с redis чрез jedis

  2. Изпращане на съобщения до групи в Django Channels 2

  3. Най-ефективният начин да получите няколко хеша в Redis?

  4. Как да изтриете ключове, съответстващи на шаблон в Redis Cluster

  5. rails + docker + sidekiq + Грешка при свързване към Redis на 127.0.0.1:6379 (Errno::ECONNREFUSED)