首页
学习
活动
专区
工具
TVP
发布
精选内容/技术社群/优惠产品,尽在小程序
立即前往

缓存 | 从本地缓存到分布式缓存, Guava, Caffeine, Memcached, Redis

本地缓存到分布式缓存 本文档中部分代码不保证可以运行 虽然标题为缓存,但在这里不仅仅会涉及缓存,还会涉及一些其他提高应用性能的方案。 在程序设计中,经常能听到的就是以时间换空间和以空间换时间。...,在单应用不需要集群支持或者集群情况下各节点无需互相通知的场景下使用本地缓存较合适;同时,它的缺点也是因为缓存跟应用程序耦合,多个应用程序无法直接的共享缓存,各应用或集群的各节点都需要维护自己的单独缓存...分布式缓存:指的是与应用分离的缓存组件或服务,其最大的优点是自身就是一个独立的应用,与本地应用隔离,多个应用可直接的共享缓存。...缺点是:优点也就是缺点,因为自身是一个独立的应用,本地节点都需要与其进行通信,导致依赖网络,同时如果缓存服务崩溃可能会影响所有依赖节点 对于一些单个实例的服务,或者数据基本不会变化的数据都可以使用本地缓存来提高性能...Guava Cache 是 Guava 中的一个本地缓存实现,基于LRU算法实现,并提供了多种缓存过期策略,过期时间、容量等.

1.6K71
您找到你想要的搜索结果了吗?
是的
没有找到

Emlog使用qq头像作为评论头像并缓存到本地

思路:先判断该条评论是否填写了邮箱,未填写则使用默认;若填写了,再判断其中是否含有“@qq.com”;然后去除“@qq.com”并判断余下的部分是否为qq号,是则获取相应的头像并缓存下来,否则使用Gravatar...php //blog-tool:头像缓存到本地 function myGravatar($email, $s = 40, $d = 'monsterid', $g = 'g'){ $f = md5...php //blog-tool:获取qq头像并缓存到本地 function eflyGravatar($email,$s = 40) { if(empty($email)){ $...然后在你当前模板文件夹下新建一个"avatar"空文件夹用于放置缓存下来的头像,在当前模板文件夹下的images文件夹中放一个“avatar.jpg”文件用作未填写邮箱时的默认头像。...>这个函数也行,也能将头像缓存到本地,但是用不了qq头像的哦!

23320

2015-2016前端架构体系技术精简版

device-width适应 retina屏幕适应 **em,rem原理与实现 **code4ui、code4app、初页、maka等 前端dom操作即使刷新前端页面 根据dom操作生成组件config配置保存到...db 根据config配置使用r.js或webpack打包 发布打包后输出文件 **css3动画 transform animation transiction 3D加速与动画加速 动画库 动函数速查表...alt属性 nofollow url优化 统一链接 301跳转 canonical robot优化 robots.txt meta robots sitemap SEO工具 各种站长工具等 **浏览器缓存种类...引擎 性能缺陷与内存泄露 更新机制 使用场景 **android/ios原生开发与框架 java oc、swift web与native交互 屏幕旋转 摇一摇 录像,拍照,选取本地图片 打电话,发短信...八、研究实验 **WebAssembly、webTRC、typescript **Material design规范的前端框架 交互动效库 **AMP-HTML规范 使用受限HTML以及缓存技术来提高移动网络中静态内容的性能

3.8K50

2015-2016前端架构体系技术精简版

device-width适应 retina屏幕适应  **em,rem原理与实现  **code4ui、code4app、初页、maka等 前端dom操作即使刷新前端页面 根据dom操作生成组件config配置保存到...db 根据config配置使用r.js或webpack打包 发布打包后输出文件  **css3动画 transform animation transiction 3D加速与动画加速 动画库 动函数速查表...alt属性 nofollow url优化 统一链接 301跳转 canonical robot优化 robots.txt meta robots sitemap SEO工具 各种站长工具等  **浏览器缓存种类...引擎 性能缺陷与内存泄露 更新机制 使用场景  **android/ios原生开发与框架 java oc、swift web与native交互 屏幕旋转 摇一摇 录像,拍照,选取本地图片 打电话,发短信...八、研究实验  **WebAssembly、webTRC、typescript  **Material design规范的前端框架 交互动效库  **AMP-HTML规范 使用受限HTML以及缓存技术来提高移动网络中静态内容的性能

