缓存数据库Memcached

来源:互联网 发布:淘宝互踩 编辑:程序博客网 时间:2024/05/16 15:49

搭建过网站的人对memcached 这个缓存框架应该不会陌生,他作为能够缓存,查询结果,提高用户体验有非常好的效果。
它相当于网站方位数据库的中间层,当网站第一次方位同样的key的时候,会首先去memcached缓存框架中,查询是否key与之相等,如果相等则直接返回结果。
如果不想等,则去数据库进行查询,查询结束后,将此次查询放入到缓存框架中,等下次查询的时候,就会直接从内存中去数据,而不用访问数据库,减轻数据库的负担。
memcached 是一个完全的基于内存的缓存结果。
疑问1:当我们从memcached中取数的数据发生了改变怎么办。
这就要我们设计memcached的过期时间,并且是对那些要求不是时时更新的数据进行缓存查询,并且定时过期更新数据。如此就能解决这个问题。
疑问2:既然缓存全部是放在数据库中的,那么如果服务器重启的话,不是说,缓存中的内容久都没有了吗?
是的完全正确,如果应用重启了,就需要全部进行重新的缓存。这个也没有任何的问题,也只是第一次的时候比较慢,第二次查询就会变快了。
疑问3:他是分布式框架吗,那么不同的key value分布在不同的memcached服务器上吗,他的管理是通过怎样实现的呢?
他是通过hash函数进行每个key value的hash值的计算,从而通过不同的hash值进行不同的节点存储,我们在去数的时候也是通过hash值村出来的,
这个算法就是一致性hash算法。hash算法,就是将十分复杂的值,转化为简单的值,比如,不论多大的值,除以3然后取余数,则只可能有三种可能性,这就是一种hash算法。

0 0
原创粉丝点击