a6266318 发表于 2018-12-25 08:32:18

memcached小技巧

  确 定性缓存对于某些特定数据库的全部内容,都缓存到memcached,有一个专门的应用服务来保障你要的数据都在memcached中,其他应用服务直接 从memcached中获取数据而不去取数据库,因为数据库已经全部保存到memcached中并保持同步。主要应用在:
  1.读取伸展,所有的读取都从memcached中获得,数据库没有负载
  2.”永不过期“(相对的)的数据,比如行政规划数据,变动很小吧
  3.经常调用的内容
  4.用户的认证信息
  5.用户的概要信息
  6.用户的参数设置
  7.用户当前常用的媒体文件列表,比如用户的图片
  8.用户登录,不走数据库,只走memcached(个人觉得这个不太好,登录信息还是需要持久化的,用类似BDB这样效果也不错)
  使用方式:
  1.多个专门的缓存池而不是一个大的缓存服务器,多个缓存池保障了高可用性,一个缓存实例挂掉了走其他的缓存实例,所有的缓存实例挂掉了,走数据库(估计数据库抗不住^_^)
  2.所有的缓存池都用程序来维护,比如数据库有更新时,程序自动把更新后的内容同步到多个缓存实例中
  3.服务器重启之后,缓存要比网站先启动,这就意味着当网站已经启动了,所有的缓存都可用
  4.读取的请求可以负载均衡到多个缓存实例中去,高性能,高可靠性
  潜在的问题:
  1.你需要足够多的内存来存储那么多的数据
  2.数据以行记录数据,而memcached以对象来存储数据,你的逻辑要把行列的数据转换成缓存对象
  3.要维护多个缓存实例非常麻烦,Fotolog用Java/Hibernate,他们自己写了个客户端来轮询
  4.管理多个缓存实例会增加应用程序的许多开销,但这些开销相对于多个缓存得到的好处来说算不了什么

页: [1]
查看完整版本: memcached小技巧