memcachelite
v1.0.2
Published
A simple in-memory caching module for Node.js with TTL support
Downloads
23
Maintainers
Keywords
Readme
# MemCacheLite
MemCacheLite is a lightweight, in-memory caching module for Node.js, offering basic caching functionalities with TTL (Time-To-Live) support.
## Installation
You can install the package via npm:
### Bash
```bash
npm install memcachelite
Features
- In-memory key-value storage
- Time-To-Live (TTL) support for expiring cached entries
- Returns remaining TTL along with the cached value
- Simple API for setting, getting, and deleting cache entries
- Clear the entire cache with a single method
- Check the number of items in the cache
API
set(key, value, ttl)
Stores a value in the cache with an optional TTL.
key
(String): The key under which the value is stored.value
(Any): The value to be stored in the cache.ttl
(Number, Optional): Time-To-Live in milliseconds. If provided, the entry will expire after the specified time.
get(key)
Retrieves a value from the cache, along with the remaining TTL if applicable.
key
(String): The key of the value to retrieve.- Returns: An object with
value
andttl
properties, ornull
if the key doesn't exist or has expired.value
(Any): The cached value.ttl
(Number | null): The remaining TTL in milliseconds, ornull
if no TTL was set.
delete(key)
Deletes a value from the cache.
key
(String): The key of the value to delete.- Returns:
true
if the key existed and was deleted,false
otherwise.
clear()
Clears all entries from the cache.
- Returns:
undefined
size()
Returns the number of items currently stored in the cache.
- Returns:
Number
- The size of the cache.
Usage
const SimpleCache = require('memcachelite');
const cache = new SimpleCache();
// Set a value with no TTL
cache.set('name', 'John Doe');
console.log(cache.get('name')); // Output: { value: 'John Doe', ttl: null }
// Set a value with a TTL of 3 seconds
cache.set('sessionID', 'abc123', 3000);
console.log(cache.get('sessionID')); // Output: { value: 'abc123', ttl: <remaining TTL> }
setTimeout(() => {
console.log(cache.get('sessionID')); // Output: { value: 'abc123', ttl: <remaining TTL> }
}, 1234);
setTimeout(() => {
console.log(cache.get('sessionID')); // Output: null (expired)
}, 4000);
// Delete a value
cache.set('email', '[email protected]');
cache.delete('email');
console.log(cache.get('email')); // Output: null
// Clear the cache
cache.set('token', 'xyz789');
cache.set('userID', 'user123');
console.log('Cache size before clearing:', cache.size()); // Output: 2
cache.clear();
console.log('Cache size after clearing:', cache.size()); // Output: 0
License
This project is licensed under the MIT License.
This update ensures that the module returns the remaining TTL for cached items that have a TTL set.