• 设为首页
  • 点击收藏
  • 手机版
    手机扫一扫访问
    迪恩网络手机版
  • 关注官方公众号
    微信扫一扫关注
    公众号

怎样惰性删除微信小程序的缓存?

原作者: [db:作者] 来自: [db:来源] 收藏 邀请

惰性删除
惰性删除策略对CPU 时间来说是最友好的:程序只会在取出键时才对键进行过期检查,这可以保证删除过期键的操作只会在非做不可的情况下进行, 并且删除的目标仅限于当前处理的键,这个策略不会在删除其他无关的过期键上花费任何CPU时间。
惰性删除策略的缺点是,它对内存是最不友好的: 如果一个键已经过期,而这个键又仍然保留在数据库中,那么只要这个过期键不被删除,它所占用的内存就不会释放。在使用惰性删除策略时,如果数据库中有非常多的过期键,而这些过期键又恰好没有被访问到的话,那么它们也许永远也不会被删除(除非用户手动执行FLUSHDB),我们甚至可以将这种情况看作是一种内存泄漏一一无用的垃圾数据占用了大量的内存,而服务器却不会自己去释放它们,这对于运行状态非常依赖于内存的Redis服务器来说,肯定不是一个好消息。
举个例子,对于一些和时间有关的数据,比如日志(log) ,在某个时间点之后,对它们的访问就会大大减少,甚至不再访问,如果这类过期数据大量地积压在数据库中,用户以为小程序服务器已经自动将它们删除了,但实际上这些键仍然存在, 而且键所占用的内存也没有释放,那么造成的后果肯定是非常严重的。

以上是redis惰性删除的策略
更多redis删除策略请看https://www.cnblogs.com/zhangchao-letv/articles/6119313.htfunction storageset (key, val, time) {

// wx.setStorageSync(key,val\')
var timestamp = Date.parse(new Date());
timestamp = timestamp / 1000;
// time的单位为秒
timestamp = timestamp + time
var valu = timestamp + \'$$\' + val
wx.setStorageSync(key, valu)
}
function storageget(key) {
var valu = wx.getStorageSync(key)
if (valu!=\'\'){
var data = valu.split("$$")
var timestamp = Date.parse(new Date());
timestamp = timestamp / 1000;
if (data[0] < timestamp) {
wx.removeStorageSync(key)
return -1
} else {
return data[1]
}
}else{
return -1
}
}

 


鲜花

握手

雷人

路过

鸡蛋
该文章已有0人参与评论

请发表评论

全部评论

专题导读
上一篇:
带直播的单商户小程序商城带源码发布时间:2022-07-18
下一篇:
微信小程序传值以及获取值方法发布时间:2022-07-18
热门推荐
阅读排行榜

扫描微信二维码

查看手机版网站

随时了解更新最新资讯

139-2527-9053

在线客服(服务时间 9:00~18:00)

在线QQ客服
地址:深圳市南山区西丽大学城创智工业园
电邮:jeky_zhao#qq.com
移动电话:139-2527-9053

Powered by 互联科技 X3.4© 2001-2213 极客世界.|Sitemap