معرفی Redis

برای یک وب سرویس با ترافیک بالا پایین آوردن برخی مکانیزم های کش کردن ضروری می شود. کش کردن راهی برای ذخیره کردن داده های محاسبه شده در حافظه می باشد بطوری که درخواست های بعدی با سرعت کمتری پاسخ داده شوند و همچنین اگر با استراژی صحیحی پیاده سازی شود از گردش داده ها و محاسبات تکراری در اپلیکیشن جلوگیری می کند. Redis و Memcached دو مخزن دردسترس مبتنی بر حافظه هستند در این پست ما درباره ی برخی از ویژگی های کلیدی Redis صحبت خواهیم کرد و برخی از دستور های ساده ی آن را شروع خواهیم کرد. علاوه بر کش کردن، از Redis می توان در اپلیکیشن هایی که درآن ها نیاز به دسترسی به داده زیاد است نیز استفاده کرد.

Redis

Redis یک مخزن ساختار داده در حافظه است که بسیاری از انواع داده ها مانند string ، Hash ها،مجموعه ها، مجموعه های مرتب شده و غیره را پشتیبانی می کند.

هرنوع از مقادیر در Redis با یک کلید ذخیره می شود که از لحاظ باینری امن است و می تواند هرچیزی از یک رشته ی خالی تا یک رشته hash بلند باشد. هر اپلیکیشنی باید از یک شِمای از پیش تعریف شده برای نام گذاری های Redis داشته باشد که از تداخل ها در نام گذاری جلوگیری کند.

تنظیم Redis

مانند هر پایگاه داده ای، Redis شامل یک سرور برای ذخیره سازی داده ها در حافظه است و کلاینت ها دستورات را روی سرور اجرا می کنند برای تنظیم سرور روی دستگاه خودتان من پیشنهاد می کنم از Docker استفاده کنید زیرا کار با آن ساده است. اگر شما Docker را روی دستگاه خود دارید پیشنهاد می کنم دستور زیر را اجرا کنید:

docker run --rm -it --name local-redis -p 6379:6379 redis

این دستور یک مخزن Docker با نام local-redis  روی localhost شما با پورت 6379 اجرا خواهد کرد این دستور از Redis docker image  رسمی برای راه اندازی مخزن استفاده می کند.

برای کلاینت ما می توانیم از redis-cli برای اجرای دستور ها از کنسول روی سرور Redis استفاده کنیم یک تب جدید باز کنید و دستور زیر را برای شروع یک redis-cli جدید که به local docker Redis server متصل است، اجرا کنید:

docker run -it --link local-redis:redis --rm redis redis-cli -h redis -p 6379

حال ما می توانیم برخی دستور های پایه ای Redis را شروع کنیم:

دستورات

مقدار دهی

syntax: SET <key> <value>

مثال: SET firstname Albert

بازیابی یک مقدار

syntax: GET <key>

مثال: GET firstname

بررسی اینکه آیا یک کلید وجود دارد یا نه

syntax: EXISTS <key>

پاک کردن یک کلید

یک کلید می تواند با حافظه های تخصیص داده شده با آن حذف شود

DEL <key>

این دستور یک بلاک عملیاتی همگام است

یک راه بهتر برای حذف کلید ها این است که ارتباط آن ها را با حافظه های تخصیص داده شده به آن ها قطع کنیم که بعدا این حافظه ها با جمع کننده ی زباله جمع آوری می شوند

UNLINK <key>

تنظیم یک تاریخ انقضا برای کلید

EXPIRE <key> <seconds>
PEXPIRE <key> <milliseconds>

تنظیم یک کلید با بررسی وجود و انقضای آن

syntax: SET <key> <value> <EX seconds>|<PX milliseconds> NX|XX

NX:فقط زمانی که کلید وجود نداشته باشد آن را اختصاص می دهد

XX: کلید را فقط درصورتی که درحال حاضر وجود داشته باشد اختصاص می دهد

EX:تاریخ انقضا را به ثانیه تنظیم می کند.

PX: تاریخ انقضا را به میلی ثانیه تنظیم می کند.

مثال

SET firstname Albert EX 10 NX

این دستور کلید firstname  با رشته ی "Albert" را فقط درصورتی که کلید وجود نداشته باشد با زمان انقضای 10 ثانیه تنظیم می کند.

افزایش یا کاهش مقدار یک عدد صحیح

Redis یک راه ساده برای افزایش یا کاهش مقادیر عدد صحیح ارائه می دهد که مثل یک شمارنده عمل می کند

syntax:

INCR <key>
DECR <key>
INCRBY <key> <increment value>
DECRBY <key> <decrement value>

مثال:

SET counter 4
INCRBY counter 6

ابتدا کلید شمارنده مقدار 4 را نگه خواهد داشت و بعد از دستور دوم مقدار آن 10 خواهد شد.

همه ی دستورات اشاره شده ی بالا برای ذخیره سازی یا دستکاری داده های عددی یا رشته ای هستند. ساختار های داده ای دیگر مانند hash ها، مجموعه ها، آرایه های بیتی و غیره نیز وجود دارد. این نوع های داده ای برای حل مسائل پیچیده تر استفاده می شوند.

تبریک شما اساس Redis را یاد گرفتید. ممنون از اینکه وقت خود را در اختیار ما قرار دادید امید واریم که این پست برای شما مفید بوده باشد.

نظر شما

0 نظر

نظری ثبت نشده است