a.a 发表于 2013-03-25 11:01

对于memcache的理解

一直传闻memcache的高效可以大的降db的负载,刚才大致看了下其原理。我对其的理解发现memcache 其实倒更像是oracle的buffer!memcache将需要使用结果集或是变量放在内存里面并且使用的专门的进程进行管理。oracle将同一条(据说sql语句的MD5值判断是否相同)sql语句的查询结果存到buffer里面。所以其原理是相同的,都是将content放在内存里面。
    其不同点我的理解如下:
         1 对于内存的管理,oracle是由其数据库来完成相关管理工作;memcache呢,则是独立的memcache的进程来进行管理。
         2 如果使用memcache 的话需要对应用程序进行修改,将相关内容的管理使用memcache的api进行;oracle的话,则无须额外的api进行,直接进行代码开发就行。
    浅见,仅供参考。

maochanglu 发表于 2013-03-27 20:46

memcached
主要就是内存访问速度 大于 硬盘io速度。

a.a 发表于 2013-03-27 20:48

回复 2# maochanglu


    的确如此。只是oracle是自己管理,memcache相当于一个第三方管理。

gavindev 发表于 2013-04-20 19:06

新版mysql 也会支持memcached的

hbeimf 发表于 2013-04-20 23:20

回复 4# gavindev 是哪个版本会支持,有具体的版本号没,想玩玩,就知道 sql 和nosql早晚会集成在一起的,


   

cuphper 发表于 2013-04-21 10:41

lz确定看过memcached实现?

a.a 发表于 2013-04-21 20:34

回复 6# cuphper


    没有,只是大致看了些其实现。如有错误还请多多指点。没有怎么深入的去看。

网鬼 发表于 2013-04-22 18:23

memcached主要作用是降低数据库连接,减少数据库查询以分担数据库负载,其读写效率高主要是因为他的key->value存储及所有数据都是在内存中
对于数据库,其本身都会有一定的缓存机制,不过这种一般会考虑到内存资源限制及数据处理的复杂性,具有一定的局限性:lol

squarezhou 发表于 2013-04-22 20:33

Memcached就是一内存存储,通常用作缓存,跟DB的buffer完全两码事

cuphper 发表于 2013-04-22 20:36

to lz: 换个思路,如果没有db,怎么办?
页: [1] 2
查看完整版本: 对于memcache的理解