11 2011 档案
摘要:弄清楚一样东西,我们需要知道它是什么,它是如何工作的,它有什么作用,它有哪些危害。这一系列,我将尽量按照这种思路来作说明。Innodb 日志缓冲是什么? 它是内存中具有固定大小的内存块。其大小由innodb_log_buffer_size参数设置。 当每个事务提交后,相应的页数据会发生变化,按理说应该将缓冲池中相关的脏页同步到磁盘.idb文件中。但是对于数据库存储服务而言,这些都是随机IO,如果每一个事务commit后都同步到磁盘,这是无法想像的,它的性能会非常的低。因此,事务commit后,MySQL不立即将脏页同步到磁盘上,至于它真正同步的机制,这一章节,我们将不讨论。到这里,我想细心..
阅读全文
摘要:Redis处理的速度很快,因为它是基于内存的。在内存能够足够容纳数据的时候,所有的数据都存放在内存。这个时候不论是读取数据还是写入数据都是非常快的。但是如果数据量很大,大到内存已经无法全部容纳的时候,我想对存储有一定了解的人都在想,这个时候redis是怎么处理的呢?处理速度是否会直线下降? 幸亏,答案是否定的。Redis使用到了VM,在redis.conf设置vm-enabled yes 即开启VM功能。 通过VM功能可以实现冷热数据分离。使热数据仍在内存中,冷数据保存到磁盘。这样就可以避免因为内存不足而造成访问速度下降的问题。在这里,需要特别提到的是,Redis并没有使用OS提供的Sw...
阅读全文
摘要:看了一天的技术文章,趁还没下班前写下自己的总结首先明确概念:redis是可以持久化数据的。大致可以分为两种方式。第一种:snapshot 在redis.conf设置自动执行snapshot所需要满足的条件即可。默认的例子是:save 900 1,save 300 10,save 60 1000. 只要满足其中任何一个条件即可。 snapshot过程: 1:首先fork一个子进程。主进程继续接收连接请求,子进程开始偷偷的对内存数据做快照。互不影响。做快照是基于copy on write模式,即父子进程共享相同的物理页。当父进程需要对相应的物理页做修改时,会生成相应物理页的一个副本,针对...
阅读全文