zoukankan      html  css  js  c++  java
  • memcache 随笔

    第一次用可能有很多不足的地方  以后慢慢改进。

    memcache  是一个简单的键/值对    是通过键和值储存信息到memcache中 ,通过特定的键请求来返回信息。

    信息会无限期的保留在内存中 :除非发生以下情况

    1 为缓存 分配的内存耗尽,这是memcache 会使用 LRU(最近最少使用)的方法从此 缓存删除条目 最近未曾使用的条目会此缓存中  先删除,最旧的最先访问。

    2 条目被明显删除。

    3 条目过期失效。  ---  各个条目均有一个有效的期限   一遍针对此键的信息太陈旧

    在使用 memcached 时,

    尽量从缓存加载信息

    如果存在,使用信息的被缓存版本

    如果它不存在:

      1执行一个或多个查询来从数据库加载信息

      2格式化适合于显示或进一步处理的信息

      3将信息存储到缓存内

      4使用格式化了的数据

    数据加载成为了至多三个步骤的一个过程,从缓存加载数据或从数据库(视情况而定)加载数据并存储在缓存内。

    当这个过程首次发生时,数据将正常地从数据库或其他数据源加载,然后再存储到 memcached 内。当下一次访问此信息时,它就会从 memcached 拉出,而不是从数据库加载,节省了时间和 CPU 循环。

    问题的另一个方面是要确保如果更改了要存储在 memcached 内的信息,在更新后端信息的同时还要更新 memcached 的版本。

    比如 修改了数据 :---

    更新数据库内的类别列表=----》格式化信息----》将信息存储到 memcached 内-》将信息返回至客户机;

    memcached 内的存储操作是原子的,所以信息的更新不会让客户机只获得部分数据;它们获得的或者是老版本,或者是新版本。

    填充并使用memcached

    get(key)  从储存的特定的键的memcache获得信息。  如果没有就返回错误

    set(key, value [, expiry]) — 使用缓存内的标识符键存储这个特定的值。如果键已经存在,那么它就会被更新。期满时间的单位为秒,并且如果值小于 30 天 (30*24*60*60),那么就用作相对时间,如果值大于 30 天,那么就用作绝对时间 (epoch)。

    add(key, value [, expiry]) — 如果键不存在就将这个键添加到缓存内,如果键已经存在就返回错误。如果您想要显式地添加一个新键而又不会因它已经存在而更新它,那么这个函数将十分有用。

    replace(key, value [, expiry]) — 更新此特定键的值,如果键不存在就返回一个错误。

    delete(key [, time]) — 从缓存中删除此键/值对。如果您提供一个时间,那么添加具有此键的一个新值就会被阻塞这个特定的时期。超时让您可以确保此值总是可以重新读取自您的数据中心。

    incr(key [, value]) — 为特定的键增 1 或特定的值。只适用于数值。

    decr(key [, value]) — 为特定的键减 1 或特定的值,只适用于数值。

    flush_all — 让缓存内的所有当前条目无效(或到期失效)

    安全性:

    为了确保最佳性能,memcached 并未提供任何形式的安全性,没有身份验证,也没有加密。这意味着对 memcached 服务器的访问应该这么处理:一是通过将它们放到应用程序部署环境相同的私有侧,二是如果安全性是必须的,那么就使用 UNIX® socket 并只允许当前主机上的应用程序访问此 memcached 服务器。

  • 相关阅读:
    day01
    ASP.NET 最全的POST提交数据和接收数据 —— (1) 用url传参方式
    Quartz.NET 入门,带C#实例
    asp.net 后台注册(调用)JS
    DataSet和List 泛型之间互相转换 (转载)
    .NET异步编程总结----四种实现模式
    VS2013 “未找到与约束 ContractName Microsoft.Internal.VisualStudio.PlatformUI.ISolutionAttachedCollectionService RequiredTypeIdentity Microsoft.Internal.VisualStudio.PlatformUI.ISolutionAttachedCollectionService 匹配的导出”
    Sql Server 删除所有表、视图、存储过程
    GPS定位,根据经纬度查询附近地点的经纬度-sql方法实现
    GPS定位,经纬度附近地点查询–C#实现方法
  • 原文地址:https://www.cnblogs.com/yhl664123701/p/4289453.html
Copyright © 2011-2022 走看看