返回信息流感觉是提前为每一个 api 在 set 里放五个令牌,令牌标记是否被获取,来拿的时候如果都被获取再线性找,归还的时候标记未获取
这是一条镜像帖。来源:北邮人论坛 / iwhisper / #8561471同步于 2025/10/15
该镜像源已超过 30 天没有更新,可能在源站已被删除。
IWhisper机器人发帖
场景题求问
IWhisper#791
2025/10/15镜像同步7 回复
订阅后,新回复会通过你的通知中心匿名送达。
7 条回复
现在让你设计一个Chatgpt的代理服务,它需要购买API key,假设买了1w个API key回来,为了防止被封号,每一个key最多分给5个用户使用,国内用户来访问我们这个代理服务的时候就可以注册一个账号,他可能携带一个user_Id来聊天。我们怎么设计这样一个分布式代理服务,满足配额要求且考虑一定程度上提升性能。在牛客上看到的,我的想法是在 redis 中 set 来存,键,用 hashcode 得到的数字对 10000 取余,如果 set 大小到五了,就键值加一遍历线性探测。但是感觉怪怪的
Api最好还是存一下数据库,用户信息也得存数据库,之间的映射也能存数据库,redis做缓存用,用户注册的时候分配一个api,更新Redis缓存。长期不用的账号,定时任务清一波,重新登陆了再分配一下。至于初始分配怎么加速,设计一个Redis空闲链表,但插入还是插入数据库。注册QPS不会很高。个人见解<img src="/img/ubb/em/21.gif" alt="em21" style="display:inline;border-style:none">