缓存服务器

(摘抄)HTTP 协议详解

て烟熏妆下的殇ゞ 提交于 2020-02-12 02:49:47
这个是从网上摘抄下来的,原文链接在最底下,原文写的比较详细,我这里只取了一部分自己想要的 什么是HTTP协议 协议是指计算机通信网络中两台计算机之间进行通信所必须共同遵守的规定或规则,超文本传输协议(HTTP)是一种通信协议,它允许将超文本标记语言(HTML)文档从Web服务器传送到客户端的浏览器 目前我们使用的是HTTP/1.1 版本 HTTP协议是无状态的   http协议是无状态的,同一个客户端的这次请求和上次请求是没有对应关系,对http服务器来说,它并不知道这两个请求来自同一个客户端。 为了解决这个问题, Web程序引入了Cookie机制来维护状态. Get和Post方法的区别   Http协议定义了很多与服务器交互的方法,最基本的有4种,分别是GET,POST,PUT,DELETE. 一个URL地址用于描述一个网络上的资源,而HTTP中的GET, POST, PUT, DELETE就对应着对这个资源的查,改,增,删4个操作。 我们最常见的就是GET和POST了。GET一般用于获取/查询资源信息,而POST一般用于更新资源信息. 我们看看GET和POST的区别 1. GET提交的数据会放在URL之后,以?分割URL和传输数据,参数之间以&相连,如EditPosts.aspx?name=test1&id=123456. POST方法是把提交的数据放在HTTP包的Body中.

listView加载显示图片(缓存)

