redis_db.js 2.2 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596
  1. var Redis = require('ioredis'); //导入 安装好的 redis. npm i ioredis --save
  2. var { db_config } = require('../config/config.js') // 导入位置文件
  3. const logger = require('./logger')
  4. //redis 服务启动 /usr/local/bin/redis-server /usr/local/etc/redis.conf
  5. var port = db_config.redis.PORT
  6. var host = db_config.redis.HOST
  7. var username = db_config.redis.USERNAME
  8. var password = db_config.redis.PASSWORD
  9. var REDIS_INSTANCE;
  10. // username: username,
  11. // password: password,
  12. // logger.log('host , post', host, port, process.env.NODE_ENV)
  13. var opts;
  14. if (process.env.NODE_ENV == 'test') {
  15. opts = {
  16. port: port,
  17. host: host,
  18. connectTimeout: 10000,
  19. }
  20. REDIS_INSTANCE = new Redis.Cluster([opts]);
  21. } else if (process.env.NODE_ENV == 'dev') {
  22. opts = {
  23. port: port,
  24. host: host,
  25. password: password
  26. }
  27. // var new_opts = "redis://"+password+"@"+host+":"+port+"/0"
  28. // "redis://:authpassword@127.0.0.1:6380/4"
  29. // REDIS_INSTANCE = new Redis(opts);
  30. REDIS_INSTANCE = new Redis.Cluster([opts]);
  31. // REDIS_INSTANCE=new Redis.Cluster([opts]);
  32. } else if (process.env.NODE_ENV == 'prd') {
  33. opts = {
  34. port: port,
  35. host: host,
  36. connectTimeout: 10000,
  37. }
  38. REDIS_INSTANCE = new Redis.Cluster([opts]);
  39. }
  40. REDIS_INSTANCE.on('connect', () => {
  41. logger.log('connected to redis')
  42. })
  43. REDIS_INSTANCE.on('error', function (err) {
  44. logger.log('redis Error ', err);
  45. });
  46. function redis_set(key, value) {
  47. logger.log("redis set=", key,value);
  48. try {
  49. REDIS_INSTANCE.set(key, value);
  50. } catch (error) {
  51. logger.error('redis_set error:', key,value, error)
  52. return null;
  53. }
  54. }
  55. async function redis_get(key) {
  56. logger.log("redis get=", key);
  57. try {
  58. return await REDIS_INSTANCE.get(key);
  59. } catch (error) {
  60. logger.error('redis_get error:', key, error)
  61. return null;
  62. }
  63. }
  64. /**
  65. * 同步
  66. *
  67. * @param {*} key
  68. * @returns
  69. */
  70. async function readRedis(key) {
  71. return new Promise((resolve) => {
  72. // REDIS_INSTANCE.get(key)
  73. redis_get(key)
  74. .then(result => {
  75. console.log("redis_get=", result); // Prints "value"
  76. resolve(result);
  77. }).catch(e => {
  78. console.log("readRedis key error=", key, e); // Prints "value"
  79. });
  80. })
  81. }
  82. module.exports = {
  83. redis_set,
  84. redis_get,
  85. readRedis,
  86. }