那么nodejs12 使用redis3.1.2模块下连接池的方法连接redis
时间: 2024-01-22 10:03:17 浏览: 85
连接 Redis 使用 Redis 模块是 Node.js 社区中最为常用的方式。使用连接池可以提高 Redis 连接的效率,下面是使用 Redis 模块连接 Redis 的示例代码:
```javascript
const redis = require('redis');
const { promisify } = require('util');
// 创建 Redis 连接池
const redisPool = redis.createPool({
host: '127.0.0.1',
port: 6379,
max: 10, // 连接池中最多有 10 个连接
});
// 从 Redis 连接池中获取一个连接
redisPool.acquire((err, redisClient) => {
if (err) {
console.error('Failed to acquire Redis client:', err);
return;
}
const setAsync = promisify(redisClient.set).bind(redisClient);
const getAsync = promisify(redisClient.get).bind(redisClient);
// 使用 Redis 连接进行操作
setAsync('foo', 'bar')
.then(() => getAsync('foo'))
.then((value) => {
console.log('Value:', value);
redisPool.release(redisClient); // 释放 Redis 连接
})
.catch((err) => {
console.error('Failed to set/get value from Redis:', err);
redisPool.release(redisClient); // 释放 Redis 连接
});
});
```
在上面的示例代码中,我们使用了 `redis-pool` 模块来创建 Redis 连接池,该模块是基于 `generic-pool` 实现的,并提供了一个与 Redis 模块兼容的 `acquire()` 方法来从连接池中获取 Redis 连接。在获取 Redis 连接后,我们使用 `util.promisify()` 方法将 Redis 模块的回调式 API 转换为 Promise API,以便更方便地使用 async/await 来编写代码。最后,我们在操作完 Redis 后使用 `redisPool.release()` 方法将 Redis 连接释放回连接池,以便其他代码可以继续使用它。
阅读全文