استفاده از پایگاه دادههایی که در سمت سرور سرعت بالاتری داشته باشند برای برنامههایی که کاربران زیادی دارند بیشتر از دیگر برنامهها اهمیت دارد. از جمله پایگاه های دادهای که طرفداران خاص خود را دارد، redis است. در پاسخ به سوال ردیس چیست میتوان گفت که یک پایگاه داده NoSql است که رایگان بوده و برای ذخیره و بازیابی اطلاعات از آن استفاده میشود. در ادامه این مقاله این پایگاه داده را به طور کامل معرفی کرده و ویژگیهای آن را نیز بیان میکنیم. جهت دریافت سوال Redis چیست با ما همراه باشید.
Redis چیست؟
کلمه Redis مخفف عبارت Remote Dictionary Server است. به بیان سادهتر پایگاه داده ردیس نوعی ساختمان داده است که اطلاعات را در RAM نگهداری میکند. این کار باعث میشود که سرعت دسترسی به اطلاعات بسیار بالاتر رود. بالا بودن سرعت بزرگترین مزیت و تفاوت اصلی دیتابیس redis با دیگر پایگاه های داده است. با توجه به اینکه اطلاعات در ردیس داخل RAM نگهداری میشود، آن را In-Memory Database مینامند.
از محل ذخیرهسازی اطلاعات در ردیس مشخص است که این پایگاه داده یک محل ذخیرهسازی موقت است. این پایگاه داده مناسب برای اطلاعاتی است که بسیار پرکاربرد هستند و لازم است تا مدام از سرور فراخوانده شوند. در این حالت اطلاعات به طور موقت روی RAM ذخیره شده و به سرعت به کاربر منتقل میشود. این روش هم رضایت کاربر را بهتر حاصل میکند و هم مدیر سایت به منابع کمتری برای سرویسدهی احتیاج خواهد داشت. نکته دیگر این که از ردیس در انواع سرور مجازی نیز میتوان استفاده کرد.
تفاوت پایگاه دادههای دیگر با redis چیست؟
تمام دیتابیسهایی چون MySql و یا Oracle دارای ستون، ردیف، جدول، تابع و… هستند. این در حالی است که در ردیس خبری از این موارد نیست! حتی این پایگاه داده از مفاهیمی چون Insert، Select و… نیز استفادهای ندارد. جایگزین این موارد در redis ساختماندادههای از قبیل String، Lists ،Sets و… هستند. این تغییر عمده در ساختار این پایگاه داده منجر به سرعت بالای پاسخگویی آن میشود. میتوانید مستندات ردیس را در سایت رسمی آن بخوانید.
ویژگیهای ردیس
اگر بخواهید از این پایگاه داده استفاده نمایید، بهتر است با ویژگیهای آن آشنا شوید. برخی از مهترین ویژگیهای redis عبارت است از:
1) سازگار بودن با بیشتر زبانهای برنامهنویسی
دغدغه اصلی برنامهنویسان برای انتخاب پایگاه داده مورد نظرشان، سازگاری با زبانی است که از آن برای توسعه برنامه خود استفاده مینمایند. از مزیتهای بزرگ ردیس سازگاری با زبانهای برنامهنویسی پرکاربرد از جمله php و جاوااسکریپت است. با این شرایط برنامهنویسان با خیال آسوده میتوانند از این پایگاه داده بهره ببرند.
2) ذخیره سازی In-Memory Database
بالا بودن سرعت در این پایگاه داده به این علت است که از RAM برای ذخیرهسازی و بازیابی اطلاعات استفاده کرده است. در این صورت است که دسترسی به اطلاعات با سرعت اتفاق میافتد و رضایت کاربر نیز بالا میرود. همچنین بار روی سرور کاهش مییابد؛ زیرا در هر بار درخواست کاربرها لازم نیست به سراغ سرور رفته و اطلاعات را از آن دریافت نماییم.
3) مبتنی بر Key/Value
این حالت به آن معناست که به ازای هر مقدار یک کلید در redis در نظر گرفته میشود. همین مسئله موجب میشود که سرعت پاسخدهی سرویس بالا باشد.
4) پشتیبانی از جداولHash و HyperLogLog
جداول هش ساختارهایی هستند که برای ذخیره و بازیابی اطلاعات از آنها استفاده میشود. نوع کار این جداول شبیه سیستم key/value است و برای هر مقدار کلید مشخصی تعریف میشود. همچنین داشتن قابلیت HyperLogLog از مزیتهای ردیس است. این قابلیت کمک میکند شما با استفاده از الگوریتمهایی که وجود دارد تعداد تکرار عناصر در مجموعه اطلاعات را به دست بیاورید.
5) سیستم تکثیر
پایگاه داده ردیس از یک سیستم تکثیر master-slave replication استفاده میکند. در این سیستم نسخه slave میتواند بعد از خرابی نسخه اصلی(master) جایگزین شود. به عبارت دیگر نسخههای فرعی یک رونوشت از نسخه اصلی هستند و جای خالی آنها را پر میکنند.
6) کاهش هزینهها
همانطور که گفته شد، استفاده از ردیس باعث میشود مراجعه به سرور کمتر شده و نیاز به منابع کمتری داشته باشید. همین مسئله هزینههای شما را تا حد زیادی کاهش میدهد. هزینههای زیرساخت از جمله هزینههایی هستند که کاهش آنها در کنار بازدهی بالا میتواند به صاحبان برنامهها کمک زیادی نماید.
کاربرد redis چیست؟
اکنون میدانید که Redis چیست. اما برای درک اهمیت و لمس کاربرد redis کافی است به حجم بالای اپلیکیشنهایی که امروزه مورد استفاده قرار میگیرند، توجه کنید. امروزه بسیاری از کسبوکارهای مختلف فعالیت خود را از طریق وب سایت و اپلیکیشن انجام داده و این پلتفرمها دارای مخاطبان بسیار زیادی هستند.
استفاده روز افزون از این برنامهها باعث شده تا برنامههای سمت سرور طرفدار بیشتری داشته باشند. مهمترین ویژگی برای آنها این است که بتوانند به حجم بالای درخواستهای سمت سرور با سرعت بالایی پاسخ دهند. به این منظور بهتر است از پایگاه داده NoSQL استفاده شود که بهترین آنها پایگاه داده Redis است. اگر برای سایت پرمخاطب خود تصمیم به خرید هاست لینوکس دارید میتوانید به استفاده از Redis برای پایگاه داده آن فکر کنید.
یکی از کاربردهای مهم redis در Caching است. اگر بخواهیم کمتر به هارد دیسک برای بازیابی اطلاعات فشار وارد شود، از Caching استفاده میکنیم. در زمان کشینگ اطلاعات یک بار دریافت شده سپس در قالب حافظه نهان، در دیتابیس redis قرار داده میشوند.
نمونه دستورات دیتابیس redis چه چیزهایی هستند؟
دستورات مختلفی در redis وجود دارد که در شرایط مختلف مورد استفاده قرار میگیرند. در ادامه برخی از این دستورات معرفی شدهاند:
تنظیم یک مقدار
برای تنظیم یک مقدار خاص از دستور <SET <key><value> استفاده میشود. به عنوان مثال دستور SET firstname Ali برای تنظیم نام به علی استفاده میشود.
بازیابی یک مقدار
دستور لازم برای بازیابی یک مقدار مشخص به صورت GET <key> نوشته میشود. دستور GET firstname برای بازیابی نام مورد استفاده قرار میگیرد.
بررسی وجود یک کلید
این دستور به صورت EXISTS <key> نوشته و اجرا میشود.
حذف کلید
عملیات حذف کلید به صورت DEL <key> انجام میشود.
نمونههای گفته شده تنها تعدادی از دستوراتی است که برای ذخیره سازی و ایجاد تغییر در رشتهها و مقادیر مختلف استفاده میشود.
نصب redis روی ویندوز
بعد از آن که دانستید Redis چیست نوبت به آموزش redis و شیوه نصب ردیس آن میرسد. نصب دیتابیس Redis فرآیند بسیار سادهای است که تنها با کمک چند دستور انجام میشود. در ادامه مراحل نصب آن بر روی ویندوز شرح داده شده است.
به این منظور ابتدا باید جدیدترین نسخه redis را دانلود کنید. پس از دانلود دیتابیس Redis آن را از حالت فشرده خارج و در فایل دلخواهی مانند c:\redis قرار دهید. پنجره CMD را باز کنید تا دستورات لازم را از طریق آن اجرا کنید.
ابتدا از طریق CMD به فولدر ردیس وارد شوید. برای این کار دستور زیر را تایپ کنید.
cd c:\redis
پس از آن به کمک دستور زیر، سرور ردیس را اجرا کنید.
redis-server
پس از آن پنجرهای مطابق تصویر زیر نمایش داده میشود.
آموزش نصب redis در php
استفاده از دیتابیس redis در php نیز به سادگی انجام میشود. به این منظور کافی است دستور زیر را در کتابخانه predis اجرا کنید.
$ git clone git://github.com/nrk/predis.git
پس از آن برای راهاندازی redis دستورات زیر را اجرا کنید.
<?php
require "predis/autoload.php";
PredisAutoloader::register();
try {
$redis = new PredisClient();
// This connection is for a remote server
/*
$redis = new PredisClient(array(
"scheme" => "tcp",
"host" => "153.202.124.2",
"port" => 6379
));
*/
}
catch (Exception $e) {
die($e->getMessage());
}
سخن پایانی
در این مقاله درباره اینکه اصلا Redis چیست و چه ویژگیهایی دارد صحبت کردیم. استفاده از دیتا بیس redis در کنار اینکه سرعت بالاتری در ارائه خدمات برایتان رقم میزند، کاهش هزینه را نیز در بر خواهد داشت. پایگاه داده ردیس با ساختاری متفاوت توانسته در میان بسیاری از توسعهدهندگان وب محبوبیت بالایی کسب کند. ضمن آن که آموزش Redis ساده و سازگاری این پایگاه داده با زبانهای برنامهنویسی مختلف نیز سبب شده است تا برنامهنویسان دغدغهای از بابت استفاده از آن نداشته باشند.