แนะนำตัว
หากคุณเคยต้องสร้างแอปที่ติดตามการใช้งานแอปพลิเคชัน จำกัดการใช้ทรัพยากร หรือดึงข้อมูลจากแคชเพื่อเพิ่มประสิทธิภาพแอป คุณจะรู้ว่า Redis คือคำตอบสำหรับข้อกำหนดเหล่านี้! Redis เป็นฐานข้อมูลคีย์-ค่าในหน่วยความจำ เป็นโอเพ่นซอร์สและย่อมาจาก Remote Dictionary Server
ในบทความนี้ เราจะพูดถึง Upstash ฐานข้อมูล Redis และเฟรมเวิร์ก Vue SSR รุ่นเบต้าล่าสุด Nuxt 3 นี่เป็นบทความที่เป็นมิตรสำหรับผู้เริ่มต้น ซึ่งจะสำรวจฐานข้อมูล Redis ซึ่งเราจะสร้างแอปพื้นฐานที่ติดตามการเข้าชมหน้าเว็บของ แอป Nuxt
ทรัพยากร
- Github Repo:https://github.com/Krutie/upstash-nuxt-demo
- สาธิต
- ผู้ปฏิบัติงาน Cloudflare:https://upstash-demo.krutie-patel.workers.dev/contact
- Netlify:https://thirsty-visvesvaraya-a09ab9.netlify.app/
Upstash คืออะไร
Upstash เป็นบริการที่ให้การเข้าถึงฐานข้อมูล Redis แบบไร้เซิร์ฟเวอร์ นั่นเป็นเหตุผลที่เราจำเป็นต้องเรียนรู้พื้นฐานของ Redis ซึ่งรวมถึงกรณีการใช้งาน Redis และคำสั่งที่มีอยู่เพื่อจัดการข้อมูลประเภทต่างๆ
Redis คืออะไร
Redis มีกรณีการใช้งานยอดนิยมเช่น:
- แคชข้อมูลและเซสชัน
- ลีดเดอร์บอร์ด - จัดอันดับชื่อและคะแนนในเกมคอมพิวเตอร์หรือซอฟต์แวร์ใดๆ ที่สร้างขึ้นด้วยหลักการเกมมิ่ง
- คิว - กำหนดเวลางานที่จะประมวลผลในภายหลังในพื้นหลัง
- การวัด/การนับการใช้งาน - จำกัดการใช้ทรัพยากร ควบคุมการกระจายทรัพยากร หรือเพียงแค่การนับตามขนาดเพื่อดูและวิเคราะห์การใช้งาน เช่น ไซต์อีคอมเมิร์ซ โซเชียลมีเดีย แอปบนอุปกรณ์เคลื่อนที่ ฯลฯ
- การกรองเนื้อหา - ตัวอย่างเช่น กรองเนื้อหากับรายการคำต้องห้าม
ในระดับพื้นฐาน ฐานข้อมูล Redis จะจัดเก็บข้อมูลในคู่คีย์-ค่า แต่ยังสามารถจัดเก็บข้อมูลในโครงสร้างข้อมูลขั้นสูง เช่น รายการ ชุด ชุดที่จัดเรียง เป็นต้น Redis ยังจัดเตรียมชุดคำสั่งเพื่อจัดการโครงสร้างข้อมูลเหล่านี้ เนื่องจากเราจะใช้หนึ่งในตัวอย่างในแอปของเรา การพิจารณาคำจำกัดความในระดับสูงจึงควรค่าแก่การพิจารณา
- Lists - เป็นเหมือนอาร์เรย์พื้นฐานมากกว่า รายการช่วยให้คุณสามารถผลักและป๊อปไอเท็มจากปลายทั้งสองของซีเควนซ์ ดึงไอเท็มแต่ละรายการ และดำเนินการอื่นๆ ได้หลากหลาย คำสั่งรายการนำหน้าด้วยตัวอักษร L เช่น LPOP, LPUSH, LSET ฯลฯ
- แฮช - ให้คุณจัดเก็บกลุ่มของคู่คีย์-ค่าในคีย์ Redis เดียว คำสั่งแฮชนำหน้าด้วยตัวอักษร H เช่น HSET, HGET, HDEL ฯลฯ
- ชุด - เหมือนกับรายการ แต่ชุดจะไม่ซ้ำกันและจัดเก็บรายการในรายการที่ไม่เรียงลำดับ นั่นเป็นสาเหตุที่ชุดไม่สามารถจัดเรียงได้ แต่คุณสามารถเพิ่ม นำออก และกำหนดได้อย่างรวดเร็วว่ารายการนั้นอยู่ในชุดหรือไม่ คำสั่ง Set นำหน้าด้วยตัวอักษร S เช่น SADD, SCARD, SISMEMBER เป็นต้น
- ชุดที่จัดเรียง - เหมือนกับชุด แต่ชุดที่จัดเรียงแล้วจะอนุญาตให้จัดเรียงตามคะแนนที่ดูเหมือนคู่คีย์-ค่ามาก นอกจากนี้เรายังสามารถจัดการและจัดเรียงคะแนนที่เป็นตัวเลขนี้ได้ คำสั่งชุดที่เรียงนำหน้าด้วยตัวอักษร Z, i,e, ZADD, ZINCRBY, ZSCORE เป็นต้น
คุณสามารถเรียนรู้เพิ่มเติมเกี่ยวกับคำสั่ง Redis อื่นๆ ได้ที่ https://redis.io/commands
การตั้งค่าอัพสแตช
ทำตามคำแนะนำเพื่อตั้งค่าบัญชีและฐานข้อมูลตามเอกสาร @ https://docs.upstash.com/
ก่อนที่คุณจะข้ามไปที่การสร้างแอป Nuxt ตรวจสอบให้แน่ใจว่าบัญชี Upstash ของคุณพร้อม คุณควรจะสามารถสร้างฐานข้อมูลเดียวที่มีระดับอิสระได้
เมื่อฐานข้อมูลของคุณถูกสร้างขึ้น คุณสามารถสร้างและเข้าถึงฐานข้อมูล Redis โดยใช้ไคลเอนต์ Redis ใดก็ได้ อีกวิธีหนึ่ง คุณสามารถใช้ CLI👇 บนเบราว์เซอร์ที่มีให้ในคอนโซล Upstash เพื่อเริ่มต้นได้ทันที
CLI บนเบราว์เซอร์ที่มีให้ในคอนโซล Upstash
Redis-cli
คุณสามารถตั้งค่า redis-cli
บนเทอร์มินัลเครื่องของคุณเพื่อสร้างและเข้าถึงฐานข้อมูล Redis โดยตรงจากอินเทอร์เฟซบรรทัดคำสั่งของคุณ
แพ็คเกจ Redis npm
เรายังมีแพ็คเกจ npm หลายตัวเพื่อโต้ตอบกับฐานข้อมูล Redis เราจะใช้ 1) @upstash/redis
และ 2) ioredis
- เพื่อเข้าถึงคำสั่ง Redis ในโครงการ Nuxt ของเรา
ในส่วนถัดไป เราจะตั้งค่าโครงการ Nuxt Nuxt เป็นเฟรมเวิร์ก SSR ที่สร้างขึ้นบน Vue Nuxt Labs เพิ่งประกาศเปิดตัว Nuxt 3 เบต้า มาตั้งค่าโปรเจ็กต์ Nuxt 3 ใหม่กันเถอะ
Nuxt 3 อยู่ในรุ่นเบต้า โปรดจำไว้ว่า ยังไม่พร้อมสำหรับการผลิต .
⚡มาพูดถึง Nuxt 3 กัน
Nuxt 3 แนะนำ CLI ใหม่ล่าสุดที่เรียกว่า nuxi
เพื่อสร้างแอป Nuxt
npx nuxi init nuxt3-app
เราจะสร้าง /pages
และเพิ่มเส้นทางง่ายๆ ดังนี้👇
-pages;
--index.vue;
--about.vue;
app.vue;
app.vue
เป็นการแนะนำใหม่ของ Nuxt 3 ที่ทำหน้าที่เป็นองค์ประกอบหลัก app.vue
จะถูกโหลดสำหรับทุกเส้นทางที่กำหนดไว้ใน /pages
ไดเรกทอรี
เอ็นจิ้นเซิร์ฟเวอร์ Nitro ⚙️
Nuxt 3 ยังแนะนำเอ็นจิ้นเซิร์ฟเวอร์ใหม่ล่าสุดที่เรียกว่า Nitro เราสามารถใช้ประโยชน์จากพลังของ Nitro เพื่อสร้างปลายทาง API ของเซิร์ฟเวอร์ และ เซิร์ฟเวอร์มิดเดิลแวร์ โดยเพียงแค่สร้าง server
ไดเรกทอรีที่มี api
และ middleware
เป็นไดเรกทอรีย่อย คุณสามารถตรวจสอบโครงสร้างไดเร็กทอรีที่เรียบง่ายนี้ได้ใน Github repo
-server;
--api;
--middleware;
ทั้ง API และมิดเดิลแวร์ควรส่งออกฟังก์ชันเริ่มต้นที่จัดการคำขอ API และส่งคืนข้อมูลสัญญา/JSON ต่างจาก Nuxt 2 เราไม่ต้องกำหนดเซิร์ฟเวอร์มิดเดิลแวร์ใน nuxt.config.js
.
นี่คือรายการขั้นตอนระดับสูงที่เราต้องทำเพื่อสร้างแอปของเรา:
- ขั้นแรก เราเชื่อมต่อกับฐานข้อมูล Redis
- ในการบันทึกการเข้าชมหน้า เราจะสกัดกั้นทุกคำขอของหน้าที่ส่งไปยังเซิร์ฟเวอร์ เพิ่มตัวนับของหน้านั้นทีละรายการ และเก็บมูลค่าของหน้านั้นไว้ในฐานข้อมูล Redis
- จากนั้น เราทำการเรียก API จากฝั่งไคลเอ็นต์เพื่อดึงข้อมูลจำนวนการเยี่ยมชมจากฐานข้อมูล Redis และแสดงบนหน้า Nuxt
ตามแนวคิด ไดอะแกรมด้านล่างแสดงสิ่งที่เราพยายามสร้าง👇
เรียนรู้เพิ่มเติมเกี่ยวกับ Nuxt 3 @ https://v3.nuxtjs.org/getting-started/installation
ใช้ไคลเอ็นต์ REST Redis
Upstash มีไคลเอ็นต์ Redis ที่ใช้ HTTP/REST ของตัวเอง - @upstash/redis
- ที่เราสามารถเพิ่มเป็นการพึ่งพาในโครงการ Nuxt ของเราได้
yarn add @upstash/redis
ตรวจสอบความถูกต้อง Redis DB
ในการตรวจสอบสิทธิ์ฐานข้อมูล Redis เราจำเป็นต้องค้นหาตัวแปรสภาพแวดล้อมต่อไปนี้:
- REST URL (UPSTASH_REDIS_REST_URL) และ
- โทเค็น (UPSTASH_REDIS_REST_TOKEN)
...จากคอนโซล Upstash - ใต้ฐานข้อมูล
การกำหนดค่ารันไทม์ส่วนตัว
ตอนนี้ เพื่อแสดงตัวแปรสภาพแวดล้อมเหล่านี้บนฝั่งเซิร์ฟเวอร์ Nuxt ให้การกำหนดค่ารันไทม์ที่เรากำหนดในnuxt.config.js
ไฟล์.
// nuxt.config.js
export default defineNuxtConfig({
publicRuntimeConfig: {},
privateRunimeConfig: {
UPSTASH_REDIS_REST_URL: process.env.UPSTASH_REDIS_REST_URL,
UPSTASH_REDIS_REST_TOKEN: process.env.UPSTASH_REDIS_REST_TOKEN,
},
});
ต่อไป เราสามารถเข้าถึงตัวแปรสภาพแวดล้อมเหล่านี้ได้โดยตรงโดยการนำเข้า #config
.
import { Redis } from "@upstash/redis";
import config from "#config";
const redis = new Redis({
url: config.UPSTASH_REDIS_REST_URL,
token: config.UPSTASH_REDIS_REST_TOKEN,
});
อีกทางเลือกหนึ่งคือ zero-config วิธีคือการเพิ่ม UPSTASH_REDIS_REST_URL
และ UPSTASH_REDIS_REST_TOKEN
ลงใน .env
. โดยตรง ไฟล์และสร้างอินสแตนซ์ redis const redis = Redis.fromEnv()
โดยไม่จำเป็นต้องส่งตัวแปรเหล่านี้ไปที่ Redis
. โปรดทราบว่าเวทย์มนตร์นี้ใช้ได้เฉพาะเมื่อใช้ @upstash/redis
ไคลเอ็นต์ Redis
สกัดกั้นคำขอด้วย Nuxt server-middleware
เรามีอิสระที่จะใช้คำสั่ง Redis ที่จำเป็นต่อจากนี้ไป สำหรับตัวอย่างนี้ เราจะใช้ sorted-set เนื่องจาก sorted-sets นั้นไม่ซ้ำกัน และยังอนุญาตให้จัดเรียงและจัดการ SCORE ได้อีกด้วย
ตัวอย่างเช่น เราสามารถใช้ zincrby
เพื่อเพิ่มคะแนนหน้าทุกครั้งที่มีการร้องขอไปยังหน้า
// server/middleware/pageCount.js
import { Redis } from "@upstash/redis";
import { getRedisKey } from "../utils";
const redis = Redis.fromEnv();
export default async function (req, res, next) {
const redisKey = getRedisKey(req.url);
await redis.zincrby("myPageCounts", 1, redisKey);
next();
}
กำลังสร้างเนมสเปซ
Redis คือฐานข้อมูล NoSql ที่จัดเก็บข้อมูลในคู่คีย์-ค่า ไม่มีแนวคิดเกี่ยวกับคีย์ที่เพิ่มค่าอัตโนมัติหรือมีวิธีแบบไดนามิกในการสร้าง UUID ที่ไม่ซ้ำใคร นี่คือที่ที่เราแนะนำ getRedisKey()
ฟังก์ชันอรรถประโยชน์
ฟังก์ชันยูทิลิตี้นี้ประมวลผล URL คำขอและสร้างคีย์เฉพาะ - ซึ่งเราจะใช้เก็บจำนวนการเข้าชมในแต่ละหน้า วิธีนี้ทำให้เราป้องกันไม่ให้เพิ่มตัวนับกับคีย์เดิมได้
ในตัวอย่างของเรา เรารับ URL คำขอและแทนที่ทุกอินสแตนซ์ของ '/'
ด้วย '.'
เพื่อสร้างคีย์เว้นวรรคชื่อที่ไม่ซ้ำกัน
export const getRedisKey = (url: string) => {
const reqURL = url?.replace("/", ".");
const redisKey = reqURL === "." ? "page.home" : `page${reqURL}`;
return redisKey;
};
สิ่งนี้จะช่วยเราแปลง เช่น /about
ลงในคีย์เว้นวรรคซึ่งจะอ่านว่า page.about
เข้าถึง Redis DB โดยใช้ REST API Endpoints
มาสร้างปลายทาง API ที่จะดึงจำนวนปัจจุบันหรือคะแนนสำหรับหน้าที่เกี่ยวข้องกัน
ใน Nuxt 3 มีสองวิธีในการดึงข้อมูล 1)useAsyncData
และ 2) useFetch
. ใน app.vue
เราจะใช้ useAsyncData
พร้อมกับ $fetch
ให้บริการโดยห้องสมุด ohmyfetch
// app.vue
<script setup>
const router = useRoute();
const { data: count } = await useAsyncData('Count', () => $fetch('/api/count', { params: { path: router.path}}))
</script>
อย่างที่คุณเห็น พร้อมกับการเรียก API เราได้ส่งพาธของเราเตอร์เป็นพารามิเตอร์การค้นหาเพื่อระบุเพจที่กำลังเข้าถึง👇
$fetch("/api/count", { params: { path: router.path } });
ต่างจากเซิร์ฟเวอร์มิดเดิลแวร์ เราจะต้องใช้ปลายทาง API นี้ /api/count
เพื่อดึงจำนวนการเข้าชม ที่นำเราไปสู่ส่วนที่สนุก!
มาสร้างจุดสิ้นสุด API นี้ที่ server/api/count.ts
. เราจะใช้ประโยชน์จาก useQuery
วิธีการจัดทำโดย h3
ไลบรารีเพื่อเข้าถึงพารามิเตอร์การสืบค้นที่ส่งจากฝั่งไคลเอ็นต์
// server/api/count.ts
import { useQuery } from "h3";
export default async (req, res) => {
let query = await useQuery(req);
const redisKey = getRedisKey(query.path);
};
ที่นี่ 👆 เราจะใช้ getRedisKey()
. เดียวกัน ยูทิลิตีเพื่อให้แน่ใจว่าคีย์นี้ตรงกับคีย์ที่มีการเว้นวรรคชื่อที่เราใช้ในมิดเดิลแวร์เพื่อเพิ่มจำนวนหน้า
ตอนนี้เราสามารถส่งรหัสนี้ไปที่ zscore
ว่าเราแน่ใจว่ามีอยู่ในฐานข้อมูลเพื่อดึงคะแนน/จำนวน 👇
// server/api/count.ts
// ...
import { Redis } from "@upstash/redis";
const redis = Redis.fromEnv();
export default async () => {
// ...
const count = await redis.zscore("myPageCounts", redisKey);
return { count };
};
ใช้ Redis API โดยตรงกับ ioredis
เราสามารถทำได้เช่นเดียวกันโดยใช้ ioredis
ห้องสมุดด้วย
yarn add ioredis
ขณะใช้ ioredis
เราจะไม่มี auth
วิธีการที่มีอยู่ อย่างไรก็ตาม เรามีสตริงการเชื่อมต่อซึ่งมีอยู่ในคอนโซล Upstash ซึ่งเราสามารถใช้เพื่อเชื่อมต่อกับฐานข้อมูล Redis
เราสามารถตั้งค่า UPSTASH_REDIS_CONN
เป็นตัวแปรการกำหนดค่ารันไทม์แบบเดียวกับที่เราทำก่อนหน้านี้สำหรับ rest-url และโทเค็น
// nuxt.config.js
export default defineNuxtConfig({
publicRuntimeConfig: {},
privateRunimeConfig: {
UPSTASH_REDIS_CONN: process.env.UPSTASH_REDIS_CONN,
},
});
ต่อไป ในมิดเดิลแวร์ เราจะสร้าง new Redis()
เพื่อสร้างการเชื่อมต่อและเข้าถึงคำสั่ง Redis ทั้งหมดจาก client
👇
// server/middleware/pageCount.js
import config from "#config";
import Redis from "ioredis";
const client = new Redis(config.UPSTASH_REDIS_CONN);
สกัดกั้นคำขอด้วย Nuxt server-middleware
มิดเดิลแวร์ Nuxt ของเราจะยังคงเหมือนเดิม ยกเว้นวิธีที่เราเข้าถึง zincrby
จะเปลี่ยนไป👇
// server/middleware/pageCount.js
// ...
export default async function (req, res, next) {
// ...
await client.zincrby("myPageCounts", 1, redisKey);
next();
}
เข้าถึง Redis DB โดยใช้ REST API Endpoints
ก่อนหน้านี้ เราสร้างปลายทาง API แบบกำหนดเอง server/api/count.ts
เพื่อรับการนับ ตำแหน่งข้อมูล API นั้นจะยังคงเหมือนเดิม ยกเว้นวิธีที่เราเรียก zscore
วิธีการก็จะเปลี่ยนไปนิดหน่อย👇
// server/api/count.ts
import config from "#config";
import Redis from "ioredis";
const client = new Redis(config.UPSTASH_REDIS_CONN);
export default async (req: IncomingMessage, res: ServerResponse) => {
// ...
const count = await client.zscore("myPageCounts", redisKey);
return { count };
};
ทดสอบด้วย Upstash CLI
เนื่องจากเรากำลังจัดเก็บข้อมูลทั้งหมดไว้ใน sorted-set เราจึงสามารถใช้ zrange
เพื่อดึงรายการทั้งหมดจากชุดที่จัดเรียงของเรา
คุณสามารถเข้าถึง Redis CLI ที่มีให้ในคอนโซล Upstash และเรียกใช้คำสั่งต่อไปนี้:
zrange myPageCounts 0 -1
ที่นี่👆:
myPageCounts
เป็นชื่อชุดเรียงของเรา0 -1
หมายถึงช่วง โดยที่0
เป็นค่าเริ่มต้นและ-1
แสดงถึงไอเทมสุดท้ายของเซ็ต
คำสั่งด้านบนแสดงรายการคีย์ทั้งหมดโดยไม่มี SCORES เราแก้ไขได้โดยการเพิ่ม WITHSCORES 👇
// lowest SCORE first
zrange myPageCounts 0 -1 WITHSCORES
// highest SCORE first
zrevrange myPageCounts 0 -1 WITHSCORES
// get SCORE for page.home hits
zscore myPageCounts page.home
ในขณะที่คุณทดสอบ API และมิดเดิลแวร์ อย่าลืมตรวจสอบคอนโซล Upstash สำหรับกิจกรรมทั้งหมดที่เกิดขึ้นบนเว็บไซต์ของคุณ
การใช้ทรัพยากรในคอนโซล Upstash
การปรับใช้แอป Nuxt 3 ของคุณ
เอ็นจิ้นเซิร์ฟเวอร์ Nitro มีส่วนสำคัญในขณะที่ปรับใช้แอป Nuxt 3
Netlify
ในการปรับใช้บน Netlify เราจะกด repo GitHub ของแอป Nuxt ตามปกติ อย่าลืมดูแลสามรายการต่อไปนี้เพื่อให้การปรับใช้งานของคุณเป็นไปอย่างราบรื่น
- ใน Netlify ใช้
npm run build
เป็นคำสั่ง build ของคุณและdist
เป็นไดเร็กทอรีที่จะเผยแพร่ - สร้างตัวแปรสภาพแวดล้อมของคุณสำหรับการเชื่อมต่อ rest-url, token หรือ Redis ใน Netlify ก่อนปรับใช้
- สุดท้ายแต่ไม่ท้ายสุด ตรวจสอบให้แน่ใจว่าคุณได้สร้าง
netlify.toml
ในรูทของโปรเจ็กต์ Nuxt ของคุณ สำหรับเนื้อหาของไฟล์นี้ ไปที่ netlify.toml
เมื่อเรา yarn build
, Nuxt 3 สร้างไดเร็กทอรีชื่อ .output
ที่เราได้ใช้ใน .toml
ไฟล์เพื่อให้เส้นทางสำหรับการทำงานของเรา
// netlify.toml
//...
[build];
// ...
functions = ".output/server";
นี่คือตัวอย่าง Nuxt จากบทความนี้ที่ทำงานบน Netlify:https://thirsty-visvesvaraya-a09ab9.netlify.app/
คลาวด์แฟลร์
เราปรับใช้แอป Nuxt 3 กับพนักงาน Cloudflare ได้จากเทอร์มินัล! เอกสาร Nuxt 3 แนะนำให้ Miniflare ทดสอบแอปของคุณในเครื่อง จากนั้นใช้ Wrangler เพื่อดูตัวอย่างและเผยแพร่
อย่าลืมเพิ่ม wrangler.toml
ไฟล์ในรูทโปรเจ็กต์ด้วย Cloudflare account_id
และตัวแปรสภาพแวดล้อมตามที่แสดงในไฟล์ตัวอย่างนี้
สำหรับการปรับใช้ Cloudflare เราจะจัดเตรียม entry-point
และสร้างคำสั่งด้วย NITRO_PRESET=cloudflare
.
// wrangler.toml
//..
[site]
bucket = ".output/public"
entry-point = ".output"
[build]
command = "NITRO_PRESET=cloudflare yarn nuxt build"
upload.format = "service-worker"
นี่คือตัวอย่าง Nuxt จากบทความนี้ที่ทำงานบน Cloudflare worker:https://upstash-demo.krutie-patel.workers.dev/contact
บทสรุป
เราได้กล่าวถึงแอปพลิเคชันพื้นฐานที่สุดของ Redis โดยใช้บริการ Upstash เพื่อดูว่าเราจะรวมเข้ากับเฟรมเวิร์กการเรนเดอร์ฝั่งเซิร์ฟเวอร์เช่น Nuxt (v3) เพื่อ:
ได้อย่างไร- เชื่อมต่อกับฐานข้อมูล Redis
- สร้างคีย์เฉพาะและเขียนคู่คีย์-ค่าลงในฐานข้อมูล
- อ่านข้อมูลจากฐานข้อมูล Redis และ
- ปรับใช้แอปของเรากับพนักงาน Netlify และ Cloudflare
Upstash ยังให้ตัวเลือกในการเข้ารหัสการรับส่งข้อมูลสำหรับแต่ละฐานข้อมูลที่เราสร้าง พร้อมด้วยตัวเลือกในการจำลองข้อมูลในหลายโซนความพร้อมใช้งานและแคชการตอบสนอง REST API ของเราในตำแหน่งขอบที่กระจายไปทั่วโลก คุณจะพบตัวเลือกเหล่านี้ในคอนโซล Upstash ใต้ รายละเอียด ของฐานข้อมูลของคุณ
สำหรับผู้เริ่มต้นที่ต้องการสำรวจ Redis DB Upstash ทำให้ง่ายต่อการเริ่มต้นในแง่ของการทำงานกับเทคโนโลยี front-end ที่จะเกิดขึ้นและที่มีอยู่ที่เรารู้จักและชื่นชอบอยู่แล้ว ฉันหวังว่าบทความนี้จะเป็นจุดเริ่มต้นที่ดีในการเริ่มต้นเส้นทาง Redis ของคุณ