redis基础使用

redis

Redis 是完全开源免费的,遵守BSD协议,是一个高性能的key-value数据库。
Redis 与其他 key - value 缓存产品有以下三个特点:
Redis支持数据的持久化,可以将内存中的数据保存在磁盘中,重启的时候可以再次加载进行使用。
Redis不仅仅支持简单的key-value类型的数据,同时还提供list,set,zset,hash等数据结构的存储。
Redis支持数据的备份,即master-slave模式的数据备份。

使用node 操作redis

使用前 先下载redis

npm i redis
const redis = require("redis");
let port = 6379;//端口号
let host = "127.0.0.1"//域名
let password = "123456";//密码

let client = redis.createClient(port,host);
client.auth(password,()=>{
    console.log("ok") //打印成功代表启动成功
})

key-value

set设置key-value

client.on("connect",()=>{
    client.set('cxb','chou',(err,res)=>{
        if(err){
            console.log(err)
            return;
        }
        console.log(res)
    })
})

get取值

client.on("connect",()=>{
    client.get("cxb",(err,res)=>{
        if(err){
            console.log(err)
            return
        }
        console.log(res)//chou
    })
})

这样设置值和取值我们发现每次都要写一套 所以我们可以把它写成函数直接调用

set:

function setKey(key,value,callback){
    client.on("connect",()=>{
        client.set(key,value,callback)
    })
}
setKey("zc","sb",(err,res)=>{
    if(err){
        console.log(err)
        return
    }
    console.log(res)
})

get

function getKey(key,callback){
    client.on("connect",()=>{
        client.get(key,callback)
    })
}
getKey("zc",(err,res)=>{
    if(err){
        console.log(err)
        return
    }
    console.log(res)
})

redis整个公司就一个,内存也就100mb,避免重复,实际上用的是哈希结构存储,像ES6中的map对象,每一个公司中的每个人都可以指定一个一块区域
哈希指的是一个存储空间,占据的一块内存也是唯一标识

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("class1106","hbw","chou",(err,res)=>{
    if(err){
        console.log(err)
        return;
    }
    console.log(res)
})
hget("class1106","hbw",(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基础使用)