nodejs连接redis数据库的简单封装

因项目用到而写,先摘录下来,以备参考:

const fs       = require('fs')
const path     = require('path')
const redis    = require("redis");
const basePath = path.resolve('./')

/* 
 * 注意:如果redis-server与nodejs客户端都在本地,下列可写成
 * client = _redis.createClient();否则要对括号内容进行更改 
 */
const   client = redis.createClient(6379,'127.0.0.1');//括号内容对应:(端口号,主机) 
client.on("ready", function (err) {  
    console.log("ready :" , "yes"); //链接成功检测
}); 
client.on("error", function (err) {  
    console.log("Error :" , err);  //错误检测
});    

module.exports = (function () {
    var mod = {};
    mod.webSet = function(res, _key, value, cb){  
        client.set(_key, JSON.stringify(value), function(err, result){  
            if (err) {                
                fs.writeFile(`${basePath}/logs/sqlerr.log`, err, () => {})
                res.json({
                    code: 500,
                    data: err
                })  
            } else {  
                if (cb) {
                    cb(result)
                } else {
                    res.json({
                        code: 200,
                        data: result
                    })
                } 
            }
        }) 
    };
    mod.webGet = function(res, _key, cb){  
        client.get(_key, function(err, result){  
            if (err) {  
                fs.writeFile(`${basePath}/logs/sqlerr.log`, err, () => {})
                res.json({
                    code: 500,
                    data: err
                })  
            } else {
              if (cb) {
                  cb(JSON.parse(result))
              } else {
                  res.json({
                      code: 200,
                      data: JSON.parse(result)
                  })
              } 
            }
        })  
    };
    mod.set = function (_key, value, cb) {
      client.set(_key, JSON.stringify(value), function (err, result) {
        if (err) {
          fs.writeFile(`${basePath}/logs/sqlerr.log`, err, () => {})
          cb && cb()
        } else {
          cb && cb(result);          
        }
      })
    };
    mod.get = function (_key, cb) {
      client.get(_key, function (err, result) {
        if (err) {
          console.log(err);
          fs.writeFile(`${basePath}/logs/sqlerr.log`, err, () => {})
          cb && cb();
        } else {
          cb && cb(JSON.parse(result));          
        }
      })
    };

    return mod     
})()
// 测试代码
// redis.set("swim","2012039210213",new Date().getTime(),function(result){
//   console.log(result)//存入的状态,正常则为 "OK"
// })
// redis.get("swim",function(result){
//   console.log(result)//取出的值
// })




  /*
   * 一下为redis消息通讯机制的应用代码
   */
  let sub = redis.createClient(6379, '127.0.0.1'); // 监听消费者
  let pub = redis.createClient(6379, '127.0.0.1'); // 生产者

  // 在sub开始监听时允许触发subscribe事件进行操作,类似连接数据库的connect事件
  sub.on('subscribe', function (channel, count) {
      console.log(`${channel}:${count}`); //  test channel:1
      pub.publish('test channel', 'channel message test')
  })
  sub.on('message', function (channel, message) {
      console.log(`${channel}-message:${JSON.stringify(message)}`)
  })
  sub.subscribe('test channel');


 

  • 1
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
### 回答1: 在 Node.js 使用 Redis 有很多种方法,下面是一种使用 `redis` 库来连接 Redis 的方法: 1. 安装 `redis` 库: ``` npm install redis ``` 2. 在 Node.js 代码引入 `redis` 库并连接 Redis: ``` const redis = require('redis'); const client = redis.createClient(); ``` 3. 在连接成功后,你就可以使用 Redis 命令了,例如: ``` client.set('key', 'value', redis.print); client.get('key', (error, result) => { if (error) { console.log(error); return; } console.log(result); }); ``` 注意:如果 Redis 服务器不在本机上,你需要在 `createClient()` 函数指定 Redis 服务器的地址和端口号。 希望这能帮到你! ### 回答2: Node.js连接Redis可以使用一些开源的Redis客户端库来实现,比如redis、ioredis等。下面以ioredis为例简单介绍Node.js连接Redis的步骤。 首先,需要安装ioredis库。可以通过npm命令来安装,命令如下: ```bash npm install ioredis ``` 安装完成后,在JavaScript代码引入ioredis库: ```javascript const Redis = require('ioredis'); ``` 然后,可以创建一个Redis实例并连接Redis服务器: ```javascript const redis = new Redis({ host: 'localhost', port: 6379, // 默认的Redis端口 password: 'your password', db: 0 // Redis数据库索引,0表示默认数据库 }); ``` 在连接时,可以指定Redis服务器的地址、端口、密码和数据库索引等参数,具体根据实际情况设置。 连接成功后,就可以使用Redis实例进行各种操作了,比如设置键值对、获取值、删除等操作。下面是一个简单的示例: ```javascript // 设置键值对 redis.set('key', 'value'); // 获取值 redis.get('key').then(value => { console.log(value); // 输出:value }); // 删除键值对 redis.del('key'); ``` 另外,为了避免连接Redis时出现错误,可以对连接过程进行错误处理: ```javascript redis.on('error', err => { console.error('Redis connection error:', err); }); ``` 通过以上步骤,就可以使用Node.js连接Redis,并进行各种操作了。当然,根据具体情况还可以进行更多配置和操作,比如设置Redis过期时间、订阅和发布消息等,根据实际需求选择使用不同的Redis客户端库。 ### 回答3: Node.js连接Redis需要使用Redis模块,常用的有node_redis和ioredis。 首先,需要在Node.js安装Redis模块。可以通过npm包管理器像下面这样安装它们: ``` npm install redis ``` 或者 ``` npm install ioredis ``` 接下来,在代码导入Redis模块: 使用node_redis: ```javascript const redis = require('redis'); ``` 使用ioredis: ```javascript const Redis = require('ioredis'); ``` 然后,创建Redis客户端并连接Redis服务器: 使用node_redis: ```javascript const client = redis.createClient(); client.on('connect', function() { console.log('Redis服务器已连接'); }); client.on('error', function(err) { console.log('无法连接Redis服务器:' + err); }); ``` 使用ioredis: ```javascript const client = new Redis(); client.on('connect', function() { console.log('Redis服务器已连接'); }); client.on('error', function(err) { console.log('无法连接Redis服务器:' + err); }); ``` 现在,你可以使用client对象执行各种Redis操作,例如设置、获取和删除键值对: ```javascript // 设置键为"key",值为"value" client.set('key', 'value', function(err, reply) { if (err) { console.log('设置失败:' + err); } else { console.log('设置成功'); } }); // 获取键为"key"的值 client.get('key', function(err, reply) { if (err) { console.log('获取失败:' + err); } else { console.log('获取到的值为:' + reply); } }); // 删除键为"key" client.del('key', function(err, reply) { if (err) { console.log('删除失败:' + err); } else { console.log('删除成功'); } }); ``` 最后,不要忘记在不再使用Redis时,关闭Redis连接: 使用node_redis: ```javascript client.quit(); ``` 使用ioredis: ```javascript client.disconnect(); ``` 以上就是使用Node.js连接Redis的基本过程。当然,你还可以根据自己的需求进行更复杂的Redis操作。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值