如何在云开发中搭建 KV 缓存系统

云开发的数据库在实际使用中的性能是很是不错的。但涉及到一些比较重的计算量时,依然会让查询花费很多的时间(好比提取全部的数据计算排行),在这种状况下,就须要一种方式来优化数据查询,让本来对数据库压力比较大的数据查询消耗更少的数据库性能,下降数据查询耗时,优化数据体验。数据库

一个简单易行的方式就是加入缓存,好比建设一套 KV 缓存系统,来完成数据的优化。缓存

如何在云开发中实现一个简单的 Key - Value 数据库?

想要在云开发中实现一个简单的 Key-Value 数据库,十分简单, 你只须要打开云开发的数据库,在其中建立一个cache表,就能够开始编写代码来实现数据的缓存。async

须要注意的是,若是你须要让缓存能够在移动端读取,则须要将数据表的权限设置为 全部用户可读,仅建立者可写

云开发的数据库中,以 _id 做为数据主键,并默认为 _id 提供了索引,所以,咱们只须要将缓存的 key 放在 _id 中,就能够借助数据库的索引机制,避免扫描全表来获取数据。同时,还能够借助云开发的 doc 方法来快速读取数据,简化代码。性能

具体的实现,你能够参考下方的代码。学习

设置缓存

async function setCache(key,value){
   return await db.collection("cache").add({
      data:{
        _id:key,
        value:value
      }
    })
}

读取缓存

async function getCache(key){
   let { data } = await db.collection("cache").doc(key).get();
    return data.value;
}

如何使用

当你须要设置缓存的时候,你只须要执行 setCache 方法,就能够将特定的数据设置到数据库中,并在须要的地方使用 getCache 方法来获取这些数据,提高你的数据库查询数据。优化

借助自建的简易缓存系统,能够快速的完成产品的耗时查询的优化,同时还能够借助官方提供的 API,下降学习的成本,你再也不须要去啃厚厚的 Redis 使用教程了。code

问题

在这篇文章中,我简单介绍了如何基于云开发开发出一个简单的缓存系统,那么你发现这个缓存系统的一些问题了么?若是你要优化这个系统,你会怎么作?教程

相关文章
相关标签/搜索