Redis在node.js中的使用

Redis

    • redis的简介
    • redis的特点
    • node中的使用
    • 为什么使用redis

redis的简介

Redis是一个开源的使用ANSI C语言编写、遵守BSD协议、支持网络、可基于内存亦可持久化的日志型、Key-Value数据库,并提供多种语言的API。它通常被称为数据结构服务器,因为值(value)可以是 字符串(String), 哈希(Map), 列表(list), 集合(sets) 和 有序集合(sorted sets)等类型。
redis在对数据的读写上速度非常快,被许多公司所使用

redis的特点

  1. 内存数据库,速度快,也支持数据的持久化,可以将内存中的数据保存在磁盘中,重启的时候可以再次加载进行使用。
  2. Redis不仅仅支持简单的key-value类型的数据,同时还提供list,set,zset,hash等数据结构的存储。
  3. Redis支持数据的备份,即master-slave模式的数据备份。
  4. 支持事务

node中的使用

首先要有安装了Redis的服务器,本机有redis也行,没有去安装redis

  1. 下载 redis模块

    npm install redis
    
  2. 初始化
    redis在读写数据前需要进行连接操作,设置好端口号,ip和密码。

    const redis = require("redis");//引入模块
    let port = 6379;//redis的默认端口号
    let host = "127.0.0.1"//ip
    let password = "123456"; //密码
    let client = redis.createClient(port,host);
    client.auth(password,()=>{
        console.log("连接成功")
    })
    
  3. 进行读写操作

    Key-Value结构

    //set设置
    client.on("connect",()=>{
        client.set('name','hhh',(err,res)=>{
            if(err){
                console.log(err)
                return
            }
            console.log(res)
        })
    })
    //get取值
    client.on("connect",()=>{
        client.get("nane",(err,res)=>{
            if(err){
                console.log(err)
                return
            }
            console.log(res)
        })
    })
    
    
    
    

    这么写太麻烦,所以可以进行封装

    //封装 set  k—v
    function setKey(key,value,callback){
        client.on("connect",()=>{
            client.set(key,value,callback)
        })
    }
    //封装get  k—v
    function getKey(key,callback){
        client.on("connect",()=>{
            client.get(key,callback)
        })
    }
    //set设置
    setKey("age","18",(err,res)=>{
        if(err){
            console.log(err)
            return
        }
        console.log(res)
    })
    //get获取
    getKey("age",(err,res)=>{
        if(err){
            console.log(err)
            return
        }
        console.log(res)
    })
    

    hash结构
    在企业中一般使用hash结构
    hash指的是一个存储空间,占据的一块内存也是唯一标识
    key-value结构是根据key读取value,而hash结构是根据指定存储空间的标识名读取这个空间的数据。

    //和上面k-v一样我们进行封装
    function hset(hash,key,value,callback){
        client.on("connect",()=>{
            client.hset(hash,key,value,callback)
        })
    }
    function hget(hash,key,callback){
        client.on("connect",()=>{
            client.hget(hash,key,callback)
        })
    }
    hset("191106","wh","happy",(err,res)=>{
        if(err){
            console.log(err)
            return;
        }
        console.log(res)
    })
    hget("191106","wh",(err,res)=>{
        if(err){
            console.log(err)
            return;
        }
        console.log(res)
    })
    
    
    

    查找多个

    function hgetAll(hash,callback){
        client.on("connect",()=>{
            client.hgetall(hash,callback)
        })
    }
    function hsetAll(hash,paramarr,callback){
        client.on("connect",()=>{
            client.hmset(hash, ...paramarr,callback)
        })
    }
    hsetAll("class1",{"a1":"b1","a2":"b2"},(err,res)=>{
        console.log(res)
    })
    hgetAll("class1",(err,res)=>{
        console.log(res)
    })
    

为什么使用redis

  1. 性能极高
  2. 丰富的数据类型
  3. 原子 – Redis的所有操作都是原子性的,同时Redis还支持对几个操作合并后的原子性执行。(事务)
  4. 丰富的特性 – Redis还支持 publish/subscribe, 通知, key 过期等等特性。

你可能感兴趣的:(Redis在node.js中的使用)