老男人百科 > 百科 > 正文

哔哩哔哩缓存的视频怎么转换成mp4电脑(联网缓存清理后会不会影响手机使用)

2023-04-26 17:43:10 阅读( 5593)

很多人都知道什么叫缓存,甚至学习过,但用起来还真难用。

很多人都知道缓存是什么,甚至都研究过,但是真的很难用。经过几天的学习,cache想和大家分享讨论。

我带着问题学习。缓存用在什么地方,有什么好处。

缓存是将获取的数据暂时存储在缓存中,当获取的数据没有发生变化时,仍然使用缓存中的内容。可能有人会问,如何判断获得的数据没有变化?这个后面会说。通过这种方式,从缓存中获取数据要快得多,但数据需要不时更改。

和博客花园里的博客列表一样,基本保持不变。虽然数据变化不大,但是大家在这个页面上浏览的东西都是一样的,为什么要用缓存呢?直接从这个页面生成html,打开速度会比使用缓存快。

当一个页面既有公共部分(每个人浏览的都一样)又有个性化部分(自己的信息)。比如当当网上有一个购物车。当你逛完之后,最下面的单子上有推荐的商品(可能一天换一次)。当然,推荐的产品和你买的产品有关。

此时无法生成Html,因为不是每个人浏览这个页面的方式都一样,只有当用户购买的产品与推荐的产品相关时。此时,该推荐产品的数据应该存储在缓存中。当然,这个缓存的关键价值与购买的产品有关。

只要你买的产品和推荐的产品相关(有关系在里面),就可以把东西缓存起来。

比如你买书的时候,会给你推荐其他的好书。这时候买书的推荐书都是一样的,推荐电脑的缓存也是一样的。如果你买电脑,你可能会向你推荐各种好电脑。这时候调用推荐电脑的缓存。

上面可能讲了缓存用在什么地方。当然我只知道这种情况,可能还有其他情况。那个人知道,可以评论。

缓存的好处当然是减轻服务器的负担,加快浏览速度。但是,如果缓存没有用好,数据可能会过时,或者相反,浏览和阅读会变慢。(缓存频繁变化的数据时)

缓存有客户端缓存和服务器端缓存吗?

两者都有,只是客户端缓存嵌入在浏览器中,浏览器基本上自动处理缓存。

客户端缓存可以有效降低服务器端的负载。首先了解一下HTTP头:Last-Modified和If-Modified-Since。简单来说,

Last-Modified和If-Modified-Since都是用于记录页面上次修改时间的HTTP头信息,但是Last-Modified是服务器发送给客户机的HTTP头。

而If-Modified-Since是由客户端发送给服务器的头实现的。

浏览器如何使用缓存可以在浏览器中设置。通常,默认为自动。操作步骤如下:

工具-》互联网选项-通用-设置-较新版本的Check网页中有四个选项控制缓存的使用。

当然,代码可以控制客户端缓存,例如,下面的代码可以用来比你想要的浏览器缓存。

Html禁用客户端缓存。

C#中禁止缓存的方法!

我对客户端缓存了解太少,我们写程序的时候很少写客户端缓存。希望有人能提供更多关于客户端缓存的信息。

There is a system in the server cache. Web. Caching.cahe and memcached

当然System.Web.Caching.cahe是微软写的类,而memcached是第三方插件。System.Web.Caching.cache目前还不是分布式缓存,只能在一台电脑上(07时候),而

memcached是分布式的高速缓存。

服务器缓存可分为三种缓存

1.输出缓存:

要实现页面输出缓存,只要将一条OutputCache 指令添加到页面即可。

%@ OutputCache Duration='60' VaryByParam='*' %

如同其他页面指令一样,该指令应该出现在ASPX 页面的顶部,即在任何输出之前。它支持五个属性(或参数),其中两个是必需的。

Duration

必需属性。页面应该被缓存的时间,以秒为单位。必须是正整数。

Location

指定应该对输出进行缓存的位置。如果要指定该参数,则必须是下列选项之一:Any、Client、Downstream、None、Server 或ServerAndClient。

VaryByParam

必需属性。Request 中变量的名称,这些变量名应该产生单独的缓存条目。“none” 表示没有变动。“*” 可用于为每个不同的变量数组创建新的缓存条目。变量之间用“;” 进行分隔。

VaryByHeader

基于指定的标头中的变动改变缓存条目。

VaryByCustom

允许在global.asax 中指定自定义变动(例如,“Browser”)。

2.片段缓存:

示例

%@ OutputCache Duration='60' VaryByParam='*' % 该示例将缓存用户控件60秒,并且将针对查询字符串的每个变动、针对此控件所在的每个页面创建单独的缓存条目。

%@ OutputCache Duration='60' VaryByParam='none'

VaryByControl='CategoryDropDownList' % 该示例将缓存用户控件60秒,

并且将针对CategoryDropDownList控件的每个不同的值、针对此控件所在的每个页面创建单独的缓存条目。

%@ OutputCache Duration='60' VaryByParam='none' VaryByCustom='browser'

Shared='true' %

最后,该示例将缓存用户控件60秒,并且将针对每个浏览器名称和主要版本创建一个缓存条目。然后,每个浏览器的缓存条目将由引用此用户控件的所有页面共享(只要所有页面都用相同的ID引用该控件即可)。

3编程用得最多的缓存:数据缓存

System.Web.Caching.cahe被httpRuntime.Cache或HttpContext.Current.Cache实例化。httpRuntime.Cache,

HttpContext.Current.Cache是内置对象就想当与seesion。

HttpContext.Current.Cache与HttpRuntime.Cache区别:

HttpContext.Current.Cache:为当前HTTP 请求获取Cache对象。 HttpRuntime.Cache:获取当前应用程序的Cache。

HttpContext.Current.Cache是调用了HttpRuntime.Cache,且HttpContext.Current.Cache是用在web程序上,

而HttpRuntime.Cache是用在任何程序上。System.web命名空间下。

其实HttpContext.Current.Cache是通过HttpRuntime.Cache来实现的,所以一般实例化最好通过HttpRuntime.Cache来实例化:

例如:System.Web.Caching.Cache cache=HttpRuntime.Cache

System.Web.Caching.Cache有很多方法,但方法中add中是存缓存

参数中有缓存时间,依赖项。

缓存时间即到当缓存的东西达到指定时间就让缓存失效,而依赖项是当依赖项发生变化就会使缓存失效。

依赖项有一般依赖项CacheDependency和数据库依赖项SqlCacheDependency。

虽然CacheDependency类完成了很重要的功能,但其组成结构却比较简单,主要有两个属性和一个方法。

— 属性“HasChanged”:判断CacheDependency对象是否已更改。

— 属性“UTCLastModified”:返回上次依赖项的修改日期

— 方法“Dispose”:释放CacheDependency对象所占有的资源。因为缓存类继承了接口“IDispose”,所以必须实现此方法。

CacheDependency

例如Cache.Insert(“key”, myXMLFileData, DateTime.Now.AddMinutes(1),new

System.Web.Caching.CacheDependency(Server.MapPath(“users.xml”)));

users.xml文件就相当一般依赖项,当xml文件被改了,则此缓存失效。

SqlCacheDependency一般是增对数据库的,这个设置需要在config里设置,而且还要启动数据库的这样服务。

Cache.Insert 中可设置跟数据库中那个表关联,一旦表有变化就会导致cache失效。

可到网上查询如何使用

专题页