如果您确实需要旧的应用程序来维护实时统计信息,并且想要使用Redis,则必须更改旧代码才能访问它。
这是您的代码的起点。
每次点击时,您都可以在Redis中检查线程的计数器。如果计数器键不存在,则会激活加载。
因此,这是保持统计信息更新的一种方式(使用php,phpredis客户端):
try { $redis = new Redis(); $thread_id = getFromPostGet("thread_id"); //suppose so $key = 'ViewCounterKey:' . $thread_id; //each thread has a counter key $redis->multi(); //begin transaction if (!$redis->exists($key)) { $counter = getFromDB("count(*) where thread_id = $thread_id"); //suppose so $redis->set($key, $counter); } $redis->incr($key); //every hit incrs the counter $redis->exec(); //end transaction}catch (RedisException $e) { echo "Server down";}因此,该解决方案可以与cron作业放在一起,这样可以保持视图计数,并且每个cron之间的1h延迟都无关紧要,因为您一直在寻找内存(Redis,而不是DB)。
希望有道理。



