برنامه نویسی

Redis برای مبتدیان (قسمت 2 از 2)

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

گزینه های فرمان

همه دستورات گزینه‌هایی ندارند، اما تعداد کمی، برای مثال، SET، دارای ویژگی های اضافه شده خاصی است که می تواند ضروری باشد.

  • ثانیه EX: زمان انقضا را بر حسب ثانیه تنظیم می کند (باید یک عدد صحیح مثبت باشد).
  • PX میلی ثانیه: زمان انقضا را بر حسب میلی ثانیه تنظیم می کند (باید یک عدد صحیح مثبت باشد).
  • مهر زمانی EXAT-ثانیه: یک مهر زمانی خاص یونیکس را برای انقضا تنظیم می کند (باید یک عدد صحیح مثبت باشد).
  • NX: کلید را فقط در صورتی تنظیم می کند که از قبل وجود نداشته باشد.
  • XX: کلید را فقط در صورتی تنظیم می کند که از قبل وجود داشته باشد.

توجه: نمی توانید استفاده کنید NX و XX با هم چون با هم تضاد خواهند داشت. همچنین، شما می توانید تنها از یک گزینه برای انقضا استفاده کنید (EX یا PX) در یک زمان.

برای کسب اطلاعات بیشتر در مورد SET دستور برای بررسی صفحه مستندات Redis به اینجا مراجعه کنید.


مثال: دستور SET با استفاده از گزینه EX

هنگام اجرای موارد زیر در میز کار خود، یک کلید با انقضا در Redis تعریف خواهید کرد:

SET key value EX seconds

وارد حالت تمام صفحه شوید

از حالت تمام صفحه خارج شوید

جایگزین کردن key با نام کلیدی که شامل رشته و value با مقدار جدیدی که می خواهید ذخیره کنید. جایگزین کردن seconds با مقدار زمان، در ثانیه، پس از آن کلید باید منقضی شود.

مثلا: اگر می خواهید مقدار نام خود را روی “Yoshi” تنظیم کنید و می خواهید پس از 7 ثانیه منقضی شود، اجرا کنید:

SET name carint EX 7

وارد حالت تمام صفحه شوید

از حالت تمام صفحه خارج شوید

این دستور مقدار را به روز می کند name به “Yoshi” و انقضای 7 ثانیه از زمان اجرای دستور را تعیین می کند.


مثال: دستور SET با گزینه های NX و XX

با استفاده از گزینه ها می توانید کلید را به صورت مشروط در مورد وجود آن در Redis تنظیم کنید NX، که مخفف Not EXists است و XX، که مخفف eXists است، در SET دستور:

با استفاده از گزینه NX (Not EXists):

SET key value NX

وارد حالت تمام صفحه شوید

از حالت تمام صفحه خارج شوید

جایگزین کردن key با نام کلیدی که می خواهید تنظیم کنید و value با مقداری که می خواهید در کلید ذخیره کنید. این دستور مقدار را تعیین می کند key به value فقط اگر key در حال حاضر وجود ندارد. اگر key در حال حاضر وجود دارد، دستور هیچ عملی را انجام نخواهد داد.

مثال:

اگر می خواهید یک کلید جدید تنظیم کنید username به “آلیس” فقط اگر username از قبل وجود ندارد، شما از این موارد استفاده خواهید کرد:

SET username alice NX
وارد حالت تمام صفحه شوید

از حالت تمام صفحه خارج شوید

با استفاده از گزینه XX (eXists):

SET key value XX

وارد حالت تمام صفحه شوید

از حالت تمام صفحه خارج شوید

این دستور مقدار را تعیین می کند key به value فقط اگر key درحال حاضر وجود دارد. اگر key وجود ندارد، دستور هیچ عملی را انجام نخواهد داد.

مثال:

اگر می خواهید مقدار یک کلید موجود را به روز کنید username به “باب” فقط اگر username در حال حاضر وجود دارد، شما از این موارد استفاده خواهید کرد:

SET username bob XX

وارد حالت تمام صفحه شوید

از حالت تمام صفحه خارج شوید


لیست ها در مقابل مجموعه ها

لیست ها

  • مجموعه سفارشی از رشته ها.
  • از عملیات هایی مانند افزودن عناصر به سر یا دم، پیرایش بر اساس محدوده و غیره پشتیبانی می کند.
  • برای حفظ ساختارهای داده منظم مفید است.
  • دستورات: RPUSH، LPUSH، LRANGE، LPOP، RPOP، و غیره.

مجموعه ها

  • مجموعه ای نامرتب از رشته های منحصر به فرد.
  • از عملیات هایی مانند افزودن، حذف و بررسی عضویت پشتیبانی می کند.
  • مفید برای ذخیره اقلام منحصر به فرد و انجام عملیات مجموعه.
  • دستورات: SADD، SREM، SMEMBERS، SISMEMBER، و غیره.

هنگام تصمیم گیری بین لیست ها و مجموعه ها، الزامات سفارش و نیاز به منحصر به فرد بودن داده های خود را در نظر بگیرید.


RPUSH: افزودن عناصر به انتهای لیست

