https://github.com/v-core9/v_core_cache
Fast and simple Cache for Node and Web.
https://github.com/v-core9/v_core_cache
cache caching expire nodejs web
Last synced: about 1 month ago
JSON representation
Fast and simple Cache for Node and Web.
- Host: GitHub
- URL: https://github.com/v-core9/v_core_cache
- Owner: V-core9
- License: mit
- Created: 2022-04-16T09:50:17.000Z (about 3 years ago)
- Default Branch: main_index
- Last Pushed: 2024-11-02T13:33:38.000Z (7 months ago)
- Last Synced: 2025-03-29T13:35:21.483Z (about 2 months ago)
- Topics: cache, caching, expire, nodejs, web
- Language: TypeScript
- Homepage: https://www.npmjs.com/package/v_core_cache
- Size: 226 KB
- Stars: 2
- Watchers: 1
- Forks: 0
- Open Issues: 2
-
Metadata Files:
- Readme: README.md
- License: LICENSE
Awesome Lists containing this project
README
# v_core_cache
Simple Cache Solution for Node and Web.
Sections:
1. 📑 How to use
2. 🚗 Functions and Methods
3. 🎪 Events
4. ➰ Auto Cleanup Expired
5. ❌ Deleted / Removed___
## 📑 How to use
const { V_Core_Cache } = require('v_core_cache');
const cache = new V_Core_Cache();// OR
const { createCache } = require('v_core_cache');
const cache = createCache();## 🚗 Functions and Methods
### 1. Get Item Value
await cache.get(key) //> anything you put in
cache.getSync(key)### 2. Get Whole Cache
Returns all cache.
cache.getAll() //> object
### 3. Size of Cache
Returns the approximate size of the cache in bytes.
await cache.size(); //> 1507114
cache.sizeSync();### 4. Has Item?
Returns true if the key exists in the cache and is not expired.
cache.has(key)
### 5. Set Item
Set/Create/Update an item in the cache. Will overwrite existing item.
await cache.set(key, data, expires?)
cache.setSync(key, data, expires?)### 6. Purge cache
Returns true if cache was successfully purged. Otherwise, returns false if cache is already empty.
await cache.purge()
### 7. Delete item from cache
await cache.del(key); //> true/false
cache.delSync(key);### 8. Stats
Returns stats about the cache.
cache.stats() //> { hits: 156, misses: 15, count: 33, size: 1507114 }
### 9. Purge Stats
This basically just resets counters for hits and misses.
cache.purgeStats() //> { hits: 0, misses: 0, count: 33, size: 1507114 }
### 10. Get Item Expire Time
Returns the time in milliseconds when the item will expire.
cache.getExpire(key); //> 150123456789 [ Date.now() + expires]
### 11. Cleanup Expired Items
Returns the number of expired items removed.
await cache.cleanup();
### 12. Count Items
Returns the number of items in cache.
await cache.count();
cache.countSync();___
## 🎪 Events
## Management
### 1. Add Event Listener
cache.addListener("set", (data) => console.log(data));
// or
cache.on("set", (data) => console.log(data));### 2. Remove Event Listener
cache.removeListener("set", (data) => console.log(data));
// or
cache.off("set", (data) => console.log(data));### 3. Prepend Event Listener
cache.prependListener("set", (data) => console.log(data));
// or
cache.pre("set", (data) => console.log(data));### 4. Get Registered EventNames
console.log(cache.eventNames());
### 5. Remove All Listeners
Removes all registered listeners for a single event
cache.removeAllListeners('set')
### 6. Purge All Listeners
Removes all registered listeners for all registered events
cache.purgeAllListeners()
## Available events
### 1. SET
Returns {key, value} pair.
cache.on('set', (item) => console.log(item.key, item.value))
### 1.2 set with key
In this case we are returning the value only.
cache.on('set/{key}', (value) => console.log(value))
### 2. GET
cache.on('get', (item) => console.log(data)) //> { key, value } - value can be undefined
### 3. HIT
cache.on('hit', (item) => console.log(item)) //> { key, value }
### 4. MISS
cache.on('miss', (item) => console.log(item)) //> { key }
### 5. PURGE
cache.on('purge', (status) => console.log(status)) //> true/false - can return false if already empty
### 6. PURGE_STATS
cache.on('purge_stats', (data) => console.log(data)) //> { hits, misses, count, size } - returns stats after purging them.
### 6. cleanup
returns number of affected items
cache.on('cleanup', (data) => console.log(data)) //> number
### 6. addListener
New listener added
cache.on('addListener', (data) => console.log(data))
### 6. removeListener
Removed event listener
cache.on('addListener', (data) => console.log(data))
___
## ➰ Auto Cleanup Expired
const V_Core_Cache = require('v_core_cache');
const cache = new V_Core_Cache({ cleanInterval: 250 }); // Number in milliseconds> **NOTE**: When using autoCleanup you should stop the cleanup interval by calling `cache.stopCleanup()`
___
## **✅ Tests and Coverage with Jest**
