What does TTL stand for in the context of NestJS caching?
TTL stands for Time To Live. It defines how long cached data stays valid before it expires and is removed or refreshed.
Click to reveal answer
beginner
How do you set a global TTL for cache in a NestJS application?
You set a global TTL by configuring the CacheModule with the ttl option in seconds, for example: CacheModule.register({ ttl: 5 }) sets a 5-second TTL for all cached items.
Click to reveal answer
intermediate
Can TTL be set individually for different cache entries in NestJS?
Yes. When using the @Cacheable() decorator or cache manager directly, you can specify a TTL per cache entry by passing the ttl option in seconds.
Click to reveal answer
beginner
What happens when a cached item’s TTL expires in NestJS?
When TTL expires, the cached item is removed or considered stale. The next request will fetch fresh data and update the cache with a new TTL.
Click to reveal answer
intermediate
Why is TTL important in caching strategies?
TTL helps balance between performance and data freshness. It prevents serving outdated data too long and controls memory usage by removing old cache entries.
Click to reveal answer
In NestJS, what unit is TTL configured in when setting cache options?
AHours
BSeconds
CMinutes
DMilliseconds
✗ Incorrect
TTL in NestJS cache configuration is set in seconds.
Which NestJS module is used to configure TTL for caching?
AConfigModule
BHttpModule
CCacheModule
DScheduleModule
✗ Incorrect
CacheModule is used to configure caching and TTL in NestJS.
If no TTL is set in NestJS CacheModule, what happens to cached data?
AIt expires immediately
BIt throws an error
CIt uses a default TTL of 5 seconds
DIt never expires
✗ Incorrect
Without TTL, cached data stays indefinitely until manually cleared.
How can you override the global TTL for a specific cache entry in NestJS?
APass a ttl option when setting the cache
BChange the global CacheModule config
CUse a different cache store
DYou cannot override TTL per entry
✗ Incorrect
You can specify a ttl option per cache entry to override the global TTL.
What is the main benefit of setting a TTL on cached data?
AEnsures data is refreshed regularly
BMakes cache unlimited in size
CPrevents caching errors
DDisables caching
✗ Incorrect
TTL ensures cached data is refreshed and does not become stale.
Explain how TTL configuration affects caching behavior in a NestJS application.
Think about how long cached data should be used before updating.
You got /4 concepts.
Describe how to set a global TTL and override it for a specific cache entry in NestJS.
Consider both module configuration and per-entry options.
You got /4 concepts.
Practice
(1/5)
1. What does TTL stand for in NestJS caching configuration?
easy
A. Timed Token Lock, a security feature for cache access
B. Time To Live, the duration cached data stays before removal
C. Temporary Transfer Lock, a pause on cache updates
D. Total Transaction Limit, the max number of cache writes
Solution
Step 1: Understand TTL meaning in caching
TTL means how long cached data remains valid before it is removed automatically.
Step 2: Match TTL to the correct full form
TTL stands for Time To Live, which fits the caching context perfectly.
Final Answer:
Time To Live, the duration cached data stays before removal -> Option B
Quick Check:
TTL = Time To Live [OK]
Hint: TTL means how long cache data lives before removal [OK]
Common Mistakes:
Confusing TTL with security or transaction terms
Thinking TTL is a cache size limit
Assuming TTL is a manual cache clear command
2. Which is the correct way to set a global TTL of 10 seconds in NestJS cache module?
easy
A. CacheModule.register({ ttl: 10 })
B. CacheModule.register({ timeToLive: 10 })
C. CacheModule.register({ ttl: 10000 })
D. CacheModule.register({ expire: 10 })
Solution
Step 1: Identify TTL unit in NestJS cache config
TTL is set in seconds, so 10 means 10 seconds.
Step 2: Check correct property name and value type
The property is ttl, and the value is a number in seconds, so ttl: 10 is correct.
Final Answer:
CacheModule.register({ ttl: 10 }) -> Option A
Quick Check:
TTL in seconds uses 'ttl' property [OK]
Hint: TTL value is seconds, use 'ttl' property exactly [OK]
Common Mistakes:
Using milliseconds instead of seconds
Using wrong property names like timeToLive or expire
Passing ttl as string instead of number
3. Given this NestJS cache config snippet:
CacheModule.register({ ttl: 5 })
What happens to cached data after 6 seconds?
medium
A. Cached data throws an error after 6 seconds
B. Cached data remains indefinitely until manually cleared
C. Cached data is refreshed automatically every 6 seconds
D. Cached data is automatically removed after 5 seconds
Solution
Step 1: Understand TTL effect on cached data
TTL of 5 means cached data expires and is removed after 5 seconds.
Step 2: Check what happens after 6 seconds
Since 6 seconds is more than 5, cached data is no longer valid and is removed.
Final Answer:
Cached data is automatically removed after 5 seconds -> Option D
Quick Check:
TTL 5 seconds means removal after 5 seconds [OK]
Hint: Data expires after TTL seconds, so 6 > 5 means removal [OK]
Common Mistakes:
Thinking data stays forever without manual clear
Assuming TTL refreshes cache automatically
Believing cache throws errors on expiry
4. Identify the error in this NestJS cache TTL setup:
CacheModule.register({ ttl: '30' })
medium
A. TTL property name is incorrect, should be timeToLive
B. TTL cannot be set globally, only per item
C. TTL value should be a number, not a string
D. TTL value must be in milliseconds, not seconds
Solution
Step 1: Check TTL value type
TTL expects a number representing seconds, but '30' is a string.
Step 2: Confirm correct property and units
The property ttl is correct and uses seconds, so only the value type is wrong.
Final Answer:
TTL value should be a number, not a string -> Option C
Quick Check:
TTL must be numeric seconds, not string [OK]
Hint: TTL must be a number, not quoted string [OK]
Common Mistakes:
Using string instead of number for TTL
Changing property name incorrectly
Confusing seconds with milliseconds
5. You want to cache user data with a TTL of 60 seconds, but override it to 120 seconds for admin users only. How do you configure TTL in NestJS?
hard
A. Set global TTL to 60, then use @CacheTTL(120) decorator on admin methods
B. Set global TTL to 120, then manually clear cache for non-admin users
C. Set TTL only in controller constructor based on user role
D. Use two separate CacheModules with different TTLs and switch dynamically
Solution
Step 1: Set global TTL for general users
Configure CacheModule with ttl: 60 to cover normal users.
Step 2: Override TTL for admin users
Use the @CacheTTL(120) decorator on admin-specific methods to extend TTL.
Final Answer:
Set global TTL to 60, then use @CacheTTL(120) decorator on admin methods -> Option A
Quick Check:
Global TTL + @CacheTTL override [OK]
Hint: Use global TTL plus @CacheTTL decorator for overrides [OK]
Common Mistakes:
Trying to set TTL only in constructor without decorators
Using multiple CacheModules unnecessarily
Setting global TTL too high and clearing cache manually
Recommended
Ready to prove it?
Pass the test and this pattern moves unknownstrongwhile earning +1 Grip toward your certificate.