برای افزودن یک یا چند عنصر به انتهای یک لیست، از RPUSH فرمان در اینجا نحوه استفاده از آن در میز کار خود آورده شده است:

RPUSH key element [element ...]

وارد حالت تمام صفحه شوید

از حالت تمام صفحه خارج شوید

جایگزین کردن key با نام لیست، و element با عناصری که می خواهید اضافه کنید.

مثلا:

  1. لیستی به نام ایجاد کنید fruits و عناصری را به آن اضافه کنید:
RPUSH fruits apple banana cherry

وارد حالت تمام صفحه شوید

از حالت تمام صفحه خارج شوید

این “سیب”، “موز” و “گیلاس” را به انتهای آن اضافه می کند fruits فهرست


LPUSH: اضافه کردن عناصر به ابتدای یک لیست

برای افزودن یک یا چند عنصر به ابتدای لیست، از LPUSH فرمان در اینجا نحوه استفاده از آن در میز کار خود آورده شده است:

LPUSH key element [element ...]

وارد حالت تمام صفحه شوید

از حالت تمام صفحه خارج شوید

جایگزین کردن key با نام لیست، و element با عناصری که می خواهید اضافه کنید.

مثلا:

  1. اضافه کردن عناصر به ابتدای fruits لیست:
LPUSH fruits mango orange

وارد حالت تمام صفحه شوید

از حالت تمام صفحه خارج شوید

این “انبه” و “نارنجی” را به ابتدای آن اضافه می کند fruits فهرست


LRANGE: بازیابی عناصر از یک لیست

برای بازیابی طیف وسیعی از عناصر از یک لیست، از LRANGE فرمان در اینجا نحوه استفاده از آن در میز کار خود آورده شده است:

LRANGE key start stop

وارد حالت تمام صفحه شوید

از حالت تمام صفحه خارج شوید

جایگزین کردن key با نام لیست، start با شاخص شروع، و stop با شاخص پایانی

مثلا:

  1. بازیابی عناصر از fruits لیست:
LRANGE fruits 0 2

وارد حالت تمام صفحه شوید

از حالت تمام صفحه خارج شوید

این سه عنصر اول را برمی گرداند: “انبه”، “پرتقال” و “سیب”.


LPOP: حذف اولین عنصر از یک لیست

برای حذف و برگرداندن اولین عنصر یک لیست، از LPOP فرمان در اینجا نحوه استفاده از آن در میز کار خود آورده شده است:

LPOP key

وارد حالت تمام صفحه شوید

از حالت تمام صفحه خارج شوید

جایگزین کردن key با نام لیست

مثلا:

  1. اولین عنصر را از قسمت حذف کنید fruits لیست:
LPOP fruits

وارد حالت تمام صفحه شوید

از حالت تمام صفحه خارج شوید

با این کار «نارنجی» حذف و برمی گردد.


RPOP: حذف آخرین عنصر از یک لیست

برای حذف و برگرداندن آخرین عنصر یک لیست، از RPOP فرمان در اینجا نحوه استفاده از آن در میز کار خود آورده شده است:

RPOP key

وارد حالت تمام صفحه شوید

از حالت تمام صفحه خارج شوید

جایگزین کردن key با نام لیست

مثلا:

  1. آخرین عنصر را از قسمت حذف کنید fruits لیست:
RPOP fruits

وارد حالت تمام صفحه شوید

از حالت تمام صفحه خارج شوید

با این کار “گیلاس” حذف و برمی گردد.


SADD: افزودن عناصر به یک مجموعه

برای افزودن یک یا چند عنصر به یک مجموعه، از SADD فرمان در اینجا نحوه استفاده از آن در میز کار خود آورده شده است:

SADD key member [member ...]

وارد حالت تمام صفحه شوید

از حالت تمام صفحه خارج شوید

جایگزین کردن key با نام مجموعه و member با عناصری که می خواهید اضافه کنید.

مثلا:

  1. مجموعه ای به نام ایجاد کنید colors و عناصری را به آن اضافه کنید:
SADD colors red green blue

وارد حالت تمام صفحه شوید

از حالت تمام صفحه خارج شوید

این “قرمز”، “سبز” و “آبی” را به آن اضافه می کند colors تنظیم.


SREM: حذف عناصر از یک مجموعه

برای حذف یک یا چند عنصر از یک مجموعه، از SREM فرمان در اینجا نحوه استفاده از آن در میز کار خود آورده شده است:

SREM key member [member ...]

وارد حالت تمام صفحه شوید

از حالت تمام صفحه خارج شوید

جایگزین کردن key با نام مجموعه و member با عناصری که می خواهید حذف کنید.

مثلا:

  1. حذف عناصر از colors تنظیم:
SREM colors blue

وارد حالت تمام صفحه شوید

از حالت تمام صفحه خارج شوید

با این کار “آبی” از قسمت حذف می شود colors تنظیم.


SMEMBERS: بازیابی همه عناصر از یک مجموعه

برای بازیابی تمام عناصر یک مجموعه، از SMEMBERS فرمان در اینجا نحوه استفاده از آن در میز کار خود آورده شده است:

