You've already forked node-redis
mirror of
https://github.com/redis/node-redis.git
synced 2025-07-31 05:44:24 +03:00
RESP3 Support - Some commands responses in RESP3 aren't stable yet and therefore return an "untyped" ReplyUnion. Sentinel TypeMapping Correctly types Multi commands Note: some API changes to be further documented in v4-to-v5.md
51 lines
1.3 KiB
JavaScript
51 lines
1.3 KiB
JavaScript
// A sample stream producer using XADD.
|
|
// https://redis.io/commands/xadd/
|
|
import { createClient } from 'redis';
|
|
|
|
const client = createClient();
|
|
|
|
await client.connect();
|
|
|
|
for (let i = 0; i < 10000; i++) {
|
|
await client.xAdd(
|
|
'mystream',
|
|
'*', // * = Let Redis generate a timestamp ID for this new entry.
|
|
// Payload to add to the stream:
|
|
{
|
|
i: i.toString()
|
|
// Other name/value pairs can go here as required...
|
|
}
|
|
);
|
|
|
|
// Also add to a stream whose length we will cap at approximately
|
|
// 1000 entries using the MAXLEN trimming strategy:
|
|
// https://redis.io/commands/xadd/
|
|
|
|
await client.xAdd(
|
|
'mytrimmedstream',
|
|
'*',
|
|
// Payload to add to the stream:
|
|
{
|
|
i: i.toString()
|
|
// Other name/value pairs can go here as required...
|
|
},
|
|
// Specify a trimming strategy...
|
|
{
|
|
TRIM: {
|
|
strategy: 'MAXLEN', // Trim by length.
|
|
strategyModifier: '~', // Approximate trimming.
|
|
threshold: 1000 // Retain around 1000 entries.
|
|
}
|
|
}
|
|
);
|
|
}
|
|
|
|
// Take a look at how many entries are in the streams...
|
|
// https://redis.io/commands/xlen/
|
|
// Should be 10000:
|
|
console.log(`Length of mystream: ${await client.xLen('mystream')}.`);
|
|
// Should be approximately 1000:
|
|
console.log(`Length of mytrimmedstream: ${await client.xLen('mytrimmedstream')}.`);
|
|
|
|
client.destroy();
|