草庐IT

内存淘汰策略|页面置换算法对比总结

在学习【操作系统】【MySQL】【Redis】后,发现其都有一些缓存淘汰的策略,因此一篇小文章总结一下。目前还没着笔,初略一想MySQL和操作系统应该都是使用的年轻代和老生代的改进策略,而Redis使用的是随机抽的策略。MySQLMySQL中存在一个内存缓存池,BufferPool。里面存在着控制块和缓存的数据页(当然还有些其他缓存,比如:锁信息、undo页等)。下面的LRU限制在缓存的数据页当中(控制块等应该也是不会淘汰的)有了缓存池之后当读取数据时,如果数据存在于BufferPool中,客户端就会直接读取BufferPool中的数据,否则再去磁盘中读取。当修改数据时,首先是修改Buffer

内存淘汰策略|页面置换算法对比总结

在学习【操作系统】【MySQL】【Redis】后,发现其都有一些缓存淘汰的策略,因此一篇小文章总结一下。目前还没着笔,初略一想MySQL和操作系统应该都是使用的年轻代和老生代的改进策略,而Redis使用的是随机抽的策略。MySQLMySQL中存在一个内存缓存池,BufferPool。里面存在着控制块和缓存的数据页(当然还有些其他缓存,比如:锁信息、undo页等)。下面的LRU限制在缓存的数据页当中(控制块等应该也是不会淘汰的)有了缓存池之后当读取数据时,如果数据存在于BufferPool中,客户端就会直接读取BufferPool中的数据,否则再去磁盘中读取。当修改数据时,首先是修改Buffer

组合数学:Burnside引理和Polya定理解决染色置换问题

例题给3x3的格子上色,4种颜色,可以重复。排除旋转后相同的情况,请问有多少种不同的上色方法?解答设格子编号如下:|1|2|3||4|5|6||7|8|9|每种旋转是为一种置换,定义为\(g_i\),共4种置换:\[g_1=\\g_2=\\g_3=\\g_4=\]\(D(g_i)\)表示在\(g_i\)这种置换的作用下没有改变状态的方案集合,\(|D(g_i)|\)表示其元素个数。以下分情况讨论:旋转\(0°\)旋转0°怎么都不会变,计算随便涂的总数即可:\[|D(g_1)|=4^9\]旋转\(90°\){1、3、7、9}循环变换,{2、4、6、8}循环变换,{5}永远不变,置换群为(1379

组合数学:Burnside引理和Polya定理解决染色置换问题

例题给3x3的格子上色,4种颜色,可以重复。排除旋转后相同的情况,请问有多少种不同的上色方法?解答设格子编号如下:|1|2|3||4|5|6||7|8|9|每种旋转是为一种置换,定义为\(g_i\),共4种置换:\[g_1=\\g_2=\\g_3=\\g_4=\]\(D(g_i)\)表示在\(g_i\)这种置换的作用下没有改变状态的方案集合,\(|D(g_i)|\)表示其元素个数。以下分情况讨论:旋转\(0°\)旋转0°怎么都不会变,计算随便涂的总数即可:\[|D(g_1)|=4^9\]旋转\(90°\){1、3、7、9}循环变换,{2、4、6、8}循环变换,{5}永远不变,置换群为(1379