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 با عناصری که می خواهید اضافه کنید.
مثلا:
- لیستی به نام ایجاد کنید
fruitsو عناصری را به آن اضافه کنید:
RPUSH fruits apple banana cherry
این “سیب”، “موز” و “گیلاس” را به انتهای آن اضافه می کند fruits فهرست
LPUSH: اضافه کردن عناصر به ابتدای یک لیست
برای افزودن یک یا چند عنصر به ابتدای لیست، از LPUSH فرمان در اینجا نحوه استفاده از آن در میز کار خود آورده شده است:
LPUSH key element [element ...]
جایگزین کردن key با نام لیست، و element با عناصری که می خواهید اضافه کنید.
مثلا:
- اضافه کردن عناصر به ابتدای
fruitsلیست:
LPUSH fruits mango orange
این “انبه” و “نارنجی” را به ابتدای آن اضافه می کند fruits فهرست
LRANGE: بازیابی عناصر از یک لیست
برای بازیابی طیف وسیعی از عناصر از یک لیست، از LRANGE فرمان در اینجا نحوه استفاده از آن در میز کار خود آورده شده است:
LRANGE key start stop
جایگزین کردن key با نام لیست، start با شاخص شروع، و stop با شاخص پایانی
مثلا:
- بازیابی عناصر از
fruitsلیست:
LRANGE fruits 0 2
این سه عنصر اول را برمی گرداند: “انبه”، “پرتقال” و “سیب”.
LPOP: حذف اولین عنصر از یک لیست
برای حذف و برگرداندن اولین عنصر یک لیست، از LPOP فرمان در اینجا نحوه استفاده از آن در میز کار خود آورده شده است:
LPOP key
جایگزین کردن key با نام لیست
مثلا:
- اولین عنصر را از قسمت حذف کنید
fruitsلیست:
LPOP fruits
با این کار «نارنجی» حذف و برمی گردد.
RPOP: حذف آخرین عنصر از یک لیست
برای حذف و برگرداندن آخرین عنصر یک لیست، از RPOP فرمان در اینجا نحوه استفاده از آن در میز کار خود آورده شده است:
RPOP key
جایگزین کردن key با نام لیست
مثلا:
- آخرین عنصر را از قسمت حذف کنید
fruitsلیست:
RPOP fruits
با این کار “گیلاس” حذف و برمی گردد.
SADD: افزودن عناصر به یک مجموعه
برای افزودن یک یا چند عنصر به یک مجموعه، از SADD فرمان در اینجا نحوه استفاده از آن در میز کار خود آورده شده است:
SADD key member [member ...]
جایگزین کردن key با نام مجموعه و member با عناصری که می خواهید اضافه کنید.
مثلا:
- مجموعه ای به نام ایجاد کنید
colorsو عناصری را به آن اضافه کنید:
SADD colors red green blue
این “قرمز”، “سبز” و “آبی” را به آن اضافه می کند colors تنظیم.
SREM: حذف عناصر از یک مجموعه
برای حذف یک یا چند عنصر از یک مجموعه، از SREM فرمان در اینجا نحوه استفاده از آن در میز کار خود آورده شده است:
SREM key member [member ...]
جایگزین کردن key با نام مجموعه و member با عناصری که می خواهید حذف کنید.
مثلا:
- حذف عناصر از
colorsتنظیم:
SREM colors blue
با این کار “آبی” از قسمت حذف می شود colors تنظیم.
SMEMBERS: بازیابی همه عناصر از یک مجموعه
برای بازیابی تمام عناصر یک مجموعه، از SMEMBERS فرمان در اینجا نحوه استفاده از آن در میز کار خود آورده شده است:
SMEMBERS key
جایگزین کردن key با نام مجموعه
مثلا:
- بازیابی همه عناصر از
colorsتنظیم:
SMEMBERS colors
با این کار تمام عناصر موجود در colors مجموعه: “قرمز” و “سبز”.
SISMEMBER: بررسی اینکه آیا یک عنصر در یک مجموعه وجود دارد یا خیر
برای بررسی اینکه آیا یک عنصر عضوی از یک مجموعه است، از عبارت استفاده کنید SISMEMBER فرمان در اینجا نحوه استفاده از آن در میز کار خود آورده شده است:
SISMEMBER key member
جایگزین کردن key با نام مجموعه و member با عنصری که می خواهید بررسی کنید.
مثلا:
- بررسی کنید که آیا “قرمز” در
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 سازمان می دهد.



