我正在用Rails重建论坛/委员会。要求之一是记录主题的观看信息。
在当前系统中,每次页面加载时都会进行数据库调用,以更新该帖子的视图计数。
我想避免这种情况,并且正在考虑使用类似于此帖子的技术来实现redis来记录该信息-jQuery Redis hit
counter跟踪缓存的Rails页面的视图
因此,我将向一个请求请求的控制器(通过javascript)记录视图,然后执行cron作业将redis使用情况数据移至数据库(将其从redis中移除)。
我的难题是,当前的系统提供实时的使用信息,因此这将是前进的期望。按照我的计划,使用Heroku-最频繁的Cron工作将每小时运行一次,我认为这是不可接受的。
我的想法是,我可以将使用情况信息存储在redis中,然后在遍历主题时,我会将redis中存储的使用价值与cron作业中保存在数据库中的值结合起来。
这是一个愚蠢的主意吗?我是Redis的新手,所以我真的不知道有什么可能。像我建议的那样,在循环中进行redis呼叫是否是大禁忌?
如果您确实需要旧的应用程序来维护实时统计信息,并且想要使用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)。
希望有道理。
自动检测设定论坛最新帖子,显示最新帖子列表,新帖自动提示,让你成为论坛抢沙发第一人!
本文向大家介绍destoon调用discuz论坛中带图片帖子的实现方法,包括了destoon调用discuz论坛中带图片帖子的实现方法的使用技巧和注意事项,需要的朋友参考一下 在destoon开发中有时候我们需要调用论坛的帖子,但是带有图片的帖子该怎么调用出来呢,本文就来实例展示一个可以调用discuz论坛带图片的帖子的方法: 标签代码如下: 调用论坛新帖子的方法如下: 希望本文所述方法对大家de
在一个新的WordPress模板中,我想自定义单个。php,以便仅向帖子作者显示评论列表。 其他用户(客人和其他帖子作者)不应该看到评论或空白。 总之,帖子作者(登录时)可以在他的帖子底部看到评论列表,但在其他作者写的帖子底部看不到任何内容。 我应该对下面的代码应用什么条件代码? 这仅适用于前端。我不关心管理面板。
问题内容: 我正在为这个论坛进行编码,由于我是LINQ的新手,因此用户访问主页时遇到了这个问题。我想要一个显示这样的论坛列表的表: 我有以下SQL表: 谢谢… 问题答案: 如果您使用成员身份并且不想将aspnet_Users包含在dbml中,则用于显示用户名: 使发布的示例更好一点的另一项更改是在posts变量中添加orderbydescending:然后,您可以从select子句中删除重复4次的
问题内容: 我知道这个问题已经被问过几次了,但是没有一个答案令我满意。这是因为几乎所有人都涉及与数据库相关的巨大读取/写入过程,我希望不惜一切代价避免这样做。 关于未读的讨论/主题/帖子,有很多需要考虑的地方。我不知道MyBB,vBulletin,Invision电源板,Vanilla,phpBB等论坛系统如何解决该问题,所以我想向大家介绍您的经验。我知道,仅为此目的使用数据库表是最简单的方法,但
php+mongodb能实现类似于”掘金“这个论坛的帖子功能,首页展示的基本上不会重复,并且都是随机的, 使用list存入文章id,然后把id变成随机的,但是重复刷新分页变成了1的话,数据又还原了,如果监听分页页数变成了1就重新排序一次的话,对于游客就不是很友好