Vercel lanza un servicio de almacenamiento de bases de datos para ayudar al desarrollo completo

Vercel es una popular plataforma de implementación de aplicaciones front-end como React.js, Next.js, etc. Podemos implementar la aplicación en Github en línea con un solo clic, pero le falta una parte importante: la base de datos. Pero ahora hay cuatro nuevas bases de datos para elegir.

Los datos son una parte integral de las aplicaciones web. Antes de eso, podíamos usar el servicio de base de datos de Heroku, pero luego Heroku cobró una tarifa y ya no proporcionó una base de datos gratuita. La comunidad ha estado buscando una solución de base de datos de prueba gratuita. Ahora podemos elegir directamente Vercel lanzará un sitio web dinámico y renderizará datos en tiempo real mediante el uso de marcos JavaScript y TypeScript será más fácil que nunca.

El 1 de mayo, Vercel anunció que un conjunto de soluciones de almacenamiento sin servidor ahora está disponible en Vercel, impulsado por algunos de los mejores proveedores de infraestructura de la industria.

  • Vercel KV: una solución Redis sin servidor simple y duradera con tecnología de Upstash
  • Vercel Postgres: una base de datos SQL sin servidor creada para frontends, con tecnología Neon
  • Vercel Blob: una solución de carga en el borde que proporciona almacenamiento de objetos de archivo, con tecnología de Cloudflare R2

Vercel KV: una base de datos Redis persistente

Es una tienda de clave-valor (similar a Redis) basada en Upstash E-Value. Es muy fácil manipular la base de datos y, lo que es más importante, es muy rápido porque, a diferencia de la mayoría de las bases de datos, los datos se guardan en la memoria y no en el disco, lo que significa que se puede usar para conservar el estado sin perder datos si el servidor falla. se vuelve extremadamente rápido en las lecturas y es ideal para almacenar datos en caché.

Ejemplo de uso

import kv from '@vercel/kv';

export async function getPrefs() {
  const prefs = await kv.get('prefs');
  return prefs || {};
}

export async function updatePrefs(prefs: Record<string, string>) {
 return kv.set('prefs', prefs);
}
复制代码

precio

No se le cobrará por el uso bajo demanda por encima del límite base hasta el 1 de junio de 2023.

  • Los usuarios de Hobby Free están limitados a 3000 solicitudes por día y 256 MB de almacenamiento.
  • Usuarios Pro 512 MB - 1GB/$0.20 por encima Cuando se alcanza este límite, las solicitudes a la base de datos tienen una tasa limitada.

Vercel Postgres: datos complejos simplificados

PostgreSQL 是许多开发人员处理关系数据的首选方式。这个数据库好处在于它可以自动扩展、容错性强,并且有一个易于使用的 UI 界面。基本上你只需要点击一个按钮,就可以将你的数据库连接链接添加到环境中,然后就可以直接在 React Server Component 中编写原始 SQL 代码了。

使用示例

import { sql } from '@vercel/postgres';
import { redirect } from 'next/navigation';

async function create(formData: FormData) {
  'use server';
  const { rows } = await sql`
    INSERT INTO products (name)
    VALUES (${formData.get('name')})
  `;
  redirect(`/product/${rows[0].slug}`);
}


export default function Page() {
  return (
    <form action={create}>
      <input type="text" name="name" />
      <button type="submit">Submit</button>
    </form>
  );
}
复制代码

我们可以使用 Vercel Postgres 直接在 React 服务器组件内查询、插入、更新或删除数据,以静态的速度在服务器上渲染动态内容,并且大大减少客户端 JavaScript 代码

此外,它还与 Keisely 和我个人最喜欢的 Prisma ORM 库良好地集成。

价格

  • 免费用户,每月的计算时间 60 hours,存储 256 MB。
  • Pro 用户, 每月的计算时间 100 hours 存储 512 MB, 超出 1GB/$0.30 当达到此限制时,对数据库的请求将受到速率限制。

Hobby 默认免费使用,当您接近使用限制时,Vercel 会向您发送电子邮件。不会为任何额外的使用付费,我们可以选择:

  • 30 天后过期
  • 升级到 Pro

Vercel Blob:文件对象存储

Vercel Blob 是一种用于在云中存储文件的快速、简单且高效的解决方案。它提供了一个完全基于 Web 标准构建的轻松而强大的存储 API,无需配置存储桶或实施繁重的 SDK。目前需要申请使用。

使用示例

import { put } from '@vercel/blob';

export const runtime = 'edge';

export async function PUT(request: Request) {
  const { url } = await put('avatars/user-12345.png', request.body, { access: 'public' });

  return Response.json({ url });
}
复制代码

它基于 Cloudflare R2 并允许你将大量非结构化数据(如图像和 PDF 文件)存储在云上。换句话说,它可以替代 S3 等存储桶。SDK 非常简单——只需调用 put 方法并传入要上传的文件即可返回下载 URL 。但目前存在一个限制:最大文件上传大小为 4MB ,在测试版阶段之后应该会增加。

Edge Config

它是一种全局数据存储,使您能够在边缘读取数据,而无需查询外部数据库或访问上游服务器。大多数查找在不到 1ms 的时间内返回,99%的读取将在 10ms 以下返回。

使用示例

import { NextResponse, NextRequest } from "next/server";
import { get } from "@vercel/edge-config";

export async function middleware(request: NextRequest) {
  if (await get("showNewDashboard")) {
    return NextResponse.rewrite(new URL("/new-dashboard", request.url));
  }
}
复制代码

使用场景

  • 以超低延迟获取数据。例如,你应该将功能标志开关存储在 Edge Config 存储中

  • 存储经常读取但很少更改的数据。例如,您应该将关键重定向 URL 存储在 Edge Config 存储中

  • 读取每个区域中的数据。Edge Config 数据被主动复制到 Vercel 边缘网络中的所有区域

小结

笔者认为,随着框架从单一架构转向可组合架构,框架正在向服务端渲染优先转变。这种转变以 React Server Component 和将流式渲染为例。后端和数据库的选择并不缺乏。但对于新项目来说,选择仍然会让人无从下手,虽然 Vercel 的价格可能会高于其他服务商,但对于个人或者全栈的体验项目来说无疑是最好的选择。

Supongo que te gusta

Origin juejin.im/post/7229169602419671097
Recomendado
Clasificación