Skip to content

【腾讯犀牛鸟开源课题实战】支持LRU Cache #208

Description

@liucf3995
  • 背景:LRU Cache (Least Recently Used,最近最少使用)是业务日常开发中常用的一个 Local Cache 工具,提供 Set/Get 等接口操作 Cache 数据。当缓存容量满了之后,LRU 算法根据数据的历史访问记录顺序来进行数据淘汰,核心思想是”如果数据最近被访问过,那么将来被访问的概率也更高“。业务期望框架能集成一个LRU Cache工具,方便日常开发。
  • 需求:希望你能参考当前已有类库的接口,为tRPC-Cpp设计一套灵活、易用的接口,更好地扩展tRPC的生态。具体来来说,在实现时,你需要注意下面的要点:
    • 增加LUR Cache特性支持,涵盖服务端与客户端,包括协议、编解码、代理等实现与测试。需要支持如下特性:
      • 提供多线程安全的接口。
      • 支持高性能的 Put/Get 操作。
      • 支持LRU淘汰策略。
      • 支持自定义的Key和Value。
      • 支持指定线程Mutex和FiberMutex (框架提供自适应的同步原语)。
    • 你应该尽可能复用tRPC-Cpp的各个模块,具体来说,你应该继承 ServiceProxy,实现一个比如HttpSseProxy,提供设计良好的接口,在实现接口时,应该复用框架的服务发现以及拦截器模块。
  • 参考资料:

小提示:
本issue为2025犀牛鸟开源人才培养活动专属issue,仅供参与犀牛鸟的在校大学生及开发者参与领取,认领前请先报名2025犀牛鸟开源人才培养计划( https://opensource.tencent.com/summer-of-code )。
【认领issue】在issue所在repo页面留言“已成功领取本issue”→微信私信犀牛鸟小助手(活动群-黄贵龙):issue链接+认领截图→犀牛鸟小助手回复“已成功领取本issue”,即可开始做issue任务。
【完成issue】已完成issue的同学,请同步犀牛鸟小助手(私信活动群-黄贵龙回复“已完成本issue任务+代码合入截图等证明”)。
注意:如7天内无提交任何进展包括不限于comment \ commit \ Pull Request,则将视为同学主动放弃issue,组委会将释放issue给下一位等候者。
【第三阶段·实战课题】,需要8月1日入围后即可参与,请勿认领

Activity

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Metadata

Metadata

Assignees

No one assigned

    Type

    No type

    Projects

    No projects

      Milestone

      No milestone

      Relationships

      None yet

      Development

      No branches or pull requests

      Issue actions