session.py 文件源码

python
阅读 25 收藏 0 点赞 0 评论 0

项目:falcon-swagger 作者: dutradda 项目源码 文件源码
def _exec_hmset(self, insts):
        models_keys_insts_keys_insts_map = defaultdict(dict)
        models_keys_insts_keys_map = defaultdict(set)

        for inst in insts:
            model = type(inst)
            if not model.__use_redis__:
                continue

            filters_names_set = self._get_filters_names_set(inst)
            for filters_names in filters_names_set:
                model_redis_key = type(model).get_key(model, filters_names.decode())
                inst_redis_key = inst.get_key()

                inst_old_redis_key = getattr(inst, 'old_redis_key', None)
                if inst_old_redis_key is not None and inst_old_redis_key != inst_redis_key:
                    models_keys_insts_keys_map[model_redis_key].add(inst_old_redis_key)

                models_keys_insts_keys_insts_map[model_redis_key][inst_redis_key] = msgpack.dumps(inst.todict())

        for model_key, insts_keys_insts_map in models_keys_insts_keys_insts_map.items():
            self.redis_bind.hmset(model_key, insts_keys_insts_map)

        for model_key, insts_keys in models_keys_insts_keys_map.items():
            self.redis_bind.hdel(model_key, *insts_keys)
评论列表
文章目录


问题


面经


文章

微信
公众号

扫码关注公众号