class RecommendJobView(GenericAPIView): """推荐职位视图""" # 更具用户浏览最多的职位的(技术栈)的倒序,序列化器返回数据和最新数据一样,因为存储数据和查询数据都与redis有关,所以不适用ListAPIView serializer_class = PostJobSerializer def perform_authentication(self, request): pass ... def post(self, request): # 用户浏览数据存储在redis,user_id作为主键,采用list存储职位id serializer = self.get_serializer(data=request.data) serializer.is_valid(raise_exception=True) redis_conn = get_redis_connection('job') pl = redis_conn.pipeline() # 去重 pl.lrem('user_id_%s' % user.id, 0, job_id) # 保存,增加 pl.lpush('user_id_%s' % user.id, job_id) # 保留规定长度的数据 pl.ltrim('user_id_%s' % user.id, 0, constants.MAX_Job_VIEW_HISTORY-1) pl.execute() ...