دستور SETRANGE در Redis این امکان را فراهم میکند تا بخشی از مقدار یک کلید را با یک رشته جدید جایگزین کنید. این دستور با مشخص کردن آفست (موقعیت شروع) و مقدار جایگزین، بخش موردنظر را تغییر میدهد.
نحوه عملکرد دستور SETRANGE
- سینتکس کلی:
SETRANGE key offset value
- key: نام کلید موردنظر.
- offset: موقعیت شروع جایگزینی (از ۰ شمارش آغاز میشود).
- value: رشته جایگزین.
مثالهای کاربردی
مثال ۱: جایگزینی بخشی از یک رشته موجود
۱. ایجاد یک کلید جدید:
SET name "Hello World"
خروجی: "Hello World"
۲. جایگزینی بخشی از رشته با استفاده از SETRANGE
:
SETRANGE name 6 "Redis"
- تفسیر: از ایندکس ۶ (کاراکتر W)، رشته “Redis” جایگزین میشود.
- خروجی نهایی:
"Hello Redis"
مثال ۲: استفاده از ایندکسهای صحیح
- اگر مقدار آفست بیشتر از طول رشته باشد، Redis به طور خودکار فضای خالی را با NULL bytes (کاراکترهای صفر) پر میکند.
SETRANGE name 15 "!"
- خروجی:
"Hello World\x00\x00\x00!"
(با padding اضافه).
مثال ۳: ایجاد کلید جدید با SETRANGE
- اگر کلید وجود نداشته باشد، Redis آن را ایجاد کرده و padding لازم را اضافه میکند:
SETRANGE new_key 5 "Redis"
- خروجی:
"\x00\x00\x00\x00\x00Redis"
(۵ بایت NULL قبل از “Redis”).
نکات مهم
- ایندکسها از ۰ شروع میشوند.
- اگر مقدار آفست از طول رشته بیشتر باشد، Redis به طور خودکار padding اضافه میکند.
- این دستور برای ویرایش بخشهای خاصی از دادههای متنی بدون بازنویسی کامل مقدار کلید مفید است.
با استفاده از SETRANGE
، میتوانید به راحتی بخشهای موردنظر از دادههای متنی را در Redis تغییر دهید.