cache.js 1.0 KB

12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849
  1. var redis = require('./redis');
  2. var _ = require('lodash');
  3. /**
  4. * 从cache中取出缓存
  5. * @param key 键
  6. * @param callback 回调函数
  7. */
  8. var get = function (key, callback) {
  9. redis.get(key, function (err, data) {
  10. if (err) {
  11. return callback(err);
  12. }
  13. if (!data) {
  14. return callback();
  15. }
  16. data = JSON.parse(data);
  17. callback(data);
  18. });
  19. };
  20. exports.get = get;
  21. /**
  22. * 将键值对数据缓存起来
  23. *
  24. * @param key 键
  25. * @param value 值
  26. * @param time 参数可选,毫秒为单位,切换为redis以秒为单位,除以1000
  27. * @param callback 回调函数
  28. */
  29. var set = function (key, value, time, callback) {
  30. if (typeof time === 'function') {
  31. callback = time;
  32. time = null;
  33. }
  34. callback = callback || _.noop;
  35. value = JSON.stringify(value);
  36. if (!time) {
  37. redis.set(key, value, callback);
  38. } else {
  39. //将毫秒单位转为秒
  40. redis.setex(key, parseInt(time / 1000), value, callback);
  41. }
  42. };
  43. exports.set = set;