django中使用redis来实现签到和uv数据统计

47 篇文章 0 订阅

在我们的实际开发中,有时候会用到一些功能,比如签到和一些数据统计,那么这些功能,我们不可能去建立一些表去专业为签到和数据统计去服务,因为签到和数据统计这些都会导致这个表的数据越来越多,导致服务器整体性能下降,那么我们就可以用redis的一些功能来处理:

  1. 签到功能:

    1. 我们签到可以使用redis中的位图bitmap功能来实现,具体的bitmap功能介绍可以看这里:bitmap功能介绍
  2. 数据统计:

    1. 如果我们有一个功能是统计每天这个功能模块有多少用户访问,我们就可以使用HyperLogLog来统计:HyperLogLog功能介绍
  3. 在django中的实现:

class TestAPIView(GenericAPIView):
    """签到和uv统计实验"""

    permission_classes = [IsAuthenticated]

    def get(self, request):

        # 毫秒的单位是f
        str_time = datetime.datetime.now().strftime('%Y%m%d%H%M%S%f')

        # 位图
        redis_connect = django_redis.get_redis_connection(alias='bitmap')
        # 表示这个用户2020年09月签到,0表示未签到,1表示签到
        redis_connect.setbit('user_id_2020_09', 1, 1)

        # 页面数据统计(默认去重)
        redis_connect.pfadd('hyperlog_2020_09_01', *['user1', 'user2', 'user2', 'user2', 'user3'])

        return APIResponse.success(data=[], message="签到成功")
  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 3
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 3
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值