redis_db.js 1.9 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687
  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. username: username,
  26. password: password,
  27. connectTimeout: 10000,
  28. }
  29. REDIS_INSTANCE = new Redis(opts);
  30. // REDIS_INSTANCE=new Redis.Cluster([opts]);
  31. } else if (process.env.NODE_ENV == 'prd') {
  32. opts = {
  33. port: port,
  34. host: host,
  35. username: username,
  36. password: password,
  37. connectTimeout: 10000,
  38. }
  39. REDIS_INSTANCE=new Redis.Cluster([opts]);
  40. }
  41. REDIS_INSTANCE.on('connect', () => {
  42. logger.log('connected to redis')
  43. })
  44. REDIS_INSTANCE.on('error', function (err) {
  45. logger.log('redis Error ', err);
  46. });
  47. function redis_set(key, value) {
  48. logger.log("redis set=", key);
  49. REDIS_INSTANCE.set(key, value);
  50. }
  51. async function redis_get(key) {
  52. logger.log("redis get=", key);
  53. try {
  54. return await REDIS_INSTANCE.get(key);
  55. } catch (error) {
  56. logger.error('redis_get error:',key,error)
  57. }
  58. }
  59. /**
  60. * 同步
  61. *
  62. * @param {*} key
  63. * @returns
  64. */
  65. function readRedis(key) {
  66. return new Promise((resolve) => {
  67. redis_get(key).then(result => {
  68. console.log("redis_get=", result); // Prints "value"
  69. resolve(result);
  70. });
  71. })
  72. }
  73. module.exports = {
  74. redis_set,
  75. redis_get,
  76. readRedis,
  77. }