浪尽此生 提交于 2020-02-11 19:50:52
我用的是异步加载图片的方式,并且使用了缓存的方式。 1、这是继承了AsyncTask<String, Void, Bitmap>的MyTask类,用异步加载图片 public class MyTask extends AsyncTask<String, Void, Bitmap> { private ImageView imageView; private LruCache<String, Bitmap> lruCache; /** * 构造方法,需要把ImageView控件和LruCache对象传进来 * * @param imageView * 加载图片到此 * @param lruCache * 缓存图片的对象 */ public MyTask(ImageView imageView, LruCache<String, Bitmap> lruCache) { super(); this.imageView = imageView; this.lruCache = lruCache; } /** * 调用LruCache的put 方法将图片加入内存缓存中,要给这个图片一个key 方便下次从缓存中取出来 * * @param key * @param bitmap */ private void addBitmapToMemoryCache(String key, Bitmap

高并发系统中的限流算法

拈花ヽ惹草 提交于 2020-02-11 15:52:49
在高并发系统时有三把利器用来保护系统: 缓存、降级和限流 ,本文将介绍一些限流的相关概念、算法和常规的实现方式。 缓存 缓存比较好理解,在大型高并发系统中,如果没有缓存数据库将分分钟被爆,系统也会瞬间瘫痪,使用缓存不单单能够提升系统访问速度,提高并发访问量,也是保护数据库、保护系统的有效方式,大型网站一般主要是“读”,缓存的使用很容易被想到。 在大型“写”系统中,缓存也常常扮演非常重要的角色,比如累积一些数据批量写入,内存里面的缓存队列(生产消费),以及HBase写数据的机制等等也都是通过缓存提升系统的吞吐量或者实现系统的保护措施,甚至消息中间件,你也可以认为是一种分布式的数据缓存。 降级 服务降级是当服务器压力剧增的情况下,根据当前业务情况及流量对一些服务和页面有策略的降级,以此释放部分服务器资源以保证核心任务的正常运行。降级往往会指定不同的级别,面临不同的异常等级执行不同的处理。根据服务方式,可以拒绝服务,可以延迟服务,有时候也可以随机服务。 根据服务范围,可以砍掉某个功能,也可以砍掉某些模块。总之服务降级需要根据不同的业务需求采用不同的降级策略,主要目的就是服务虽然有损但是总比没有好。 限流 常见的限流算法有:计数器、漏桶和令牌桶算法。 1.计数器 计数器是最简单粗暴的算法,比如某个服务最多只能每秒钟处理100个请求,我们可以设置一个1秒钟的滑动窗口,窗口中有10个格子

H5C3---H5-新增API

妖精的绣舞 提交于 2020-02-11 13:57:42
H5-新增API 全屏方法 HTML5规范允许用户自定义网页上任一元素全屏显示。 Node.requestFullScreen() 开启全屏显示 Node.cancelFullScreen() 关闭全屏显示 由于其兼容性原因,不同浏览器需要添加前缀如: webkit内核浏览器:webkitRequestFullScreen、webkitCancelFullScreen,如chrome浏览器。 Gecko内核浏览器:mozRequestFullScreen、mozCancelFullScreen,如火狐浏览器。 document.fullScreen检测当前是否处于全屏。 不同浏览器需要添加前缀 document.webkitIsFullScreen //webkit内核,如chrome浏览器 document.mozFullScreen //Gecko内核,火狐浏览器 多媒体 自定义播放器 方法 方法 描述 addTextTrack() 向音频/视频添加新的文本轨道 canPlayType() 检测浏览器是否能播放指定的音频/视频类型 load() 重新加载音频/视频元素 play() 开始播放音频/视频 pause() 暂停当前播放的音频/视频 属性 属性 描述 audioTracks 返回表示可用音轨的 AudioTrackList 对象 autoplay

Nginx 针对上游服务器缓存

半世苍凉 提交于 2020-02-11 04:40:09
L:99 nginx缓存 : 定义存放缓存的载体 proxy_cache 指令 Syntax: proxy_cache zone | off ; Default: proxy_cache off; Context: http , server , location proxy_cache_path 指令 定义磁盘哪个位置存放缓存文件 Syntax: proxy_cache_path path [ levels = levels ] [ use_temp_path = on | off ] keys_zone(共享内存名称) = name : size(共享内存大小) [ inactive = time ] [ max_size = size ] [ manager_files = number ] [ manager_sleep = time ] [ manager_threshold = time ] [ loader_files = number ] [ loader_sleep = time ] [ loader_threshold = time ] [ purger = on | off ] [ purger_files = number ] [ purger_sleep = time ] [ purger_threshold = time ]; Default: —

linux下怎么清理缓存

狂风中的少年 提交于 2020-02-11 02:14:29
free -m 命令可以查看内存使用情况 sysctl 命令可以临时改变某个系统参数 如:sysctl -w net.ipv4.ip_forward=1 是将forware参数临时改为1 当 service network restart后 失效. 我们在清理缓存前应该先 sync下 因为系统在操作的过程当中,会把你的操作到的文件资料先保存到buffer中去,因为怕你在操作的过程中因为断电等原因遗失数据,所以在你操作过程中会把文件资料先缓存。 所以我们在清理缓存先要先把buffe中的数据先写入到硬盘中,sync命令 上面的echo 3 是清理所有缓存 echo 0 是不释放缓存 echo 1 是释放页缓存 ehco 2 是释放dentries和inodes缓存 echo 3 是释放 1 和 2 中说道的的所有缓存 说明: 1>. /proc是一个虚拟文件系统,我们可以通过对它的读写操作作为与kernel实体间进行通信的一种手段。也就是说可以通过修改/proc中的文件,来对当前kernel的行为做出调整。也就是说我们可以通过调整/proc/sys/vm/drop_caches来释放内存。 0 – 不释放 1 – 释放页缓存 2 – 释放dentries和inodes 3 – 释放所有缓存 数字1是用来清空最近放问过的文件页面缓存 数字2是用来清空文件节点缓存和目录项缓存

视频CDN缓存

落爺英雄遲暮 提交于 2020-02-11 01:43:06
文章目录 视频特点 视频参数 码率调整 什么是码率调整 码率自适应技术 视频传输 基于HTTP的流媒体传输 CDN cache服务器 什么是CDN CDN形象比喻 CDN 文件系统&&缓存机制 视频+cache CDN实施技术 用户访问网站步骤 video quality delivered by individual CDNs can vary substantially across clients (e.g., across different ISPs or content providers) and also across time (e.g., flash crowds) [39, 37]. Similarly,because the video player has only a few seconds worth of buffering and the bandwidth could fluctuate significantly, we need to make quick decisions (e.g., future bitrates) based on the current client buffer level and bandwidth so that the buffer does not drain out [27]. 视频特点 -变化不大

分布式锁

懵懂的女人 提交于 2020-02-10 18:29:04
https://www.cnblogs.com/austinspark-jessylu/p/8043726.html 分布式锁的几种实现方式 目前几乎很多大型网站及应用都是分布式部署的,分布式场景中的数据一致性问题一直是一个比较重要的话题。分布式的CAP理论告诉我们“任何一个分布式系统都无法同时满足一致性(Consistency)、可用性(Availability)和分区容错性(Partition tolerance),最多只能同时满足两项。”所以,很多系统在设计之初就要对这三者做出取舍。在互联网领域的绝大多数的场景中,都需要牺牲强一致性来换取系统的高可用性,系统往往只需要保证“最终一致性”,只要这个最终时间是在用户可以接受的范围内即可。 在很多场景中,我们为了保证数据的最终一致性,需要很多的技术方案来支持,比如分布式事务、分布式锁等。有的时候,我们需要保证一个方法在同一时间内只能被同一个线程执行。在单机环境中,Java中其实提供了很多并发处理相关的API,但是这些API在分布式场景中就无能为力了。也就是说单纯的Java Api并不能提供分布式锁的能力。所以针对分布式锁的实现目前有多种方案。 针对分布式锁的实现,目前比较常用的有以下几种方案: 基于数据库实现分布式锁 基于缓存(redis,memcached,tair)实现分布式锁 基于Zookeeper实现分布式锁

Django面试集锦(1-50)

僤鯓⒐⒋嵵緔 提交于 2020-02-10 18:06:39
目录 1、Django ORM查询中select_related和prefetch_related的区别? 2、only与defer的用法? 3、Django ORM是什么? 4、Django创建项目命令? 5、Django创建项目后,项目文件下的组成部分?(对MVT的理解) 6、对MVC,MTV模型的理解? 6、Django中models利用ORM对Mysql进行查表的语句? 7、Django中间件的使用? 8、Django生命周期流程图? 9、谈一下对uWSGI和nginx的理解? 10、说一下nginx和uWISG服务器之间如何配合工作的? 11、Django开发中数据库做过什么优化? 12、验证码过期时间怎么设置? 13、python中三大框架各自的应用场景? 14、Django如何提升性能(高并发)? 15、什么是restful api,谈谈你的理解? 16、如何设计符合RESTful风格的API? 16、Django关闭浏览器,怎么清除cookies和session? 17、简述Django下的缓存机制? 18、对cookie和session的了解?他们能单独使用吗? 19、Django中QuerySet的get和filter方法的区别? 20、Django对数据查询结果排序的做法? 21、数据库的迁移命令? 22、uWSGI与uwsgi区别? 23

openresty使用redis作本地缓存

我怕爱的太早我们不能终老 提交于 2020-02-10 15:32:30
一,为什么要使用redis作本地缓存? 当使用openresty作为web服务器时,我们更看重是的它可以通过lua编程的扩展能力,就openresty而言,它可以实现的功能非常多, 提高响应速度是web服务中非常重要的功能, 使用缓存通常会有三层: 本地缓存:存在于本地机器上,直接通过nginx访问,避免网络io; redis cluster:存储更多的供lua访问的数据,也是通过nginx访问直接返回,相比前一层缓存,增加了网络io,但仍然避免了对业务系统的访问; 业务缓存:供运行在tomcat/php-fpm/go http中内的业务代码访问。 可以比较得到本地缓存是响应速度最快的,通常可以在10ms内对请求进行响应。 我们看到的很多经过优化的BAT等大厂的站点都能在极短时间内响应请求,就是经过了层层优化的结果。 二,这里会提供一个例子:使用redis做商品详情页的cache: 流程:当用户访问时, 先从redis中获取cache内容, 如果redis中不存在此value,则会改为访问后端业务系统获取cache 说明:在生产环境中,为方便更新,通常会采用redis的主从架构, 每台业务nginx上所配备的redis的数据能得到实时更新 说明:架构森林是一个专注架构的博客,对应的源码可以访问这里获取 https://github.com/liuhongdi/ 二