Redis 缓解超大返回数据问题(redis 返回报文过大)
随着项目规模的不断扩大,返回的数据量也在不断增加,19年社交等热门应用也更新了技术栈,提升开发效率,高并发相关业务也在大幅度发展,这些都使得超大数据返回,变得日益成为开发中的一大难题。有很多语言适用的优秀技术已经出现了,比如缓存技术,谈起缓存技术,不得不提Nodejs技术栈,它的缓存技术有memcache,Redis等,今天先聊聊 Redis,Redis更是被广大开发者称道的解决方案之一。
Redis是一款高性能、轻便高可用的内存数据库,针对有超大数据量返回的情况,Redis 可以将数据库中的一些超大数据返回,缓存到 Redis 服务器中,有效减轻数据库压力。例如在社交类业务,经常会遇到获取用户列表,返回时经常发现会有因为超大数据导致而慢或者报错,这时候就可以使用 Redis 缓解。
平时可以根据项目的实际情况,专门设计一个定时爬取大量用户列表的定时任务,将其缓存到 Redis 服务器中,以便提高用户请求的响应速度。具体的代码实现如下:
// 缓存到 Redis 中
let userList = awt getUserList();userList.forEach(async item => {
awt RedisCli.set(item.id, JSON.stringify(item));})
// 从 Redis 读取数据let userList = []
list.forEach(async item => { let data = awt RedisCli.get(item.id);
userList.push(JSON.parse(data))})
res.json({ code: 0,
data: userList})
由此可见,Redis 可以通过设计定时读取任务,将大量用户数据缓存到 Redis 服务器中,从而有效缓解查询和返回大数据量的问题,从而提升系统的响应性和用户体验。