دستور 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 تغییر دهید.