前言
做自己的小项目(聊天室)时,想开发历史消息(在线+离线)这个功能,但是聊天时反复操作数据库无疑对性能损耗是巨大的,我们需要更快的访问速度和更好的性能,所以选择将数据存储在内存中的redis。
安装
- 百度网盘下载地址:Redis-x64-3.2.100.zip 密码:kdfq
- 进入到解压的目录,下载
部署服务
redis-server --service-install redis.windows.conf
- 开启服务
redis-server --service-start
开发
1. node中使用redis
npm i redis --save
2. 引入
// 接入Redis,存储与获取历史消息(相比数据库)更快,损耗更少
const redis = require("redis");
//连接本地Redis服务
const client = redis.createClient(6379, "localhost");
//接入model层
const User = require("./models/User");
var connections = [];
// 用户建立连接
io.on("connect", function (socket) {
connections.push(socket);
console.log("连接建立!");
// 用户发送消息,服务端监听并回复
socket.on("sendMessage", function (data) {
io.emit("newMessage",data);
console.log(data);
client.lpush("all_message",JSON.stringify(data), redis.print);
});
});
// app获取全部历史消息
app.get('/user/history',(req,res)=>{
client.lrange("all_message", 0, -1,(err, items) => {
res.send({
data:items
})
});
})
使用list这种数据结构就可以,将对象转化为字符串,存入到数组,进而存入redis。
取出来的时候,再转化为对象。
接下来,我们在云服务器上,安装部署
- 宝塔面板安装redis更加便捷
- 两边放行端口号6379,云服务器和阿里巴巴控制台远端防火墙打开
- 把你的代码部署上就好了,真鸡儿简单