备忘录

2025 年 2 月5 条备忘录

更新于
公开 · 所有人可见

Render 云平台

Render 是一个现代化的云平台,提供全面的托管服务,旨在简化应用程序的部署和管理。它允许开发者通过简单的配置和自动化部署来管理和扩展应用,无需关注底层基础设施。Render 提供的服务包括 Web 应用托管、数据库托管、静态网站托管等,适合构建全栈应用、微服务架构以及数据驱动的应用。

Render 的主要特点

  1. 简化部署:

    • Render 通过与 GitHub、GitLab 等版本控制系统的集成,允许你在每次代码提交时自动部署应用。支持自动构建、测试和部署,减少了手动干预。
    • 对于 Web 应用,Render 提供自动化的构建和运行环境,只需要通过配置文件来定义构建过程。
  2. 全托管服务:

    • Web 服务:支持 Node.js、Python、Go、Ruby、PHP、Rust 等多种语言和框架的 Web 服务,自动管理服务器、负载均衡和扩展。
    • 数据库托管:提供 PostgreSQL 和 Redis 数据库的托管服务,可以与应用紧密集成。
    • 静态网站:你可以托管 HTML、CSS 和 JavaScript 文件,Render 提供全球 CDN 支持,确保快速的页面加载。
  3. 自动化伸缩:

    • Render 提供自动伸缩功能,可以根据流量需求自动调整应用的实例数,确保高效利用资源。
    • 对于负载较高的服务,可以设定最大副本数或者利用 Render 的自动弹性伸缩来应对突发流量。
  4. 环境变量和密钥管理:

    • Render 提供了一个安全的方式来管理环境变量、API 密钥、数据库凭证等敏感信息,可以通过 Render 控制台进行配置。
    • 支持加密的环境变量,确保应用的安全性。
  5. 支持 Docker:

    • 如果你需要更多的灵活性,Render 支持自定义 Docker 容器部署。你可以将你的应用封装在 Docker 镜像中,然后将其上传到 Render。
  6. 免费和付费计划:

    • Render 提供了一个免费计划,适合轻量级项目或个人开发者使用,但免费计划通常有限制(如每月一定数量的服务运行时间和资源)。
    • 付费计划则提供更多的计算资源、更高的带宽以及更强大的服务性能。
  7. CI/CD 支持:

    • Render 内建了 CI/CD 管道,自动构建和部署代码。你可以自定义构建步骤,配置不同的环境来进行测试、构建和生产部署。

Render 支持的语言与框架

  • Web 服务:Node.js、Python(Flask/Django)、Ruby(Rails)、Go、PHP、Rust、Java(Spring Boot)等
  • 数据库:PostgreSQL、Redis
  • 静态网站:纯 HTML/CSS/JS 或使用框架(如 React、Vue 等)

Render 的优势

  • 易用性:简单的配置和管理面板,使得开发者无需过多关心基础设施,专注于应用本身。
  • 自动化部署:与 GitHub、GitLab 集成,支持每次提交后自动构建和部署,减少手动部署的麻烦。
  • 按需扩展:根据实际需求扩展应用,不用担心过度配置或资源浪费。
  • 高性能:提供全球 CDN 支持和高效的自动伸缩能力,确保应用在全球范围内都能高效运行。

Render 使用场景

  1. Web 应用托管: 适合部署全栈 Web 应用,Render 提供了端到端的解决方案,包括前端和后端服务。

  2. API 服务: 如果你有 API 或微服务架构,Render 也能很好地支持这种部署模式,可以快速上线并进行自动伸缩。

  3. 数据库服务: 如果你需要托管数据库,Render 提供了托管的 PostgreSQL 和 Redis 服务,适用于需要持久化数据的应用。

  4. 静态网站: Render 也支持托管静态文件,如 HTML、CSS、JavaScript 文件,可以通过 CDN 加速,适合用来托管博客、个人网站或前端静态应用。

如何开始使用 Render

  1. 注册账号:首先,你需要在 Render 上注册一个账号。
  2. 连接代码仓库:连接 GitHub 或 GitLab 账号,选择要部署的项目。
  3. 配置服务:根据需要配置 Web 服务、数据库等服务。
  4. 部署:Render 会自动构建并部署应用。如果配置了 CI/CD,提交代码后会自动触发构建和部署。
  5. 监控和扩展:可以在控制台查看应用的运行状态,进行性能监控和调整资源配置。

总的来说,Render 是一个现代化且易于使用的云平台,适合开发者快速部署和扩展应用。如果你不想处理繁琐的基础设施和管理,Render 提供了一个强大且简洁的解决方案。

更新于
公开 · 所有人可见

构建 tools 镜像

基于 ubuntu:24.04 构建

docker pull ubuntu:24.04
docker run --name ubuntu-test -it ubuntu:24.04 bash

# do in container
apt update
apt install curl wget -y
# end

docker commit ubuntu-test ccr.ccs.tencentyun.com/jansora/tools:latest
docker push ccr.ccs.tencentyun.com/jansora/tools:latest
更新于
公开 · 所有人可见
use std::collections::HashMap;

const MEMO: HashMap<i32, i32> = HashMap::new();


impl Solution {

    pub fn climb_stairs(n: i32) -> i32 {
        
        if (MEMO.contains_key(&n)) {
            return *MEMO.get(&n).unwrap()
        }

        if n == 1 {
            return 1
        }
        if n == 2 {
            return 2
        }
        let cache_value = Self::climb_stairs(n-1) + Self::climb_stairs(n-2);
        MEMO.insert(n, cache_value);

        return cache_value
    }
}