Redis了解一下

最近一直在忙活后台,系统是Koa+MySql+Redis。

之前很少接触Redis,现在简单认识和总结一下:

1、什么是Redis

Redis全称为:Remote Dictionary Server(远程数据服务),是一个key-value存储系统。

2、特点:

1)读写效率高

Redis以内存作为数据存储介质,所以读写数据的效率极高,远远超过数据库。以设置和获取一个256字节字符串为例,它的读取速度可高达110000次/s,写速度高达81000次/s。

2)存储特性

储存在Redis中的数据是持久化的,断电或重启后,数据也不会丢失。因为Redis的存储分为内存存储、磁盘存储和log文件三部分,重启后,Redis可以从磁盘重新将数据加载到内存中,这些可以通过配置文件对其进行配置,正因为这样,Redis才能实现持久化。

3、用法

在Node环境中实现增删查

module.exports = new (function () {
    var self = this;
    var redis = require("redis");
    var client = null;
    this.init = function (host, port) {
        client = redis.createClient(port || 6379, host || '127.0.0.1', {});
    };
    this.getCache = function (key, call) {
        !client && (self.init());
        return new Promise(function (res, rej) {
            call = call || res;
            client.get(key, function (err, v) {
                if (v) {
                    if (v.indexOf('obj-') === 0) {
                        v = v.slice(4);
                        call(JSON.parse(v));
                    } else if (v.indexOf('str-') === 0) {
                        call(v.slice(4));
                    } else {
                        call(v);
                    }
                } else {
                    call();
                }
            });
        });
    };
    this.setCache = function (key, value, expire) {
        !client && (self.init());
        var v = value;
        if (typeof value == 'object') {
            v = JSON.stringify(value);
            v = 'obj-' + v;
        } else {
            v = 'str-' + v;
        }
        client.set(key, v);
        client.expire(key, expire || 72000 * 60 * 1000);
    };
    this.clearCache = function (keys) {
        !client && (self.init());
        for (var i = 0; i < keys.length; i++) {
            client.del(keys[i]);
        }
    };
})();

要先npm一下redis哦

4、场景应用

因为Redis交换数据快,所以在服务器中常用来存储一些需要频繁调取的数据,这样可以大大节省系统直接读取磁盘来获得数据的I/O开销,更重要的是可以极大提升速度。

可以实现时间调度,比如在一些订单有明确时效的场景中应用。

猜你喜欢

转载自www.cnblogs.com/KDSER/p/9099365.html