Apache Usergrid 计数器的替代方案
Alternative for Apache Usergrid Counters
我正在为一个项目使用 Apache Usergrid。但是我的柜台有一个严重的问题。更新计数器可能需要 30 秒。所以我想使用 usergrid 计数器以外的东西。我的问题是:
是否有我可以使用分层计数器的 redis、postgresql 或 memcached 结构。或者是否有任何其他工具可用于该目的?
谢谢大家
Redis
中没有这样的计数器,但您可以使用 lua 脚本实现一个。
Hierarchical Counter
每次你增加一个名为"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"
我正在为一个项目使用 Apache Usergrid。但是我的柜台有一个严重的问题。更新计数器可能需要 30 秒。所以我想使用 usergrid 计数器以外的东西。我的问题是:
是否有我可以使用分层计数器的 redis、postgresql 或 memcached 结构。或者是否有任何其他工具可用于该目的?
谢谢大家
Redis
中没有这样的计数器,但您可以使用 lua 脚本实现一个。
Hierarchical Counter
每次你增加一个名为"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"