前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >Django统计在线人数

Django统计在线人数

作者头像
the5fire
发布2019-02-28 16:57:18
2.6K0
发布2019-02-28 16:57:18
举报

这篇文章主要是分享一下我这个博客下方的那个当前在线人数部分的代码,其实是一个五分钟之内的统计,数据保存在memcache中。

整个逻辑很简单,每一个用户访问,我都会把用户的ip作为key放到memcache,然后有一个 online_ips 的key,用来存放所有的ip。

每次请求都会进行如下步骤,先取出 online_ips的所有值,然后再根据这个这个list来从memcache中取出依然存在的ip,然后再次存入 online_ips

具体实现来看代码:

.. code:: python

代码语言:javascript
复制
    if 'HTTP_X_FORWARDED_FOR' in request.META:
        ip = request.META['HTTP_X_FORWARDED_FOR']
    else:
        ip = request.META['REMOTE_ADDR']

    online_ips = cache.get("online_ips", [])

    if online_ips:
        online_ips = cache.get_many(online_ips).keys()

    cache.set(ip, 0, 5 * 60)

    if ip not in online_ips:
        online_ips.append(ip)

    cache.set("online_ips", online_ips)

这段代码是在middleware层的,展示在线人数的时候,只需要从cache中取出online_ips即可。

本文参与 腾讯云自媒体分享计划,分享自作者个人站点/博客。
原始发表:2013-05-03 ,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 作者个人站点/博客 前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体分享计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档