After setting key 'mykey' and applying EXPIRE 10, TTL returns the remaining seconds, which is 10.
Step 2: Analyze the second TTL after PERSIST
PERSIST removes expiry, so TTL returns -1 indicating no expiration.
Final Answer:
10 and -1 -> Option A
Quick Check:
TTL before persist = 10, after persist = -1 [OK]
Hint: TTL shows seconds left; PERSIST makes TTL -1 [OK]
Common Mistakes:
Expecting TTL to stay 10 after PERSIST
Confusing TTL -1 meaning
Thinking PERSIST sets TTL to 0
4. You run the command PERSIST mykey but it returns 0. What is the most likely reason?
medium
A. The key does not exist
B. The key has no expiry set
C. The key is already persistent
D. The command syntax is incorrect
Solution
Step 1: Understand PERSIST return values
PERSIST returns 1 if expiry was removed, 0 if key had no expiry or key does not exist.
Step 2: Differentiate between no expiry and missing key
If key does not exist, PERSIST returns 0, but usually you check key existence first. If key exists but no expiry, PERSIST returns 0 because nothing to remove.
Final Answer:
The key has no expiry set -> Option B
Quick Check:
PERSIST returns 0 if no expiry to remove [OK]
Hint: PERSIST returns 0 if no expiry on key [OK]
Common Mistakes:
Assuming 0 means syntax error
Confusing no expiry with key missing
Thinking 0 means key deleted
5. You have a Redis key cache:item with an expiry of 30 seconds. You want to keep it permanently only if its current TTL is more than 10 seconds. Which sequence of commands achieves this safely?
hard
A. Run EXPIRE cache:item 0 to remove expiry
B. Run PERSIST cache:item directly without checking TTL
C. Use TTL cache:item, then if result > 10, run PERSIST cache:item
D. Rename the key to a new key without expiry
Solution
Step 1: Check current TTL of the key
Use TTL cache:item to get remaining expiry time in seconds.
Step 2: Conditionally remove expiry
If TTL is more than 10, run PERSIST cache:item to remove expiry and keep key permanently.
Step 3: Avoid wrong commands
Running PERSIST without checking TTL removes expiry regardless. EXPIRE with 0 does not remove expiry but sets immediate expiry. Renaming does not affect expiry.
Final Answer:
Use TTL, then if > 10, run PERSIST -> Option C
Quick Check:
Check TTL before PERSIST to keep key only if TTL > 10 [OK]
Hint: Check TTL first, then PERSIST if TTL > 10 [OK]
Common Mistakes:
Running PERSIST blindly without TTL check
Using EXPIRE 0 to remove expiry
Thinking renaming removes expiry
Recommended
Ready to prove it?
Pass the test and this pattern moves unknownstrongwhile earning +1 Grip toward your certificate.