前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >内存缓存详解

内存缓存详解

原创
作者头像
花落花相惜
发布2021-12-16 22:36:42
6670
发布2021-12-16 22:36:42
举报

内存缓存

  • CPU 有缓存:L1,L2,L3 不同等级缓存执行速度不一样,空间也不一样。
  • 内存缓存:有栈有堆,栈速度要快很多,但一般用来存储小对象以及作用域函数内,堆大用于大对象以及全局对象等,但堆需要GC回收(三色标记法),存在stop the word
  • 磁盘缓存:空间大,读取慢。

程序

很多时候我们为了缩短单次请求的时间,就需要去分析请求在哪一步耗时比较大,一般越靠近应用层优化效果越大,后端程序就是请求到达路由解析到返回结果这一步骤了。

1.直接读mysql,这一般是后台管理员的增删改查了

2.直接读redis,redis到是方便各节点访问以及一定操作,但毕竟存在网络io

3.直接从本地内存中读数据,使用前你需要精准判断需要分配多大内存空间来充当本地内存缓存,为了更好的使用这有限的本地缓存,对它进行一定管理十分必要,可以参考redis的,过期时间,lru,lfu,fifo等等

开源工具

`go get -u

github.com/bluele/gcache`,这个开源库提供分装好了的lru,lfu算法,你可以直接使用,也有过期时间的分装,以及使用内存大小。

https://github.com/hashicorp/golang-lru 也是一个lru的分装

golang的标准库里面也有对双向链表的分装

话说回来

其实golang提供的数据类型就就能满足我们很多场景了,小场面压根可以原生直接上。。。

原创声明:本文系作者授权腾讯云开发者社区发表,未经许可,不得转载。

如有侵权,请联系 cloudcommunity@tencent.com 删除。

原创声明:本文系作者授权腾讯云开发者社区发表,未经许可,不得转载。

如有侵权,请联系 cloudcommunity@tencent.com 删除。

评论
作者已关闭评论
0 条评论
热度
最新
推荐阅读
目录
  • 内存缓存
  • 程序
  • 开源工具
    • 话说回来
    相关产品与服务
    云数据库 Redis
    腾讯云数据库 Redis(TencentDB for Redis)是腾讯云打造的兼容 Redis 协议的缓存和存储服务。丰富的数据结构能帮助您完成不同类型的业务场景开发。支持主从热备,提供自动容灾切换、数据备份、故障迁移、实例监控、在线扩容、数据回档等全套的数据库服务。
    领券
    问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档