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 سازمان می دهد.