首页
|
公司简介
|
数据恢复
|
备份服务
|
成功案例
|
技术中心
|
客户服务
|
服务报价
|
数据恢复软件
|
联系我们
|
北亚博客
北京总部
: 4006-505-646
天 津 部
: 4006-505-646
上 海 部
: 4006-505-646
深 圳 部
: 4006-505-646
广 州 部
: 4006-505-646
重 庆 部
: 4006-505-646
南 京 部
: 4006-505-646
其它地区
: 4006-505-646
北亚数据恢复软件Windows专业版
三星手机数据恢复软件V1.0
北亚苹果手机数据恢复软件V2.0
北亚硬盘录像机数据恢复软件 V
北亚vmware虚拟机数据恢复软件
北亚照片数据恢复软件
北亚摄像机数据恢复软件 v2.1
北亚Sybase数据库修复软件 V2.
raid磁盘阵列应急方案
HP EVA4400/6400/8400/P6000
iphone 通讯录丢失如何恢复?
xen server 存储库(sr)损坏后
RAID6结构原理详解(北亚数据
AIX下删除LV后的现场保护和数
RAID损坏后 对数据的完整备份
您当前的位置:
首页
>>
技术中心
>>
数据库修复文栏
>> 正文
让memcached和mysql更好的工作
2.sessions会话,Flickr把session存在数据库中,个人感觉还是存memcached比较“便宜”些,如果memecached服务器down掉了,那么重新登录吧。
3.记录用户在线信息(我们也是这样做的)
确定性缓存对于某些特定数据库的全部内容,都缓存到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.管理多个缓存实例会增加应用程序的许多开销,但这些开销相对于多个缓存得到的好处来说算不了什么
主动缓存数据魔法般的出现在缓存中,当数据库中有更新的时候,缓存立马填充,更新的数据被调用的可能性更高(比如一篇新文章,看的的人当然多),是非确定性缓存的一种变形(原文是It’s non-deterministic caching with a twist.我觉得这样翻译怪怪的)。主要应用在:1.预填充缓存:让memcached尽可能的少调用mysql如果内容不展现的话。
2.“预热”缓存:当你需要跨数据中心复制的时候
使用步骤:s
1.解析数据库更新的二进制日志,发现数据库更新时对memcached也进行同样的更新
2.执行用户自定义函数,设置触发器调用UDF更新,具体参考
http://tangent.org/586/Memcached_Functions_for_MySQL.html
3.使用BLACKHOLE策略,传说中Facebook也用mysql的Blackhole存储引擎来填充缓存,写到Blackhole的数据复制到缓存中,Facebook用这来设置数据作废以及跨国界的复制,好处是数据库的复制不走mysql,这就意味着没有二进制日志以及对CPU使用不那么多(啊?难道通过memcached存储二进制日志,然后复制到不同的数据库?有经验的同志在这个话题上可以补充。)
文件系统缓存把文件直接缓存在memcached中,哇,够BT的,减轻NFS的负担,估计只缓存那些过于热门的图片吧。
部分页面内容缓存如果页面的某些部分获取起来非常费劲,以其缓存页面的原始数据还不如把页面的部分内容直接缓存起来直接调用
应用程序级别的复制通过API来更新缓存,API的执行细节如下:1.一个应用把数据写到某个缓存实例,这个缓存实例把内容复制到其他缓存实例(memcached同步)2.自动获得缓存池地址以及实例个数
3.同时对多个缓存实例更新
4.如果某个缓存实例down掉了,跳到下一个实例,直到更新成功
整个过程非常高效以及低开销
其他技巧1.多节点以应对”单点故障”2.使用热备技术,当某个节点down掉了,另外一台服务自动替换成它的IP,这样客户端不用更新memcached的IP地址3.memcached可以通过TCP/UDP访问,持续连接可以减轻负载,系统设计成可同时承受1000个连接
本新闻共
3
页,当前在第
2
页
1
2
3
上一篇:
oracle因为日志错误无法打开
下一篇:
修复MYSQL可能会使用到的实用程序列表
返回首页
|
联系我们
|
关于我们
|
招聘信息
|
友情链接
|
网站地图
|
合作伙伴
版权所有 北京北亚宸星科技有限公司
全国统一客服热线:4006-505-646
北京总部:北京市海淀区永丰基地丰慧中路7号新材料创业大厦B座205室
京ICP备
09039053
号