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");
}