redis_db.js 1.8 KB

1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162636465666768697071727374757677787980818283848586
  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. } else if (process.env.NODE_ENV == 'prd') {
  31. opts = {
  32. port: port,
  33. host: host,
  34. username: username,
  35. password: password,
  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);
  48. REDIS_INSTANCE.set(key, value);
  49. }
  50. async function redis_get(key) {
  51. logger.log("redis get=", key);
  52. try {
  53. return await REDIS_INSTANCE.get(key);
  54. } catch (error) {
  55. logger.error('redis_get error:',key,error)
  56. }
  57. }
  58. /**
  59. * 同步
  60. *
  61. * @param {*} key
  62. * @returns
  63. */
  64. function readRedis(key) {
  65. return new Promise((resolve) => {
  66. redis_get(key).then(result => {
  67. console.log("redis_get=", result); // Prints "value"
  68. resolve(result);
  69. });
  70. })
  71. }
  72. module.exports = {
  73. redis_set,
  74. redis_get,
  75. readRedis,
  76. }