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

Redis, как да увеличим всички резултати на zset със ZINCRBY?

Няма команда за това, ZINCRBY може да увеличава само за 1 член наведнъж. Така че, ако искате да постигнете това по атомичен и бърз начин, трябва да направите Lua скрипт. Което трябва да изглежда така (първо получавате всички членове на сортирания набор и след това ги преглеждате и увеличавате резултата):

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

И можете да изпратите този скрипт към Redis с EVAL команда.



  1. Redis
  2.   
  3. MongoDB
  4.   
  5. Memcached
  6.   
  7. HBase
  8.   
  9. CouchDB
  1. Няма отговор след свързване от celery към redis чрез ssl

  2. Predis с laravel 5.5 Няма налични връзки в пула в Aggregate/RedisCluster.php:337

  3. Задайте ключ за префикс на кеша Redis на Symfony

  4. Сложни структури от данни Redis

  5. Как да анализирате и оптимизирате използването на паметта в Redis