What is @types/ioredis?
The @types/ioredis package provides TypeScript type definitions for the ioredis package, which is a robust, performance-focused, and full-featured Redis client for Node.js. By using @types/ioredis, developers can take advantage of TypeScript's static type checking for ioredis, ensuring that they use the ioredis API correctly.
What are @types/ioredis's main functionalities?
Connecting to Redis
This code sample demonstrates how to create a new Redis client instance to connect to a Redis server using default settings.
import Redis from 'ioredis';
const redis = new Redis();
Executing Redis Commands
This code sample shows how to set a key-value pair in Redis and then retrieve the value of a key asynchronously.
redis.set('key', 'value');
redis.get('key').then(result => console.log(result));
Working with Hashes
This code sample illustrates how to work with Redis hashes by setting and getting field values within a hash.
redis.hset('hashKey', 'field', 'value');
redis.hget('hashKey', 'field').then(result => console.log(result));
Publish/Subscribe
This code sample demonstrates the publish/subscribe pattern where one Redis client publishes a message to a channel and another client subscribes to that channel to receive messages.
const publisher = new Redis();
const subscriber = new Redis();
subscriber.subscribe('channel', () => {
console.log('Subscribed to channel');
});
subscriber.on('message', (channel, message) => {
console.log(`Received message: ${message} from channel: ${channel}`);
});
publisher.publish('channel', 'Hello world!');
Transactions
This code sample shows how to use a pipeline to execute a transaction in Redis, which includes multiple commands that are executed atomically.
const pipeline = redis.pipeline();
pipeline.set('foo', 'bar');
pipeline.del('baz');
pipeline.exec().then(results => {
console.log(results);
});
Other packages similar to @types/ioredis
redis
The 'redis' package is a Node.js client for Redis. It provides similar functionality to ioredis but has different API design choices and lacks some advanced features like built-in cluster support and Lua scripting capabilities.