首页
学习
活动
专区
圈层
工具
发布
    • 综合排序
    • 最热优先
    • 最新优先
    时间不限
  • 来自专栏golang

    每日一库之 go-cache 单机缓存

    go-cache 是一个 golang 的缓存库, 用于缓存 k, v 对, 缓存时间过期后存储的值会失效, 底层是一个 map, 过期后内部 Item 是不会自动清除, 需要手动调用DeleteExpired 方法清除过期项 安装 go get github.com/patrickmn/go-cache 使用方法 // 创建Cache对象, 第一个参数为缓存时间, 第二个参数为清理缓存项的时间间隔 // 底层是一个 map, 键是 string, 值是 Item mu是互斥锁, 用于保护items的并发访问 onEvicted是删除缓存项时的回调函数, 当缓存项过期时, 会调用该函数 janitor是清理缓存项的定时器 c.mu.Unlock() } 设置写锁,防止多个 goroutine 同时修改一个 item, 然后设置过期时间 这就是 go-cache 库, 主要用于单机缓存,底层是一个 map, 使用RWMutex 锁控制读写和time.Now().Add(d).UnixNano()设置过期时间, 基于本地内存 , 如果需要分布式缓存, 可以考虑使用 redis 等其他缓存

    42811编辑于 2025-07-04
  • 来自专栏兜兜毛毛

    MyBatis 缓存5

    跟Hibernate一样,Mybatis也有一级缓存、二级缓存,并预留了集成第三方的缓存接口。 除了基础缓存之外,MyBatis也定义了很多装饰器,同样实现了Cache接口,通过这些装饰器可以额外实现很多功能。 ? 所有缓存可以分为三大类:基本缓存、淘汰算法缓存、装饰器缓存。 策略缓存缓存达到上限时,删除最先入队的缓存 evication="FIFO" SoftCache \ WeakCache 带清理策略的缓存 通过JVM的软引用和弱引用来实现缓存,当JVM内存不足时 事务缓存 在二级缓存中使用,可一次存入多个缓存,移除多个缓存 在TransactionalCacheManager中用Map维护对应关系 一级缓存 一级缓存也叫本地缓存(Local Cache),MyBatis 而一级缓存是在SqlSession内部的,所以肯定是工作在一级缓存之前,也就是只有取不到二级缓存的情况下才到一个会话中去取一级缓存。 二级缓存是在哪里维护的呢?

    65720发布于 2021-04-19
  • 来自专栏一个执拗的后端搬砖工

    springboot(5)--缓存

    它具有内存和磁盘存储,缓存加载器,缓存扩展,缓存异常处理程序,一个gzip缓存servlet过滤器,支持REST和SOAP api等特点。 Object queryUser(@PathVariable("id") Long id) { return this.userService.findById(id); } } 5. springboot2.0.5依赖的基础库是spring5.x,而spring5中已经取消了对guava缓存的支持。 1.添加caffeine依赖 <! spring.cache.caffeine.spec=initialCapacity=50,maximumSize=500,expireAfterWrite=100s,refreshAfterWrite=5s : @Configuration public class CaffeineConfiguration { /** * 必须要指定这个Bean,refreshAfterWrite=5s

    65910发布于 2020-11-19
  • 来自专栏开源部署

    CentOS 5.x单机安装Hadoop

    一、JDK安装 我的系统的CentOS 5.X的linux distribution, 要安装Hadoop,首先要配置好JAVA环境,这个相对简单,下载JDK,我下载的是jdk-8u20-linux-x64 第5步:启动单词统计程序 执行命令 hadoop jar /usr/local/hadoop/hadoop-1.2.1/hadoop-examples-1.2.1.jar wordcount in out 65972.htm [4]  http://www.oracle.com/technetwork/java/javase/downloads/jdk8-downloads-2133151.html [5]

    34110编辑于 2022-07-03
  • 来自专栏Java实战博客

    5、Openresty本地缓存

    Openresty本身也支持开辟内存添加共享缓存的空间,操作api与redis一致 本地缓存的作用 减少查询redis、mysql的操作,实际redis也很快,但是毕竟有网络开销。 本地缓存会更快一些! so;;"; # ① 开启本地共享缓存,会占用内存:150mb 缓存名mycache,自定义 lua_shared_dict mycache 128m; # 在这里配置 也就是不会超时 ngx.say('缓存设定成功!') -- 读取数据 local name = getCache:get('name') ngx.say('第二次读取本地缓存!' ,name) -- 删除数据 --getCache:delete('name') -- 特别说明 -- 1、重载配置文件,缓存不会消失 -- 2、nginx重启才会删除缓存数据 特殊说明: 以上文章

    1.4K20编辑于 2022-08-24
  • 来自专栏天天

    H5缓存

    1.sessionStorage <script type="text/javascript"> var txt = document.querySelector('input'); var btns = document.querySelectorAll('button'); //存储数据 btns[0].onclick=function(){ sessionStorage.setItem('userName',txt.value); ses

    1.3K10发布于 2018-09-29
  • 来自专栏漫漫架构路

    5. 缓存模块

    缓存概述 对于缓存功能,相信大家都十分熟悉了。一旦我们发现系统的性能存在瓶颈需要优化时,可能第一时间想到的方式就是加缓存。 MyBatis 内部有所谓的一级缓存和二级缓存,这个会在后面的章节中详细阐述,本次仅讨论缓存的内部实现。 MyBatis 缓存定义 我们首先来看下 MyBatis 的 Cache 接口,它定义了缓存的基本行为: /** * MyBatis缓存接口 */ public interface Cache { 设置缓存内的元素数量上限为 512 个。 缓存淘汰策略是 LRU。 需要每隔 60s 需要对缓存进行清空。 小结 本篇详细介绍了 MyBatis 缓存模块的底层原理,包括缓存的基础实现、具备各种扩展功能的缓存装饰器,以及缓存 Key 的设计思想。

    39820编辑于 2023-10-12
  • 来自专栏Web 技术

    缓存】HTML5缓存的那些事

    ; 数据库:mySql\mongoDB…关系\非关系数据库; 内存:通常放置频繁要使用到的东西,能够提高读取效率;缓存(cache)也是存放在内存里的; HTML的存储-cookies 在HTML5出生之前 HTML的存储-UserData 只有IE支持,有微软提供API,但不符合W3C标准; 存储在XML文件中; HTML5的存储 针对以上问题,HTML5的出现,需要解决以下问题: 解决4K的大小问题; 解决请求头常带存储信息的问题; 解决关系型存储的问题; 跨浏览器平台问题; ##HTML5存储形式 本地存储——localstorage \sessionstorage 离线缓存——application v=1会被认为是不同文件,分别缓存; app cache适用场景 单地址页面 对实时性要求不要的业务 离线web应用 总结 在实际应用中,我们需要根据业务的需要来采取相应的缓存措施,如上所述,html5 关于HTML5缓存我们就介绍到这里。 参考 HTML5之IndexedDB使用详解

    1.3K50编辑于 2023-10-07
  • 来自专栏Throwable's Blog

    Redis5.x单机服务搭建手记

    Redis5.x之后,单机、哨兵、集群搭建的难度已经简化。 鉴于目前看到太多文章都是复制粘贴以往一些3.x版本的一些内容,所以打算基于当前Redis的最新版本做一次单机、哨兵和集群的搭建,记录一下过程步骤和遇到的问题。 编写本文的时间是2019年10月5日(国庆假期…),当前Redis的最新版本为5.0.5。操作系统用的是虚拟机里面安装的CentOS 7。 小结 如果属性Linux的相关命令,Redis单机服务搭建是比较简单的。Redis服务的配置文件中配置项极多,一时间不可能全部列出,但是常用的配置必须清楚其的作用。 下一篇文章会详细介绍Redis5.x的哨兵搭建过程以及遇到的问题。 (本文完 c-1-d e-a-20191005)

    60110发布于 2020-06-23
  • 来自专栏人人都是架构师

    Go每日一库之81:go-cache(单机缓存库)

    go-cache https://github.com/patrickmn/go-cache 一句话描述 基于内存的 K/V 存储/缓存 : (类似于Memcached),适用于单机应用程序 简介 go-cache 基于内存的 K/V 存储/缓存 : (类似于Memcached),适用于单机应用程序 ,支持删除,过期,默认Cache共享锁, 大量key的情况下会造成锁竞争严重 为什么选择go-cache? /go-cache" ) type MyStruct struct { Name string } func main() { // 设置超时时间和清理时间 c := cache.New(5* int64 // 过期时间:设置时间+缓存时长 } // Cache 整体缓存 type Cache struct { *cache } // cache 整体缓存 type cache struct } // janitor 定时清空缓存的结构 type janitor struct { Interval time.Duration // 多长时间扫描一次缓存 stop chan

    5.6K40编辑于 2023-09-30
  • 来自专栏Micro_awake web

    HTML5 Web缓存&运用程序缓存&cookie,session

    在介绍HTML5 web缓存前,来认识一下cookie和session: session: 由于HTTP是无状态的,你是谁?你干了什么?抱歉服务器都是不知道的。 HTML5 web存储支持情况: IE8以上,现代浏览器。 HTML5运用程序缓存(Application Cache): 通过创建cache manifest文件,web运用可被缓存,并且无网络状态可以进行访问! Manifest文件: manifest是简单的文本文件,它告知浏览器被缓存的内容以及不被缓存的内容! manifest可分为三部分: CACHE MANIFEST:此项列出的文件将在首次下载后进行缓存! NETWORK:此项列出的文件需要与服务器进行网络连接,不会被缓存

    2.8K70发布于 2018-01-11
  • 来自专栏逸鹏说道

    探索ASP.NET MVC5系列之~~~5.缓存篇(页面缓存+二级缓存

    dunitian/p/4822808.html#mvc 本章Demo:https://github.com/dunitian/LoTCodeBase/blob/master/NetCode/6.网页基础/BMVC5/ MVC5Base/Controllers/CacheController.cs 这次来篇放松的,咱们不要老是说安全相关的东西。 缓存这东西并不是MVC独有的,N年前就有了,简单介绍一下平时项目里面使用的(Redis,Memcache等下次说) 1.页面缓存: ? 2.3数据库依赖缓存 1.启动一下数据库缓存依赖:管理员身份打开VS开发人员命令(参数详解:https://msdn.microsoft.com/zh-cn/library/ms229862) aspnet_regsql ,当里面数据发生改变则缓存失效,这样就可以及时自动更新缓存了(我这边只是做个演示) ?

    1.2K50发布于 2018-04-11
  • 来自专栏技术博文

    H5缓存机制浅析

    1 H5 缓存机制介绍 H5,即 HTML5,是新一代的 HTML 标准,加入很多新的特性。离线存储(也可称为缓存机制)是其中一个非常重要的特性。 H5 引入的离线存储,这意味着 web 应用可进行缓存,并可在没有因特网连接时进行访问。 根据标准,到目前为止,H5 一共有6种缓存机制,有些是之前已有,有些是 H5 才新加入的。 还有,浏览器,如 X5,在使用缓存文件时,是没有对缓存文件内容进行校验的,这样缓存文件内容被修改的可能。 分析发现,浏览器的缓存机制还不是非常完美的缓存机制。 在实际应用中,为了解决 Cache-Control 缓存时长不好设置的问题,以及为了”消灭304“,Web前端采用的方式是: 在要缓存的资源文件名中加上版本号或文件 MD5值字串,如 common.d5d02a02

    2.3K80发布于 2018-04-16
  • 来自专栏前端大白专栏

    HTML5离线缓存技术

    原理和环境 如上面提到的HTML5的离线存储是基于一个新建的.appcache文件的,通过这个文件上的解析清单离线存储资源,这些资源就会像cookie一样被存储了下来。 就像cookie一样,html5的离线存储也需要服务器环境。 这里提供一个小工具——简易iis服务器,把它放在项目更目录下,双击运行即可模拟服务器环境。 : * FALLBACK 下面的 FALLBACK 小节规定如果无法建立因特网连接,则用 "offline.html" 替代 /html5/ 目录中的所有文件: ALLBACK: /html5/ /404 缓存立即执行 我们的产品已经更新了用户却要第二次进来才能够看到,这样用户体验也太差了吧,有什么方式能够解决呢?好在html5给javascript提供了相关的API。 注意事项 站点离线存储的容量限制是5M 如果manifest文件,或者内部列举的某一个文件不能正常下载,整个更新过程将视为失败,浏览器继续全部使用老的缓存 引用manifest的html必须与manifest

    4.4K70发布于 2018-06-15
  • HTML5 应用程序缓存

    使用 HTML5,通过创建 cache manifest 文件,可以轻松地创建 web 应用的离线版本。 注意:manifest 的技术已被 web 标准废弃,不再推荐使用此功能。 什么是应用程序缓存(Application Cache)? HTML5 引入了应用程序缓存,这意味着 web 应用可进行缓存,并可在没有因特网连接时进行访问。 HTML5 Cache Manifest 实例 下面的例子展示了带有 cache manifest 的 HTML 文档(供离线浏览): 实例 <! : NETWORK: * FALLBACK 下面的 FALLBACK 小节规定如果无法建立因特网连接,则用 "offline.html" 替代 /html5/ 目录中的所有文件: FALLBACK 为了确保浏览器更新缓存,您需要更新 manifest 文件。 注意: 浏览器对缓存数据的容量限制可能不太一样(某些浏览器设置的限制是每个站点 5MB)。

    18310编辑于 2025-12-16
  • 来自专栏修己xj

    使用 Docker Compose 部署单机版 Redis:简单高效的数据缓存与存储

    今天我们来介绍如何使用 docker-compose 部署单机版 Redis,这是一个简单高效的数据缓存与存储解决方案,广泛应用于Web应用、移动应用以及各类数据处理场景。 Redis(Remote Dictionary Server的缩写)是一个开源的内存数据存储系统,它可以用作数据库、缓存和消息中间件。 分布式:虽然本文介绍的是单机版 Redis,但 Redis 本身支持分布式部署,能够满足大规模应用的需求。 volatile-ttl 或 noeviction # maxmemory-policy noeviction # 设置允许最大使用内存的比例(默认:0),设置为 0 表示禁用 # maxmemory-samples 5 Redis 作为一个简单高效的数据缓存与存储解决方案,适用于各种不同规模的应用场景。 希望本文对你理解并使用 Redis 与 Docker Compose 有所帮助。

    9.5K40编辑于 2023-08-25
  • 来自专栏波波烤鸭

    mybatis教程5(延迟加载和缓存)

    缓存 缓存简介:   缓存(Cache )是计算机领域非常通用的概念。 因此,缓存是通过软件和硬件共同实现的 作用:降低访问数据源【数据库】频率 3.1缓存分类 类别 说明 一级缓存 事务范围:缓存只能被当前事务访问。 缓存的生命周期依赖于事务的生命周期当事务结束时,缓存也就结束生命周期。在此范围下,缓存的介质是内存。 二级缓存 进程范围:缓存被进程内的所有事务共享。 这些事务有可能是并发访问缓存,因此必须对缓存采取必要的事务隔离机制。缓存的生命周期依赖于进程的生命周期,进程结束时,缓存也就结束了生命周期。 缓存中的数据被复制到集群环境中的每个进程节点,进程间通过远程通信来保证缓存中的数据的一致性,缓存中的数据通常采用对象的松散数据形式 MyBatis支持1级缓存和2级缓存,在实际开发中,实际上很少使用到

    63430发布于 2019-04-02
  • 来自专栏ascii0x03的安全笔记

    HTML5离线缓存攻击测试

    攻击者可以访问本目录的demo_html.appcache获得缓存文件,在同名文件加入自己的恶意代码(这里是弹出hacked对话框),利用DNS欺骗、中间人等方式,这里将HOSTS文件更改为192.168.1.154 通过两次更新manifest文件,让用户缓存恶意页面并使其manifest文件与合法网站保持一致,如图所示。 ? 通过Wireshark抓包可以看到,浏览器仅仅请求了demo_html.appcache,离线缓存攻击成功。注意在实验时需要排除浏览器本身缓存的影响,仅仅刷新页面会收到服务器返回的304响应。 由于时间有限,并没有用爬虫去找使用了HTML5离线缓存的网站,仅仅做了这种攻击的验证实验,若有大家可以推荐几个来测试。 主页htm: <!

    2.1K90发布于 2018-04-12
  • 来自专栏王二麻子IT技术交流园地

    H5的离线缓存技术

    HTML5的离线存储是基于一个新建的.appcache文件的缓存机制(不是存储技术),通过这个文件上的解析清单离线存储资源;把需要离线存储在本地的文件列在一个manifest配置文件中。 下面的例子中,如果无法建立因特网连接,则用 "404.html" 替代 /html5/ 目录中的所有文件。 FALLBACK: /html5/ /404.html 下面的例子中,当任何页面无法访问时跳转到 "404.html"页。 html5中引入了js操作离线缓存的方法,可以通过js代码手动更新本地缓存。 /**  * webapp  *   * 使用HTML5编写的移动Web应用,一个webapp几乎可以不加修改的运行在PC/Android/iOS等。  

    1.2K20编辑于 2023-07-18
  • 来自专栏程序猿的大杂烩

    HTML5缓存和GPS定位

    HTML5缓存 我们在访问网站的时候,会从网站服务器中下载很多数据,其中包括css文件、图片文件、js文件、音频文件等等,有时候一个页面这种零零散散的文件就要下载上百个,可以打开浏览器的开发者工具,点击 在html5中提供了两种在客户端存储数据的新方法localStorage和sessionStorage ,并且html5还支持内嵌在浏览器中的WebSQL数据库,下面就介绍一下这三种存储数据的使用方式。 应用缓存 在HTML5中引入了应用程序缓存,这意味着 web 应用可进行缓存,并可在没有因特网连接时进行访问。 在html5中如果需要启用应用程序缓存,需要在文档的 <html> 标签中写上 manifest 属性,并指定appcache文件的路径。 接下来做个实验,看看能不能缓存文件: ? 运行结果: ? 这就是如何使用html5中的应用缓存的简单介绍。

    3.2K20发布于 2020-09-23
领券