Computer >> คอมพิวเตอร์ >  >> การเขียนโปรแกรม >> Redis

เรียกใช้แอพ Fly.io ด้วย Redis แบบไร้เซิร์ฟเวอร์

Fly.io เป็นแพลตฟอร์มที่ยอดเยี่ยมที่คุณสามารถเผยแพร่แอปพลิเคชันของคุณไปทั่วโลก เมื่อแอปพลิเคชันของคุณเป็นสากล ข้อมูลของคุณจะต้องเป็นสากล คุณสามารถเรียกใช้ Redis ปกติเป็นแอพ Fly.io ได้ แต่ปัญหาคือมันตั้งอยู่ในภูมิภาคเดียว ในอีกทางหนึ่ง Upstash RedisGlobal Database เหมาะกับ Fly.io อย่างสมบูรณ์เนื่องจากมีการจำลองแบบทั่วโลก ยิ่งไปกว่านั้น ด้วย SDK ที่ใช้ REST ทำให้ไม่มีปัญหาการเชื่อมต่อใดๆ ในรันไทม์แบบไร้สถานะ

ในบทความนี้ ฉันจะสร้างแอปพลิเคชัน Node.js พื้นฐานที่เข้าถึงUpstash Redis และปรับใช้กับแพลตฟอร์ม Fly.io

ตั้งค่า Fly.io

  • สร้างบัญชี Fly.io
  • ติดตั้ง flyctl andrun flyctl auth login

การตั้งค่า Upstash Redis

  • สร้าง Global Databaseon Upstash Console ฟรี
  • คัดลอก REST_URL และ REST_TOKEN คุณจะใช้ในขั้นตอนต่อไป

รหัสแอปพลิเคชัน

  • โคลนแอพ Hello world:git clone https://github.com/fly-apps/hellonode-builtin
  • ติดตั้งการพึ่งพา:npm install express @upstash/redis
  • อัปเดต server.js และแทนที่ url และ token :
server.js
const express = require("express");
const app = express();
const port = process.env.PORT || 3000;
const { Redis } = require("@upstash/redis");

const redis = new Redis({
  url: "REPLACE_HERE",
  token: "REPLACE_HERE",
});

app.get(["/", "/:name"], async (req, res) => {
  let greeting = "<h1>Hello From Node on Fly!</h1>";
  if (req.url !== "/favicon.ico") {
    const data = await redis.incr("count");
    res.send(greeting + "</br> Counter: " + data);
  } else {
    res.send("");
  }
});

app.listen(port, () => console.log(`HelloNode app listening on port ${port}!`));

เรียกใช้และปรับใช้

  • เรียกใช้แอปพลิเคชันในเครื่อง:node server.js

  • เปิดใช้และปรับใช้กับ fly.io:flyctl launch

  • คุณสามารถทำให้แอปใช้งานได้อีกครั้งด้วย flyctl deploy

  • ดู url แอปพลิเคชันของคุณด้วย flyctl status

  • คุณยังสามารถตรวจสอบใบสมัครของคุณได้จากแดชบอร์ด fly.io:

เรียกใช้แอพ Fly.io ด้วย Redis แบบไร้เซิร์ฟเวอร์

ปิดคำ

ในบทความนี้ เราได้แสดงวิธีใช้ Upstash Redis บนแพลตฟอร์ม Fly.ioapplication

อย่าลังเลที่จะติดต่อเรา GitHub, Discordand Twitter สำหรับปัญหาหรือความคิดเห็นใด ๆ