ذخیره‌ساز کلید-مقدار

Valkey مدیریت‌شده، سازگار با Redis

Valkey نسخه‌ی کاملاً متن‌باز Redis است که بنیاد لینوکس نگهداری می‌کند. همان کلاینت‌ها و همان دستورها، بدون تغییر کد.

نسخه
Valkey 9 (پیش‌فرض)
سازگاری
پروتکل و کلاینت‌های Redis
پورت
6379
در اپ
REDIS_URL با --prefix REDIS
لوگوی Valkey

Redis، متن‌باز و بدون نگرانی مجوز

Valkey از کد Redis جدا شده و با مجوز BSD توسعه می‌یابد. پروتکل RESP، دستورها و ساختارهای داده همان است، پس کلاینت‌های redis در هر زبانی بدون تغییر وصل می‌شوند.

برای کش، session و صف همان کاربردهای Redis را دارد. داده در حافظه نگهداری می‌شود و پشتیبان‌گیری مدیریت‌شده ندارد.

مناسب برای

  • کش برنامه
  • session و توکن
  • صف کارهای پس‌زمینه
  • جدول امتیاز با Sorted Set

از ساخت تا اتصال

  1. ساخت

    Valkey با نسخه‌ی پیش‌فرض 9 ساخته می‌شود.

    --type valkey
  2. لینک به اپ

    با پیشوند REDIS، کلاینت‌های موجود بدون تغییر کار می‌کنند.

    --prefix REDIS
  3. استفاده

    کلاینت فقط REDIS_URL را می‌خواند؛ ioredis، redis-py و go-redis همان‌طور که با Redis کار می‌کردند کار می‌کنند.

    REDIS_URL

خروجی ساخت سرویس

sakoocloud db
sakoocloud db create --name cache --type valkey
✔ Provisioning cache · db_4n8x2p
ℹ Ready in ~90s. Get credentials: sakoocloud db credentials db_4n8x2p
sakoocloud apps link-db db_4n8x2p --app my-api --prefix REDIS
✔ Linked database. Env vars injected under REDIS_*.
# REDIS_URL=redis://default:••••@…:6379

ساخت Valkey

با CLI یا از کنسول.

terminal
sakoocloud db create --name cache --type valkey --storage 1

تنظیمات

متغیرهایی که به اپ تزریق می‌شوند

پیشوند پیش‌فرض DATABASE است؛ با --prefix می‌توانید نام دیگری بدهید، مثلاً REDIS.

متغیرمقدار
REDIS_URLرشته‌ی کامل اتصال
REDIS_HOST و REDIS_PORTآدرس داخلی و پورت 6379
REDIS_PASSWORDرمز تولیدشده

اتصال از اپ

همان کلاینت Redis.

import Redis from "ioredis";

const cache = new Redis(process.env.REDIS_URL);

رانتایم‌هایی که معمولاً به آن وصل می‌شوند

خطاهای رایج

NOAUTH Authentication required

علتکلاینت بدون رمز وصل می‌شود.

راه‌حلاز REDIS_URL استفاده کنید.

بعد از ری‌استارت داده‌ها نیستند

علتاین سرویس داده را در حافظه نگه می‌دارد و پشتیبان‌گیری مدیریت‌شده ندارد.

راه‌حلداده‌ای که از دست رفتنش قابل قبول نیست را در PostgreSQL یا MongoDB نگه دارید و این سرویس را فقط برای کش یا داده‌ی موقت استفاده کنید.

از سیستم خودم وصل نمی‌شوم

علتآدرس داخلی فقط از اپ‌های همان پروژه در دسترس است.

راه‌حلبرای اتصال از بیرون، دسترسی عمومی را روشن کنید و آدرس و پورت خارجی را از sakoocloud db credentials بگیرید.

terminal
sakoocloud db public-access <db-id>
sakoocloud db credentials <db-id>

پرسش‌های متداول

کد Redis من با Valkey کار می‌کند؟

بله. پروتکل و دستورها یکی است و کلاینت‌های redis بدون تغییر وصل می‌شوند.

چرا Valkey به‌جای Redis؟

اگر مجوز کاملاً متن‌باز برای شما مهم است. از نظر کاربرد روزمره فرقی نمی‌کنند.

پشتیبان‌گیری دارد؟

نه. Valkey حافظه‌ای است؛ داده‌ی ماندگار را در دیتابیس دیگری نگه دارید.

جزئیات بیشتر در راهنمای Valkey در مستندات و مرجع CLI.

سریع‌ترین مسیر از کد تا انتشار.

ابتدا ابزار خط فرمان را نصب کنید، سپس همین‌جا امتحان کنید. (بنویسید، یا یکی از پیشنهادهای پایین ترمینال را بزنید)

~/projects/my-app
امتحان کنید