123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220 |
- /**
- * Created by chen on 2017/8/21.
- */
- let Redis = require('ioredis'),
- config=require('./config'),
- redisConfig = config.current.redis;
- redis = new Redis({
- port: redisConfig.port, // Redis port
- host: redisConfig.server, // Redis host
- family: 4, // 4 (IPv4) or 6 (IPv6)
- password:redisConfig.pwd,
- db: 0
- });
- let client={};
- redis.on('ready',function(res){
- console.log('ready');
- });
- redis.on("error", function (err) {
- console.log("Error " + err);
- });
- client.redis = redis;
- //redis.hmset('测试',{12525:55,'a':'aaaa',b:"bbbbb"});
- //var stream = redis.scanStream({ match: '测*'});
- /*redis.hmset('RATION',{12525:55,'a':'aaaa',b:"bbbbb"});
- redis.hgetall("RATION",function (err,result) {
- console.log(result);
- })*/
- client.scan = function(options,callback){
- var stream = null;
- if(options){
- stream = redis.scanStream(options);
- }else {
- stream = redis.scanStream();
- }
- var keys = [];
- stream.on('data', function (resultKeys) {
- // `resultKeys` is an array of strings representing key names
- for (var i = 0; i < resultKeys.length; i++) {
- keys.push(resultKeys[i]);
- }
- });
- stream.on('end', function () {
- console.log('done with the keys: ', keys);
- callback(keys);
- });
- }
- client.set = function(key, value, expire, callback){
- return redis.set(key, value, function(err, result){
- if (err) {
- console.log(err);
- callback(err,null);
- return;
- }
- if (!isNaN(expire) && expire > 0) {
- redis.expire(key, parseInt(expire));
- }
- if(callback){
- callback(null,result);
- }
- })
- }
- client.get = function(key, callback){
- return redis.get(key, function(err,result){
- if (err) {
- console.log(err);
- callback(err,null);
- return;
- }
- if(callback){
- callback(null,result);
- }
- });
- }
- client.hmset = function(key, value, expire, callback){
- return redis.hmset(key, value, function(err, result){
- if (err) {
- console.log(err);
- callback(err,null);
- return;
- }
- if (!isNaN(expire) && expire > 0) {
- redis.expire(key, parseInt(expire));
- }
- if(callback){
- callback(null,result);
- }
- })
- }
- client.hmget = function (key,fields,callback) {
- return redis.hmget(key,fields,function(err,result){
- if (err) {
- console.log(err);
- callback(err,null)
- return;
- }
- if(callback){
- callback(null,result);
- }
- })
- }
- client.hgetall = function (key,callback) {
- return redis.hgetall(key,function (err,result) {
- if (err) {
- console.log(err);
- callback(err,null)
- return;
- }
- callback(null,result);
- })
- }
- client.hscan = function (key,options) {
- var stream = null;
- if(options){
- stream = redis.hscanStream(key,options);
- }else {
- stream = redis.hscanStream(key);
- }
- var fields = [];
- stream.on('data', function (resultFields) {
- // `resultKeys` is an array of strings representing key names
- for (var i = 0; i < resultFields.length; i++) {
- fields.push(resultFields[i]);
- }
- });
- stream.on('end', function () {
- console.log('done with the keys: ', fields);
- callback(fields);
- });
- }
- client.rpush = function(key,value,expire, callback){
- return redis.rpush(key, value, function(err, result){
- if (err) {
- console.log(err);
- callback(err,null);
- return;
- }
- if (!isNaN(expire) && expire > 0) {
- redis.expire(key, parseInt(expire));
- }
- if(callback){
- callback(null,result);
- }
- })
- }
- client.lrange= function (key,start,end,callback) {
- return redis.lrange(key,start,end,callback);//获取列表在给定范围上的所有值 array lrange('key', 0, -1) (返回所有值)
- }
- client.lindex =function (key,index,callback) {
- return redis.lindex(key,index,callback);//获取列表在给定位置上的单个元素 lindex('key', 1)
- }
- client.lpop = function (key,callback) {
- return redis.lpop(key,callback);//从列表左端弹出一个值,并返回被弹出的值lpop('key')
- }
- client.rpop = function (key,callback) {
- return redis.rpop(key,callback);//从列表右端弹出一个值,并返回被弹出的值rpop('key')
- }
- client.ltrim = function (key,start,end,callback) {
- return redis.ltrim(key,start,end,callback);//将列表按指定的index范围裁减 ltrim('key', 'start', 'end')
- }
- client.del = function (keys,callback) {
- return redis.del(keys,callback);// 删除一个(或多个)keys return 被删除的keys的数量 del('key1'[, 'key2', ...])
- }
- client.exists = function (key,callback) {
- return redis.exists(key,callback);// 查询一个key是否存在 1/0 exists('key')
- }
- client.multi = function () {
- return redis.multi();//用于开启一个事务,它总是返回 OK 。
- }
- client.exec =function () {
- return redis.exec();//执行所有事务块内的命令
- }
- client.application_init = function () {
- redis.flushdb();//清空所有keys
- // load datas -- to do
- /*data=[{
- method:'hmset',
- key:'ration:25555',
- value:{
- name:'aaa',
- quantily:255
- },
- expire:2000,//options
- callback:function, //option
- }]
- for(let data of datas){
- client[data.method](data.key,data.value,data.expire,data.callback);
- }
- */
- }
- module.exports = client
|