SMEMBERS key

وارد حالت تمام صفحه شوید

از حالت تمام صفحه خارج شوید

جایگزین کردن key با نام مجموعه

مثلا:

  1. بازیابی همه عناصر از colors تنظیم:
SMEMBERS colors

وارد حالت تمام صفحه شوید

از حالت تمام صفحه خارج شوید

با این کار تمام عناصر موجود در colors مجموعه: “قرمز” و “سبز”.


SISMEMBER: بررسی اینکه آیا یک عنصر در یک مجموعه وجود دارد یا خیر

برای بررسی اینکه آیا یک عنصر عضوی از یک مجموعه است، از عبارت استفاده کنید SISMEMBER فرمان در اینجا نحوه استفاده از آن در میز کار خود آورده شده است:

SISMEMBER key member

وارد حالت تمام صفحه شوید

از حالت تمام صفحه خارج شوید

جایگزین کردن key با نام مجموعه و member با عنصری که می خواهید بررسی کنید.

مثلا:

  1. بررسی کنید که آیا “قرمز” در colors تنظیم:
SISMEMBER colors red

وارد حالت تمام صفحه شوید

از حالت تمام صفحه خارج شوید

این باز خواهد گشت 1 اگر “قرمز” عضوی از مجموعه باشد، و 0 در غیر این صورت.


هش در Redis

در Redis، هش ها نقشه هایی بین فیلدهای رشته و مقادیر رشته هستند. آنها برای نمایش اشیا یا موجودیت هایی با ویژگی های متعدد ایده آل هستند. برخلاف مجموعه‌ها یا لیست‌ها که مقادیر منفرد را در خود نگه می‌دارند، هش‌ها جفت‌های کلید-مقدار را در جایی که فیلد و مقدار هر دو رشته هستند ذخیره می‌کنند.

مثال: استفاده از دستور HSET برای هش

این HSET فرمان یک فیلد در هش ذخیره شده در کلید را با یک مقدار مشخص تنظیم می کند. اگر کلید وجود نداشته باشد، یک هش خالی ایجاد می کند.

HSET key field value

وارد حالت تمام صفحه شوید

از حالت تمام صفحه خارج شوید

  • جایگزین کردن key با نام هش.
  • جایگزین کردن field با صفت برای تغییر.
  • جایگزین کردن value با مقدار جدید برای تخصیص.

مثال: تنظیم فیلدها در هش

یک هش ایجاد کنید user:1001 نشان دادن یک کاربر با ویژگی های:

HSET user:1001 username alice email alice@example.com

وارد حالت تمام صفحه شوید

از حالت تمام صفحه خارج شوید

این دستور تنظیم می شود username به “آلیس” و email به “alice@example.com” در هش user:1001.

مثال: استفاده از دستور HGET برای هش

این HGET دستور مقدار یک فیلد را از هش ذخیره شده در کلید بازیابی می کند.

HGET key field

وارد حالت تمام صفحه شوید

از حالت تمام صفحه خارج شوید

  • جایگزین کردن key با نام هش.
  • جایگزین کردن field با فیلد خاصی که می خواهید مقدار آن را بازیابی کنید.

مثال: گرفتن فیلدها از هش

برای بازیابی username و email زمینه ها از user:1001 هش:

HGET user:1001 username
HGET user:1001 email

وارد حالت تمام صفحه شوید

از حالت تمام صفحه خارج شوید

این دستورات به ترتیب “alice” و “alice@example.com” را برمی گرداند.

مثال: استفاده از دستور HDEL برای هش

این HDEL دستور یک یا چند فیلد را از هش در کلید حذف می کند.

HDEL key field [field ...]

وارد حالت تمام صفحه شوید

از حالت تمام صفحه خارج شوید

  • جایگزین کردن key با نام هش که فیلدها از آن حذف می شوند.
  • جایگزین کردن field با فیلد(های) برای حذف.

مثال: حذف فیلدها از هش

برای حذف email میدان از user:1001 هش:

HDEL user:1001 email

وارد حالت تمام صفحه شوید

از حالت تمام صفحه خارج شوید

این email فیلد از قسمت حذف خواهد شد user:1001 هش

نتیجه

Redis به طور قابل توجهی تکامل یافته است و خود را نه تنها به عنوان یک لایه کش بلکه به عنوان یک پایگاه داده اولیه قرار می دهد. پایداری داده، تکرار برای دوام و در دسترس بودن، پشتیبانی از JSON و ماژول های جستجو برای ذخیره و جستجوی داده های پیچیده را ارائه می دهد. Redis OM، یک کتابخانه نگاشت Object، استفاده را ساده می کند. این مجموعه بر روی قابلیت های اصلی Redis تمرکز دارد.


این قالب محتوا را به بخش هایی با سرفصل ها، زیرعنوان ها و مثال های واضح، مناسب برای خوانایی و ارجاع در Notion سازمان می دهد.

نوشته های مشابه

دیدگاهتان را بنویسید

نشانی ایمیل شما منتشر نخواهد شد. بخش‌های موردنیاز علامت‌گذاری شده‌اند *

دکمه بازگشت به بالا