3.2K20

干货 | 携程旅行App iOS工程编译优化实践

对于iOS而言,编译速度一直是影响iOS开发和集成测试效率关键的一环。...所以为了提高开发和测试的效率,提高iOS工程的编译速度刻不容。...工具下载Bundle时优先判断缓存,未命中时才开始下载并且缓存到repo中。 建立中央缓存还能带来其他好处:在发布平台做预缓存,使用定时任务更新中央缓存,进一步节省下载耗时。...针对不同使用场景需要采用不同的缓存清理策略,具体如下: 本地开发:该模式下,开发可以自由选择更新最新Bundle和仅更新配置,缓存使用不频繁。所以将同一Bundle版本个数调低,缓存有效期拉长。...框架团队为了提高iOS Build速度,通过自研的方案,做了拆分Bundle,优化头文件搜索路径,增量编译,建立中央缓存等步骤,基本上满足了现有我厂各业务线的日常开发需求。

75910

HTTP缓存策略

2.HTTP缓存 HTTP缓存就是将静态资源存储在客户端本地, 下次请求该资源时直接使用本地资源,而不必从服务端加载。 而当服务端的静态资源更新时,本地缓存资源也要更新。...2.1 强缓存策略 所谓强缓存策略即在静态资源有效期内,使用该资源时直接使用本地资源,不请求服务器。...强缓存验证.jpg HTML时间和JS时间不一致,说明强缓存生效。...鉴于上述强缓存的特点,强缓存的应用场景一般是用于需要定期更新的内容。 2.2 协商缓存 上面所述的强缓存会直接访问本地缓存,没过期的话不会请求服务器,直接使用本地缓存。........"); res.statusCode = 304; res.end(); return; } Etag协商验证.jpg Etag协商命中.jpg

52464

APP的webview碰到的一些坑

修改后的加载流程如下: 将HTML模板和CSS,JS资源全部缓存到本地。 Webview首先加载模板,然后JS调用原生接口请求动态内容。 APP获取到资讯后调用JS接口,然后进行页面渲染。...对于字符串中存在单引号,安卓不能正确传值 原因在于安卓调用js方法的方式。...字符串中存在特殊字符,导致调用JS方法失败 其实最开始也不知道这个是什么字符。后来通过一点点排查,发现这个特殊的换行符。...具体的解决方法我已经在这里 应用调用JS方法接收返回数据 因为安卓的原因,不知道为啥不不能接收数组,所以我将其转为json字符串。但是安卓说左右会多出两个双引号。...总结 其实我做这一套解决方案的时候,不仅仅是和安卓配合,还有跟IOS配合,有时候总是会出现安卓可以,IOS不行,或者反过来IOS可以,安卓不行的情况。 对于这种情况,需要学会具体分析。

1.7K20

H5秒开技术选型

本地服务器加载本地资源5.sonic技术方案:6.支付宝方案:7.爱奇艺方案:8.今日头条方案:1....安卓不需要自定义,而且只能支持iOS11。4. 起本地服务器加载本地资源描述:如果本地有资源可以满足该请求的话,H5 容器会使用本地资源。 如果没有可以满足请求的本地资源,H5 容器会使用线上资源。...加速访问离线预推:离线包方案并行加速:WebView的打开和资源的请求并行动态缓存:动态页面缓存在客户端,用户下次打开的时候先打开缓存页面,然后再刷新动静分离:为了提升体验,将页面分为静态模板和动态数据...8.今日头条方案:内置文章详情页所需的css、js等文件,并可以控制版本,预创建WebView预创建预加载包含文章详情页所需的css、js的空html在列表页预加载文章详情所需的内容使用LRU内存缓存并保存到本地数据库在文章详情页获取预创建的...WebView(预加载了html),直接调用js设置页面内容通过js控制图片的显示,图片懒加载(当图片在可见区域或即将可见才会加载图片),点击加载图片等 Html中的图片通过ContentProvider

1.1K40

【Web技术】276- WebView缓存原理分析和应用

