首页 > 其他分享 >Go使用big-cache

Go使用big-cache

时间:2024-11-14 17:49:10浏览次数:1  
标签:big cache bigcache time Go main

package main

import (
	"fmt"
	"time"
 
	"github.com/allegro/bigcache/v3"
)

func main() {
	config := bigcache.Config{
		// 分片数量 必须为2的整数次幂
		Shards: 1024,

		// 条目可以被驱逐的时间
		LifeWindow: 10 * time.Minute,

		//删除过期条目的时间间隔(清理)。
		//如果设置为<= 0,则不执行任何操作。
		//设置为< 1秒会适得其反——bigcache只有1秒的分辨率。
		CleanWindow: 5 * time.Minute,

		// rps * lifeWindow,仅用于初始内存分配
		MaxEntriesInWindow: 1000 * 10 * 60,

		// 最大条目大小(以字节为单位),仅在初始内存分配中使用
		MaxEntrySize: 500,

		// 打印有关额外内存分配的信息
		Verbose: true,

		//缓存将不会分配超过此限制(以MB为单位)的内存,如果达到值,则可以为新条目覆盖最旧的条目,0值表示没有大小限制
		HardMaxCacheSize: 8192,

		//当最老的条目由于过期时间或没有剩余空间而被删除时触发回调
		//对于新条目,或者因为delete被调用。返回一个表示原因的位掩码。
		//默认值为nil,没有回调,会阻止打开最旧的条目。
		OnRemove: nil,

		// OnRemoveWithReason是一个回调函数,当最老的条目因为过期时间或没有剩余空间而被删除时触发
		//对于新条目,或者因为delete被调用。将传递一个表示原因的常量。
		//默认值为nil,这意味着没有回调,它会阻止打开最旧的条目。
		//如果指定了OnRemove,则忽略。
		OnRemoveWithReason: nil,
	}

	cache, initErr := bigcache.New(context.Background(), config)
	if initErr != nil {
		fmt.Println(initErr)
	}

	cache.Set("my-unique-key", []byte("value"))

	if entry, err := cache.Get("my-unique-key"); err == nil {
		fmt.Println(string(entry))
	}
}

标签:big,cache,bigcache,time,Go,main
From: https://www.cnblogs.com/qcy-blog/p/18546496

相关文章

  • cmu15545笔记-排序和聚合算法(Sorting&Aggregation Algorithms)
    目录概述排序堆排序外部归并排序使用索引聚合操作排序聚合哈希聚合概述本节和下一节讨论具体的操作算子,包括排序,聚合,Join等。排序为什么需要排序操作:关系型数据库是无序的,但是使用时往往需要顺序数据(OrderedBy,GroupBy,Distinct)。主要矛盾:磁盘很大:要排序的数据集很大,内......
  • Shopee怎么使用BigSeller ERP批量上架产品,实操流程来了
    Shopee批量上架产品主要有以下几种方法:①、使用ShopeeSellerCentre:下载批量上传模板:登录Shopee卖家中心,在“我的商品”页面中,单击“新增商品”右侧的“批量工具”,选择下拉菜单中的“批量上传”进入商品批量上传页面,然后点击“下载”按钮,下载商品上传表格至本......
  • TikTok采集产品_如何用BigSeller快速采集TikTok产品?
    随着TikTok在东南亚市场的持续增长和开放更多功能,越来越多的卖家开始转向本土店运营,因为TikTok本土店有更多的优势。在这种情况下,卖家需要了解如何在TikTok上运营本土店,并利用BigSeller等工具来高效运营和管理店铺。利用BigSeller高效上品,采集刊登TikTok小店卖家中心上品复......
  • 《Django 5 By Example》阅读笔记:p76-p104
    《Django5ByExample》学习第4天,p76-p104总结,总计29页。一、技术总结1.环境变量管理这里作者使用的是:python-decouple,本人在实际项目中使用的是python-dotenv,这里只是简单的使用,感觉两者差不多。2.评论功能评论功能设计的时候主要考虑两个方面:是否需要登录才能发表评论,评论......
  • CF1835F Good Graph
    小清新图论题。题目大概说了个关于hall定理的东西,不多赘述了。先处理NO,这是好处理的,在跑匈牙利的时候如果失配那就把增广到的点集输出即可。然后处理YES,注意到两个紧密的集合合并还是紧密的集合。那么我们考虑对每个左部点\(u\)找到最小的包含他的紧密的集合\(S_u\),这个......
  • GEE训练教程—— Google Earth Engine 中分析马耳他的植被指数(NDVI 和 EVI)
    目录简介MODIS/006/MOD13Q1数据函数visualize(bands, gain, bias, min, max, gamma, opacity, palette, forceRgbOutput)Arguments:Returns: Image代码结果简介在GoogleEarthEngine中分析马耳他的植被指数(NDVI和EVI)###代码说明1.**边界数据集**......
  • 在Go中使用自定义类型与Swagger集成
    在Go语言中,自定义类型可以帮助我们更好地组织代码和增强可读性。在本篇博客中,我们将探讨如何创建一个自定义类型,并将其与Swagger文档集成,以便在API中正确序列化和展示。1.创建自定义类型首先,我们定义一个名为 RechargeType 的自定义类型。这个类型将用于表示不同的充值方式。......
  • GoldenGate抽取进程延迟严重,论FETCHOPTIONS NOUSESNAPSHOT的重要性
    1、案例概述同事新搭建的一套GoldenGate环境,刚刚搭建时,Extract抽取进程就已经出现延迟现象,当时想着可能很快就能追平,所以最开始也没当回事。结果两天时间,延迟现象没有缓解,已经累积延迟30多个小时。通过info或者stats等命令查看进程状态信息,发现该Extract抽取进程仍然在工作,只......
  • MATLAB实现NGO-SVM北方苍鹰算法优化支持向量机多输入单输出回归预测(多指标,多图)
    目录项目背景介绍...1项目目标与意义...1项目挑战...2项目特点与创新...2项目应用领域...3项目效果预测图程序设计...3项目模型架构...4项目模型描述...4项目模型算法流程图...5项目结构设计...5项目部署与应用...6项目扩展...6项目应该注意事项...6......
  • socketcan-goloang
    模拟接收 模拟发送 packagemainimport("context""fmt""go.einride.tech/can""go.einride.tech/can/pkg/candevice""go.einride.tech/can/pkg/socketcan")funcmain(){//linux系统设置......