zoukankan      html  css  js  c++  java
  • Memcached介绍

      Memcached是一个高性能的分布式对象缓存系统,主要用于动态Web应用,以减轻数据库负载。它通过在内存中缓存数据和对象来减少读取数据库的次数,从而提高动态、数据库驱动网站的速度。Memcached基于一个存储键/值对的hashmap。Memcached解决了共享内存只能单击应用的局限,更不会出现使用数据库做类似的事情时候导致磁盘开销和阻塞的发生。

      1.为什么需要Memcached

        高并发访问数据库容易造成死锁

        基于客户端分布式,多客户端共享缓存

        Net+Memory>>IO

        读写性能完美:1s可以读取1万次,写10万次

        超简单集群搭建Cluster

        Open Source

        学习成本低,入门容易

           丰富的成功案例

      不足的是既没有提供主从复制功能,也没有提供容灾等功能,所有的代码基本都只是考虑性能最佳。

      2.适用Memcached的业务场景

        (1).如果网站包含了访问量很大的动态网页,那么数据库的负载将会很高。由于大部分数据库请求都是读操作,因此Memcached可以显著地减小数据库负载。

        (2).如果数据库服务器的负载比较低但cpu使用率很高,就可以缓存计算好的结果(computed objects)和渲染后的网页模板(enderred templates)。

        (3).利用Memcached可以缓存session数据、临时数据,以减少对它们的数据库写操作。

        (4).缓存一些很小但被频繁访问的文件。

      3.不适用Memcached的业务场景

        (1).缓存对象的大小大于1MB。

        (2).key的长度大于250字符。

        (3).虚拟主机不让运行Memcached服务。

        (4).应用运行在不安全的环境中。Memcached未提供任何安全策略,仅仅通过Telnet就可以访问到。如果应用运行在共享的系统上,需要着重考虑安全问题。

        (5).业务本身需要的是持久化数据或者说是database。  

      

  • 相关阅读:
    [原创]在Windows平台使用msvc(cl.exe) + vscode编写和调试C/C++代码
    几种动态调用js函数方案的性能比较
    z-index随笔
    [原]配置多个密钥免密码登录服务器简明教程
    [转]为 windows cmd 设置代理
    [原创]实现多层DIV叠加的js事件穿透
    [转]linux terminal中使用proxy
    [转]jquery中innerWidth(),outerWidth(),outerWidth(true)和width()的区别
    [转]React表单无法输入原因----约束性和非约束性组件
    [原创]aaencode等类似js加密方案破解方法
  • 原文地址:https://www.cnblogs.com/cherious/p/7056406.html
Copyright © 2011-2022 走看看