nodejs使用redis作为缓存介质实现的封装缓存类示例
2018-02-07 14:10
1006 查看
本文实例讲述了nodejs使用redis作为缓存介质实现的封装缓存类。分享给大家供大家参考,具体如下:
之前在node下使用redis作为缓存介质,对redis进行了一层封装
First: 安装npm包 redis
const redis = require('redis');
Second: 进行封装
// cache.jsconst redis = require('redis');const config = require('config'); const logger = require('winston'); const redisObj = { client: null, connect: function () { this.client = redis.createClient(config.redis); this.client.on('error', function (err) { logger.error('redisCache Error ' + err); }); this.client.on('ready', function () { logger.info('redisCache connection succeed'); }); }, init: function () { this.connect(); // 创建连接 const instance = this.client; // 主要重写了一下三个方法。可以根据需要定义。 const get = instance.get; const set = instance.set; const setex = instance.setex; instance.set = function (key, value, callback) { if (value !== undefined) { set.call(instance, key, JSON.stringify(value), callback); } }; instance.get = function (key, callback) { get.call(instance, key, (err, val) => { if (err) { logger.warn('redis.get: ', key, err); } callback(null, JSON.parse(val)); }); }; // 可以不用传递expires参数。在config文件里进行配置。 instance.setex = function (key, value, callback) { if (value !== undefined) { setex.call(instance, key, config.cache.maxAge, JSON.stringify(value), callback); } }; return instance; }, }; // 返回的是一个redis.client的实例 module.exports = redisObj.init();
How to use
const cache = require('./cache'); cache.get(key, (err, val) => { if (val) { // do something } else { // do otherthing } }); cache.set(key, val, (err, res) => { // do something }); cache.setex(key, val, (err, res) => { // do something })
希望本文所述对大家nodejs程序设计有所帮助。
您可能感兴趣的文章:
相关文章推荐
- nodejs使用redis作为缓存介质,封装缓存类
- nodejs使用redis作为缓存介质,封装缓存类
- Go/Python/Erlang编程语言对比分析及示例 基于RabbitMQ.Client组件实现RabbitMQ可复用的 ConnectionPool(连接池) 封装一个基于NLog+NLog.Mongo的日志记录工具类LogUtil 分享基于MemoryCache(内存缓存)的缓存工具类,C# B/S 、C/S项目均可以使用!
- redis使用工具类进行保存数据和Ehcache注解缓存类实现缓存value
- php实现的redis缓存类定义与使用方法示例
- PHP使用redis实现统计缓存mysql压力的方法
- 缓存技术Redis在C#中的使用及Redis的封装
- Redis学习笔记2-使用 Redis 作为 LRU 缓存
- ASP.NET使用Redis共享缓存示例
- Redis 3.0官方文档翻译计划(8) ——使用Redis作为LRU缓存
- 【新手总结】在.Net项目中使用Redis作为缓存服务
- 分布式缓存技术redis学习系列(五)——spring-data-redis与JedisPool的区别、使用ShardedJedisPool与spring集成的实现及一致性哈希分析
- Nodejs基于LRU算法实现的缓存处理操作示例
- 使用redis实现页面缓存
- REDIS学习(3.2)spring boot 使用redis作为缓存
- PHP使用redis实现统计缓存mysql压力的方法
- 使用Redis作为缓存2
- 毕加索的艺术——Picasso,一个强大的Android图片下载缓存库,OkHttpUtils的使用,二次封装PicassoUtils实现微信精选
- 深入理解Spring Redis的使用 (八)、Spring Redis实现 注解 自动缓存
- 在.Net项目中使用Redis作为缓存服务