Package Exports
- redis-tracker
- redis-tracker/dist/index.js
This package does not declare an exports field, so the exports above have been automatically detected and optimized by JSPM instead. If any package subpath is missing, it is recommended to post an issue to the original package (redis-tracker) to support the "exports" field. If that is not possible, create a JSPM override to customize the exports field for this package.
Readme
redis-tracker
Install
npm:
npm install redis-trackeryarn:
yarn add redis-trackerAPI
Exports:
statistrackActionsearchKeysstatRedis
Call statis.redis.standalone(...), statis.redis.cluster(...), or statis.redis.object(...) once. After that use trackAction, searchKeys, and statRedis anywhere.
Connection
Standalone:
import { statis } from "redis-tracker";
statis.redis.standalone({
host: "127.0.0.1",
port: 6379,
});Secure standalone:
import { statis } from "redis-tracker";
statis.redis.standalone({
host: "127.0.0.1",
port: 6379,
username: "default",
password: "secret",
});Cluster:
import { statis } from "redis-tracker";
statis.redis.cluster({
nodes: [
{ host: "127.0.0.1", port: 7000 },
{ host: "127.0.0.1", port: 7001 },
{ host: "127.0.0.1", port: 7002 },
],
});Secure cluster:
import { statis } from "redis-tracker";
statis.redis.cluster({
nodes: [
{ host: "127.0.0.1", port: 7000 },
{ host: "127.0.0.1", port: 7001 },
{ host: "127.0.0.1", port: 7002 },
],
username: "default",
password: "secret",
});Existing standalone object:
import Redis from "ioredis";
import { statis } from "redis-tracker";
const redis = new Redis({
host: "127.0.0.1",
port: 6379,
});
statis.redis.object(redis, "standalone");Existing cluster object:
import Redis from "ioredis";
import { statis } from "redis-tracker";
const redis = new Redis.Cluster([
{ host: "127.0.0.1", port: 7000 },
{ host: "127.0.0.1", port: 7001 },
{ host: "127.0.0.1", port: 7002 },
]);
statis.redis.object(redis, "cluster");Usage
Track:
import { trackAction } from "redis-tracker";
trackAction({
prefix: "qa",
module_name: "swap-tx-rpc",
});Details:
import { searchKeys, statRedis } from "redis-tracker";
async function getTrackedDetails() {
const keys = await searchKeys("qa:swap-tx-rpc:*");
return Promise.all(
keys.map(async (key) => ({
key,
value: Number((await statRedis.get(key)) || 0),
})),
);
}Redis Key Pattern
Module-specific:
{prefix}:{module_name}:{type}:{bucket_id}Example:
qa:swap-tx-rpc:sec:2026-04-15-10-30-45 (expires in 1 hour)
qa:swap-tx-rpc:min:2026-04-15-10-30 (expires in 1 day)
qa:swap-tx-rpc:hour:2026-04-15-10 (expires in 1 day)
qa:swap-tx-rpc:day:2026-04-15 (expires in 30 days)
qa:swap-tx-rpc:month:2026-04 (expires in 180 days)
qa:swap-tx-rpc:year:2026 (expires in 10 years)Global:
{prefix}:global:{type}:{bucket_id}Example:
qa:global:sec:2026-04-15-10-30-45 (expires in 1 hour)
qa:global:min:2026-04-15-10-30 (expires in 1 day)
qa:global:hour:2026-04-15-10 (expires in 1 day)
qa:global:day:2026-04-15 (expires in 30 days)
qa:global:month:2026-04 (expires in 180 days)
qa:global:year:2026 (expires in 10 years)Supported type values:
sec
min
hour
day
month
yearNotes
- Global keys are created only from
prefixand time bucket:{prefix}:global:{type}:{bucket_id}. - If you want one overall global total across multiple APIs/modules, reuse the exact same
prefixeverywhere and change onlymodule_name. - If you change
prefix, a separate global key series is created for that prefix.
Demo
- TS StackBlitz: Open TS demo
- JS StackBlitz: Open JS demo
Build Package
npm run buildLocal Testing
npm linkIn microservice:
npm link redis-trackerAI Prompt
Read and strictly follow the SKILL.md file to implement the npm package "redis-tracker".
References:
NPM: https://www.npmjs.com/package/redis-tracker
SKILL.md: https://github.com/NPM-public-repo-Jaykumar/redis-tracker/blob/main/SKILL.md