2016-09-08 2 views
0

Я использую Apache Usergrid для проекта. Однако у меня есть серьезные проблемы с его счетчиками. Может потребоваться до 30 секунд для обновления счетчика. Поэтому я хочу использовать что-то другое, кроме счетчиков. Мой вопрос:Альтернатива для Apache Usergrid Counters

Есть ли структура для redis, postgresql или memcached, что я смогу использовать иерархические счетчики. Или есть ли другой инструмент для этой цели?

Спасибо всем.

ответ

1

Нет такого счетчика в Redis, но вы можете реализовать его с помощью сценария lua.

Иерархической Счетчик

Каждый раз, когда вы увеличиваете счетчик с именем "first.second.third", он автоматически увеличивает 3 счетчиков: "first.second.third", "first.second", и "first".

иерархические счетчик Lua скрипты: hc.lua

local key = KEYS[1] 
while key do 
    redis.call("incrby", key, ARGV[1]) 
    key = string.match(key, "(.+)%.") 
end 

Попробуйте его с redis-cli:

./redis-cli --eval hc.lua first.second.third , 2 
(nil) 
./redis-cli mget first first.second first.second.third 
1) "2" 
2) "2" 
3) "2"