Cache-Control:max-age=315360000,这表示缓存时长为315360000秒。如果315360000秒内需要再次请求这个文件,那么浏览器不会发出请求,直接使用本地缓存的文件。...LOAD_CACHE_ELSE_NETWORK,只要本地有,无论是否过期,或者no-cache,都使用缓存中的数据。本地没有缓存时才从网络上获取。...关于iOS的WebView,我同事在实际测试的时候竟然发现,控制文件缓存的Response Header是Expires字段。。...而且iOS无法针对整个WebView设置Cache Mode,只能针对每一个URLRequest去设置。。后续有机会要学习一下iOS那块的情况。...工作的原理:当一个设置了manifest文件的html页面被加载时,CACHE MANIFEST指定的文件就会被缓存到浏览器的App Cache目录下面。

1.3K30

H5的离线缓存技术

离线存储可以将站点的一些文件存储在本地,它是浏览器自己的一种机制,将需要的文件缓存下来在没有网络的时候可以访问到缓存的对应的站点页面,包括html,js,css,img等等文件在有网络的时候,浏览器也会优先使用已离线存储的文件...访问速度快:将文件缓存到本地,不需每次都从网络上请求。 稳定性:做了Manifest缓存,遇到突发网络故障或者服务器故障,继续访问本地缓存。...如何更新缓存 如下三种方式,可以更新缓存: 更新manifest文件 通过javascript操作 清除浏览器缓存 给manifest添加或删除文件,都可更新缓存,如果更改了js而没有新增或删除,可通过版本号...html5中引入了js操作离线缓存的方法,可以通过js代码手动更新本地缓存。.../**  * webapp  *   * 使用HTML5编写的移动Web应用,一个webapp几乎可以不加修改的运行在PC/Android/iOS等。

42220

可能是史上最全的weex踩坑攻略

[ext]' } } Step 2 那么现在我们将同级目录下的js文件夹与images文件夹放入native中, iOS中一般放入mainBundle, Android一般放入src/...main/assets, 接下来只要在imgloader接口中扩展替换本地资源路径的代码就ok了 iOS代码如下: - (id)downloadImageWithURL...api生成新版本的bundlejs 方案二 来自 @荔枝我大哥的补充 我们所有的jsBundle全部加载的线上文件,通过http头信息设置`E-Tag`结合`cache-control`来实现缓存策略...,最终效果就是,A.vue -> A.js, app第一次加载A.js是从网络下载下来并且保存到本地,app第二次加载A.js是直接加载的保存到本地的 A.js文件,线上A.vue被修改,A.vue -...> A.js, app第三次加载A.js时根据缓存策略会知道线上A.js 已经和本地A.js 有差异,于是重新下载A.js本地并加载.

94620

可能是史上最全的weex踩坑攻略

[ext]' } } Step 2 那么现在我们将同级目录下的js文件夹与images文件夹放入native中, iOS中一般放入mainBundle, Android一般放入src/...main/assets, 接下来只要在imgloader接口中扩展替换本地资源路径的代码就ok了 iOS代码如下: - (id)downloadImageWithURL...api生成新版本的bundlejs 方案二 来自 @荔枝我大哥的补充 我们所有的jsBundle全部加载的线上文件,通过http头信息设置`E-Tag`结合`cache-control`来实现缓存策略...,最终效果就是,A.vue -> A.js, app第一次加载A.js是从网络下载下来并且保存到本地,app第二次加载A.js是直接加载的保存到本地的 A.js文件,线上A.vue被修改,A.vue -...> A.js, app第三次加载A.js时根据缓存策略会知道线上A.js 已经和本地A.js 有差异,于是重新下载A.js本地并加载.

3.6K100

价值100W的经验分享: 基于JSPatch的iOS应用线上Bug的即时修复方案,附源码.

/blob/master/iOS122/iOS122/samples/JSPatchOnline/patch/YFPatchViewModel.m 如何在本地测试JS可用性 这个是必然要考虑的问题,一种方式是可以在工程中放一个...demo.js供Debug模式下调试;另一种方式是本地返回固定的假数据,但是假数据本身的 JS文件地址,md5,版本号等都是真实的. /** * 测试模式下,会执行此方法,以验证某个JS文件的作用....查: 会默认在应用启动时,执行所有存在,且md5值匹配的补丁.补丁集的信息,会在每次联网更新时更新.此处使用的是一个缓存库https://github.com/pinterest/PINCache 另外...用 RSA 私钥对 MD5 值进行加密,与JS文件一起下发给客户端。 客户端: 拿到加密数据,用 RSA 公钥解密出 MD5 值。 本地计算返回的 JS 文件 MD5 值。...对比上述的两个 MD5 值,若相等则校验通过,取 JS 文件保存到本地

1.4K100
领券