با Redis آشنا شوید و بیاموزید که چگونه برنامههای Node خود را با این فروشگاه داده قدرتمند بهینه کنید.
هنگامی که یک برنامه وب میسازید، باید مطمئن شوید که مقیاسپذیر و کارآمد است. برای انجام این کار، باید چندین اصل و مفهوم را در نظر بگیرید.
Redis یکی از فناوریهایی است که میتواند به بهبود عملکرد برنامههای وب شما کمک کند. این ویژگی های قابل توجهی را ارائه می دهد که می توانید از آنها برای بهبود عملکرد هر برنامه وب استفاده کنید.
بنابراین، دقیقاً Redis چیست و چگونه می توانید از آن با برنامه های وب Node.js خود استفاده کنید؟
Redis چیست و چه زمانی باید از آن استفاده کرد؟
Redis یک ذخیرهسازی دادههای منبع باز، درون حافظه و با ارزش کلیدی است. این یک فناوری انعطافپذیر است که میتواند به عنوان صف کار، پایگاه داده، حافظه پنهان، مدیر جلسه، کارگزار پیام و موارد دیگر عمل کند.
ترکیبی از سرعت، تطبیق پذیری و سهولت استفاده Redis، آن را به ابزاری بسیار ارزشمند در اکوسیستم توسعه دهندگان نرم افزار تبدیل می کند.
چه زمانی باید از Redis استفاده کرد؟
Redis برای بسیاری از کارها مناسب است، اما باید مراقب باشید که تنها زمانی از آن استفاده کنید که منطقی باشد.
شما باید از Redis در این سناریوها استفاده کنید:
- ذخیره سازی: Redis محبوب ترین راه برای پیاده سازی حافظه پنهان برای کمک به جلوگیری از بارگذاری در پایگاه داده و بهبود عملکرد کلی است.
- مدیریت جلسه: ذخیره و مدیریت جلسات کاربر برای احراز هویت و مدیریت وضعیت با Redis بسیار آسان است.
- ذخیرهسازی موقت دادهها: Redis به شما امکان میدهد دادهها را ذخیره کرده و پس از یک دوره زمانی خاص آنها را بهطور خودکار حذف کنید. این باعث می شود که ابزار خوبی برای ذخیره داده های موقت مانند توکن های وب JSON، صف های شغلی و غیره باشد.
موارد دیگری که باید از Redis استفاده کنید عبارتند از: پیاده سازی یک واسطه پیام، بهینه سازی عملیات پایگاه داده، و حتی ذخیره سازی و دسترسی موثر به ساختارهای داده مانند لیست ها، مجموعه ها و هش ها.
نحوه استفاده از Redis با Node.js
Node.js یک فناوری محبوب برای ساخت برنامه های کارآمد و مقیاس پذیر در سمت سرور است. شما می توانید آن را همراه با فناوری های پشتیبانی مانند Redis برای دستیابی به عملکرد و مقیاس پذیری بالا استفاده کنید.
Redis از چندین زبان پشتیبانی می کند. می توانید از آن برای ذخیره سازی داده ها در PHP استفاده کنید و کلاینت های Redis عالی برای Golang وجود دارد. دو مشتری محبوب Redis برای Node.js، node-redis و ioredis هستند.
هر دو بسته از طریق npm در دسترس هستند و استفاده از آنها آسان است. تفاوت اصلی این است که node-redis مشتری رسمی است، در حالی که جامعه ioredis را توصیه می کند.
اتصال به Redis از Node.js
برای شروع، باید Redis را روی رایانه خود نصب کرده باشید و یک محیط توسعه Node.js راه اندازی کنید. برای نصب Redis در لینوکس، macOS و ویندوز، راهنمای نصب را در Redis.io بررسی کنید.
برای اتصال به Redis باید SDK مشتری Redis مورد نظر خود را در پروژه خود نصب کنید. بسته به ترجیح شما (ما از node-redis استفاده خواهیم کرد)، یکی از دستورات زیر را برای نصب کلاینت Redis اجرا کنید:
npm install redis --save
npm install ioredis --save
دستور اول node-redis را نصب می کند، در حالی که فرمان دوم ioredis را نصب می کند.
برای پیکربندی کلاینت تازه نصب شده خود، باید مطمئن شوید که Redis در حال اجرا است. شما می توانید این کار را با راه اندازی redis-cli در ترمینال خود انجام دهید:
دستور ping به سرور پینگ میدهد تا تأیید کند که در حال اجرا است، و یک پاسخ PONG در CLI به این معنی است که سرور به خوبی کار میکند. حالا یک فایل redis.js در پروژه Node خود ایجاد کنید و کد زیر را در آن بنویسید تا Redis را پیکربندی کنید:
const redis = require("redis")
// initialize using default config
const RedisClient = redis.createClient()
const connectRedis = async () => {
// connect to redis
await RedisClient.connect()
// handle error
RedisClient.on('error', (err) => {
console.error(`An error occurred with Redis: ${err}`)
})
console.log('Redis connected successfully...')
}
کد بالا یک کلاینت Redis جدید را در برنامه راه اندازی می کند. تابع createClient بسته redis به شما امکان می دهد با استفاده از پارامترهای مشخص شده خود یک کلاینت ایجاد کنید.
می توانید هاست، پورت، نام کاربری، رمز عبور یا رشته اتصال خود را مشخص کنید یا از مقادیر پیش فرض استفاده کنید. به عنوان مثال، node-redis به طور پیش فرض در لوکال هاست، در پورت 6379 شروع به اجرا می کند.
در اینجا چند روش برای استفاده از تابع createClient وجود دارد:
// using connection string
const RedisClient = redis.createClient("rediss://127.0.0.1:6379")
// using parameter object
const RedisClient = redis.createClient({
socket: {
host: "127.0.0.1",
port: "6379"
},
username: "your redis username",
password: "your password"
})
از نمونه های امن Redis در تولید استفاده کنید. در این صورت، یا یک رشته URL امن برای اتصال دارید یا از پارامترهای نشان داده شده در بالا استفاده می کنید. در هر صورت، همیشه به یاد داشته باشید که اعتبارنامه ها را خارج از کد نگه دارید و به جای آن از متغیرهای محیطی استفاده کنید.
انجام عملیات پایه Redis در Node.js
کد زیر با استفاده از تابع connectRedis در بالا به Redis متصل می شود و برخی از عملیات اساسی را که می توانید در Redis از برنامه های Node خود انجام دهید را نشان می دهد.
const testRedis = async () => {
await connectRedis()
// Set and retrieve a value
await RedisClient.set("name", "Timmy")
const getCommand = await RedisClient.get("name")
console.log(getCommand)
// Delete values immediately or schedule them to expire
// in a number of seconds
await RedisClient.del("name");
await RedisClient.setEx("location", 60, "Lagos")
// Push onto the front or back of a list
await RedisClient.lPush("days", "monday")
await RedisClient.rPush("days", "tuesday")
await RedisClient.lPush("days", "wednesday")
const daysArray = await RedisClient.lRange("days", 0, -1)
// prints [ 'wednesday', 'monday', 'tuesday' ]
console.log(daysArray)
// Remove an item from the back or front of a list
await RedisClient.rPop("days")
await RedisClient.lPop("days")
const newDaysArray = await RedisClient.lRange("days", 0, -1)
// prints [ 'monday' ]
console.log(newDaysArray)
}
testRedis()
به استفاده از async توجه کنید و در اینجا منتظر بمانید. این به این دلیل است که همه توابع به صورت ناهمزمان اجرا می شوند و وعده ها را برمی گردانند، بنابراین اگر فوراً به نتایج آنها نیاز دارید، مهم است که منتظر آنها باشید.
کد بالا فقط برخی از عملیات اساسی را نشان می دهد که می توانید در Redis از یک برنامه Node.js انجام دهید. دستورات و مفاهیم بسیار بیشتری وجود دارد که ارزش دیدن را دارد.
بخش Redis Commands در README موجود در مخزن GitHub node-redis مکان خوبی برای یافتن سایر دستورات و کارهایی است که انجام می دهند.
از Redis برای ساخت برنامه های کارآمد استفاده کنید
استفاده از قدرت Redis شما را به عنوان یک توسعه دهنده قادر می سازد تا برنامه های کاربردی سمت سرور بسیار کارآمد بسازید. با ذخیره سازی داده ها در حافظه Redis و ساختارهای داده و دستورات گسترده، برنامه ها می توانند بهینه سازی عملکرد قابل توجهی را انجام دهند.
قطعا باید Redis را در برنامه بعدی Node.js خود ادغام کنید تا عملکرد برنامه خود را افزایش دهید و تجربه کاربری بهتری ارائه دهید.