memceached

来源:互联网 发布:网络语废鱼是什么意思 编辑:程序博客网 时间:2024/06/04 18:43

memcached介绍

http://baike.baidu.com/view/794242.htm

 

http://www.oschina.net/p/memcached

 

使用缓存的9大误区

http://www.infoq.com/cn/articles/misunderstanding-using-cache-2

http://www.infoq.com/cn/articles/misunderstanding-using-cache

 

Memcached在大负载高并发网站上的应用

http://www.kuqin.com/web/20090301/37221.html

 

memcache的最佳实践方案。

http://www.blogjava.net/chhbjh/archive/2012/02/21/370472.html

 

对memcached使用的总结和使用场

http://blog.csdn.net/ajun_studio/article/details/6745791

 

http://www.open-open.com/lib/view/open1340192263424.html

 

为什么不使用Memcached

http://xiemingmei.iteye.com/blog/1113474

 

让memcached和mysql更好的工作

 

http://blog.sina.com.cn/s/blog_6f78e9030100xx9p.html

 

==========================

使用memcached一定要注意链接,如同数据库的链接一样,网络链接才是最耗性能的。并且这里执行了10次.

缓存相当于内存数据库,但却没有查询功能,所以只能全部数据。
缓存可写可读,可更新。
除磁盘与内存的读写区别外,没有其它的区别,网络一样,所以sql需要注意的地方,memcached也需注意。
memcached减轻sql数据库的部分压力,将复杂的计算的结算临时保持,减少cup计算量。
数据库的读也带有自已的cache

memcached不支持验证,不互相通信的分布式,客户查做查找表。(循环冗余校验,当表格满了以后,接下来新增的资料会以LRU机制替换掉)
memcached服务器放置在防火墙后,指定ip可访问,服务器来控制

 

数据库的读写分离,并发量高的优化。

 

 

=============================

Memcached的是什么?

自由和开放源码的,高性能的,分布式的内存对象缓存系统 ,通用性的,但用于加快动态Web应用程序,减轻数据库负载。

Memcached是一个key-value存储在内存中的一小块一小块的任意数据(字符串,对象)从数据库调用,API调用,页面呈现的结果。

Memcached是简单而强大的 。 它的简单设计促进快速部署,易于开发,并解决了许多问题,面临着大量的数据高速缓存。 它的API是最流行 ​​的语言。

 

==========================

1.调整业务代码,提高命中率。减少数据库链接,提高并发性

2.减少链接次数

3.减少网络数据

4。序列化优化,关联类都会序列化,反射序列化的性能不高
5.内存不够,有三个思路:一是在CPU有余力的情况下开启压缩(PHP扩展);二是增加内存;三是调整 -f 参数,减少内存浪费

6.不要存储超过1m的数据。因为要拆成多个chunk,计算和时间成本都成倍增加

7。分布式缓存,网络缓存相对于数据库,网络速度没变,增加了序列化的过程,内容可能还大一些,只能io减少了,最大的作用减轻的数据的压力,支持并发性好一些,减少了与数据库的计算。

8.相对于本地缓存,内存更大,多个mc端得到一样的数据。

9.缓存简单的查询结果,且常用,如第一页的数据,防止重复数据

10.缓存简单的基于行的查询结果,页的数据是较多且多表。根据查询条件缓存,GTA

11.缓存计算量大的结算,模板,减少cpu

12.缓存的过头了,因为它增加了复杂性

13.订阅复制,使用memcached代替读操作

===================================================

本地缓存是引用,获取、更新都是本地引用

<asp:GridView ID="GridView1" runat="server" Width="100%" AutoGenerateColumns="true"> </asp:GridView>
 <asp:Button ID="btnInit" runat="server" Text="初始化" OnClick="btnInit_Click" />
<asp:Button ID="btnAdd" runat="server" Text="增加" OnClick="btnAdd_Click" />
<asp:Button ID="btnBind" runat="server" Text="绑定" OnClick="btnBind_Click" />
 <asp:Button ID="btnClear" runat="server" Text="清理" OnClick="btnClear_Click" />

 

   protected void Page_Load(object sender, EventArgs e)
    {
    }
    protected void btnInit_Click(object sender, EventArgs e)
    {
        ArrayList al = new ArrayList();
        Cache["TEST"] = al;
    }
    protected void btnAdd_Click(object sender, EventArgs e)
    {
        ArrayList al = (ArrayList)Cache["TEST"];
        al.Add(DateTime.Now);
        //Cache["TEST"] = al;
    }
    protected void btnBind_Click(object sender, EventArgs e)
    {
        this.GridView1.DataSource = (ArrayList)Cache["TEST"];
        this.GridView1.DataBind();
    }
    protected void btnClear_Click(object sender, EventArgs e)
    {
        Cache.Remove("TEST");
    }