Redis، متنباز و بدون نگرانی مجوز
Valkey از کد Redis جدا شده و با مجوز BSD توسعه مییابد. پروتکل RESP، دستورها و ساختارهای داده همان است، پس کلاینتهای redis در هر زبانی بدون تغییر وصل میشوند.
برای کش، session و صف همان کاربردهای Redis را دارد. داده در حافظه نگهداری میشود و پشتیبانگیری مدیریتشده ندارد.
مناسب برای
- کش برنامه
- session و توکن
- صف کارهای پسزمینه
- جدول امتیاز با Sorted Set
از ساخت تا اتصال
ساخت
Valkey با نسخهی پیشفرض 9 ساخته میشود.
--type valkeyلینک به اپ
با پیشوند REDIS، کلاینتهای موجود بدون تغییر کار میکنند.
--prefix REDISاستفاده
کلاینت فقط
REDIS_URLرا میخواند؛ ioredis، redis-py و go-redis همانطور که با Redis کار میکردند کار میکنند.REDIS_URL
خروجی ساخت سرویس
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 یا از کنسول.
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);
import os, redis
cache = redis.from_url(os.environ["REDIS_URL"])
خطاهای رایج
NOAUTH Authentication required
علتکلاینت بدون رمز وصل میشود.
راهحلاز REDIS_URL استفاده کنید.
بعد از ریاستارت دادهها نیستند
علتاین سرویس داده را در حافظه نگه میدارد و پشتیبانگیری مدیریتشده ندارد.
راهحلدادهای که از دست رفتنش قابل قبول نیست را در PostgreSQL یا MongoDB نگه دارید و این سرویس را فقط برای کش یا دادهی موقت استفاده کنید.
از سیستم خودم وصل نمیشوم
علتآدرس داخلی فقط از اپهای همان پروژه در دسترس است.
راهحلبرای اتصال از بیرون، دسترسی عمومی را روشن کنید و آدرس و پورت خارجی را از sakoocloud db credentials بگیرید.
sakoocloud db public-access <db-id>
sakoocloud db credentials <db-id>
پرسشهای متداول
کد Redis من با Valkey کار میکند؟
بله. پروتکل و دستورها یکی است و کلاینتهای redis بدون تغییر وصل میشوند.
چرا Valkey بهجای Redis؟
اگر مجوز کاملاً متنباز برای شما مهم است. از نظر کاربرد روزمره فرقی نمیکنند.
پشتیبانگیری دارد؟
نه. Valkey حافظهای است؛ دادهی ماندگار را در دیتابیس دیگری نگه دارید.
جزئیات بیشتر در راهنمای Valkey در مستندات و مرجع CLI.