מחק הכל ברדיס

1. סקירה כללית

בעת שמירה במטמון ב- Redis, יכול להיות שימושי לנקות את כל המטמון כאשר הוא הופך להיות לא חוקי.

במדריך קצר זה, נלמד כיצד למחוק את כל המפתחות הקיימים ב- Redis, הן בבסיסי נתונים ספציפיים והן בכל מסדי הנתונים.

ראשית, נסתכל על שורת הפקודה. לאחר מכן נראה כיצד להשיג את אותו הדבר באמצעות ממשקי ה- API ולקוח Java.

2. ריצת רדיס

נצטרך התקנה של Redis לעבוד איתה. בהוראות המהירות של Redis יש הוראות התקנה עבור Mac ו- Linux. כנראה שקל יותר להפעיל את רדיס בעגינה.

בואו נתחיל שרת Redis לבדיקה:

הפעלת docker - שם redis -p 6379: 6379 -d redis: האחרונה

ואנחנו יכולים לרוץ רדיס-קלי כדי לבדוק שהשרת הזה עובד:

העגינה מבצעת -it רדיס רדיס-קלי

זה מפיל אותנו לקליפת ה- cli, שם הפקודה פינג יבדוק אם השרת למעלה:

127.0.0.1:6379> פינג פונג

אנחנו יוצאים מה- רדיס-קלי עם CTRL + C.

3. פקודות רדיס

נתחיל עם פקודות Redis למחוק הכל.

ישנן שתי פקודות עיקריות למחיקת המקשים הקיימים ב- Redis: FLUSHDB ו FLUSHALL. אנו יכולים להשתמש ב- Redis CLI לביצוע פקודות אלה.

ה FLUSHDB פקודה מוחקת את המפתחות במסד נתונים. וה FLUSHALL פקודה מוחקת את כל המקשים בכל מסדי הנתונים.

אנו יכולים לבצע פעולות אלה בשרשור רקע באמצעות ה- ASYNC אוֹפְּצִיָה. זה שימושי אם ההדחה אורכת זמן רב, כביצוע הפקודה ASYNC מונע את חסימתו עד להשלמתו.

עלינו לציין כי ה- ASYNC אפשרות זמינה מ- Redis 4.0.0.

4. עבודה עם לקוח Java

עכשיו, בואו נראה כיצד להשתמש בלקוח Jedis Java למחיקת מפתחות.

4.1. תלות

ראשית, נצטרך להוסיף את התלות של Maven עבור ג'דיס:

 redis.clients jedis 3.3.0 

כדי להקל על הבדיקה, נשתמש גם בשרת Redis מוטבע:

 com.github.kstyrc embedded-redis 0.6 

4.2. הפעלת רדיס מוטבע

ניצור שרת Redis מוטבע לבדיקה באמצעות הפעלתו ביציאה זמינה:

RedisService redisServer = RedisServer חדש (יציאה);

לקוח Jedis שלנו נוצר עם מארח מקומי כשם המארח, ואותו יציאה:

ג'דיס ג'דיס = ג'דיס חדש ("localhost", נמל);

5. שטיפה של מסד נתונים יחיד

בואו נכניס נתונים למסד הנתונים ונבדוק שהוא זכור:

מפתח מחרוזת = "מפתח"; ערך מחרוזת = "ערך"; jedis.set (מפתח, ערך); מחרוזת שהתקבלה = jedis.get (מפתח); assertEquals (ערך, התקבל);

עכשיו בואו לשטוף את מסד הנתונים באמצעות flushDB שיטה:

jedis.flushDB (); assertNull (jedis.get (מפתח));

כפי שאנו רואים, ניסיון לאחזר את הערך לאחר שטיפה חוזר ריק.

6. ניקוי כל מסדי הנתונים

Redis מספקת מספר מאגרי מידע שמספרם ממוספר. אנו יכולים להוסיף נתונים למסדי נתונים שונים באמצעות ה- בחר פקודה לפני שנוסיף את הערכים שלנו:

jedis.select (0); jedis.set ("key1", "value1"); jedis.select (1); jedis.set ("key2", "value2");

כעת עלינו לקבל מפתח אחד בכל אחד משני מאגרי המידע שלנו:

jedis.select (0); assertEquals ("value1", jedis.get ("key1")); assertNull (jedis.get ("key2")); jedis.select (1); assertEquals ("value2", jedis.get ("key2")); assertNull (jedis.get ("key1"));

ה flushDB השיטה תמחק רק את מסד הנתונים הנוכחי. על מנת לנקות את כל מאגרי המידע, אנו משתמשים ב- flushAll שיטה:

jedis.flushAll ();

אנו יכולים לבדוק שהדבר עבד:

jedis.select (0); assertNull (jedis.get ("key1")); assertNull (jedis.get ("key2")); jedis.select (1); assertNull (jedis.get ("key1")); assertNull (jedis.get ("key2"));

7. מורכבות זמן

רדיס היא חנות נתונים מהירה שמתרחבת היטב. עם זאת, פעולות שטיפה עשויות להימשך זמן רב יותר כאשר יש יותר נתונים.

מורכבות הזמן של FLUSHDB הפעולה היא עַל), איפה נ הוא מספר המפתחות במסד הנתונים. אם אנו משתמשים ב- FLUSHALL פקודה, מורכבות הזמן היא שוב עַל), אבל כאן, נ הוא מספר המפתחות בכל מסדי הנתונים.

8. מסקנה

במאמר זה ראינו כיצד להפעיל את Redis ו- רדיס-קלי ב- Docker, וכיצד להשתמש בלקוח Jedis עבור Java עם שרת Redis מוטבע.

ראינו כיצד לשמור נתונים בבסיסי נתונים שונים של Redis וכיצד להשתמש בפקודות השטיפה כדי לנקות אחד מהם או יותר.

כמו תמיד, קוד המקור של מאמר זה זמין באתר GitHub.


$config[zx-auto] not found$config[zx-overlay] not found