What is @redis/client?
@redis/client is a Node.js client for Redis, a powerful in-memory data structure store. This package allows you to interact with a Redis server to perform various operations such as setting and getting keys, managing data structures like lists and sets, and handling pub/sub messaging.
What are @redis/client's main functionalities?
Basic Key-Value Operations
This feature allows you to perform basic key-value operations such as setting and getting values from the Redis store.
const { createClient } = require('@redis/client');
(async () => {
const client = createClient();
await client.connect();
await client.set('key', 'value');
const value = await client.get('key');
console.log(value); // Output: 'value'
await client.disconnect();
})();
Data Structures
This feature allows you to manage complex data structures like lists. The example demonstrates how to push values to a list and retrieve them.
const { createClient } = require('@redis/client');
(async () => {
const client = createClient();
await client.connect();
await client.lPush('list', 'value1');
await client.lPush('list', 'value2');
const list = await client.lRange('list', 0, -1);
console.log(list); // Output: ['value2', 'value1']
await client.disconnect();
})();
Pub/Sub Messaging
This feature allows you to use Redis's pub/sub messaging capabilities. The example shows how to publish a message to a channel and subscribe to that channel to receive messages.
const { createClient } = require('@redis/client');
(async () => {
const publisher = createClient();
const subscriber = createClient();
await publisher.connect();
await subscriber.connect();
await subscriber.subscribe('channel', (message) => {
console.log(message); // Output: 'Hello, World!'
});
await publisher.publish('channel', 'Hello, World!');
// Give some time for the message to be received
setTimeout(async () => {
await publisher.disconnect();
await subscriber.disconnect();
}, 1000);
})();
Other packages similar to @redis/client
ioredis
ioredis is another popular Redis client for Node.js. It supports both callback and Promise-based APIs and offers advanced features like cluster support and Lua scripting. Compared to @redis/client, ioredis is known for its high performance and extensive feature set.
redis
redis is the original Node.js client for Redis. It is simple and easy to use, making it a good choice for basic Redis operations. However, it may lack some of the advanced features and performance optimizations found in @redis/client and ioredis.
node-redis
node-redis is a modern, high-performance Redis client for Node.js. It offers a comprehensive set of features, including support for Redis modules and TypeScript. It is similar to @redis/client in terms of functionality but may offer better performance and additional features.