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

在我们的实际开发中,有时候会用到一些功能,比如签到和一些数据统计,那么这些功能,我们不可能去建立一些表去专业为签到和数据统计去服务,因为签到和数据统计这些都会导致这个表的数据越来越多,导致服务器整体性能下降,那么我们就可以用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="签到成功")
已标记关键词 清除标记
相关推荐
©️2020 CSDN 皮肤主题: 大白 设计师:CSDN官方博客 返回首页