在sqlserver中,几年之前就注意到一个现象:sqlserver中对一个大表创建索引或者rebuild索引的过程中,会引起内存剧烈的动荡,究其原因为何,这种现象到底正不正常,是不是sqlserver内存管理存在缺陷?另外,最近刚好想到跟MySQL对比一下类似操作引起的内存变化,测试MySQL会不 ...
分类:
数据库 时间:
2020-04-22 00:04:50
阅读次数:
91
LRU 算法描述 LRU 算法实际上是让你设计数据结构:首先要接收一个 capacity 参数作为缓存的最大容量,然后实现两个 API,一个是 put(key, val) 方法存入键值对,另一个是 get(key) 方法获取 key 对应的 val,如果 key 不存在则返回 -1。 注意哦,get ...
分类:
编程语言 时间:
2020-04-17 23:27:31
阅读次数:
179
十,Redis的RDB存储方式 10.1 redis的运行方式说明 redis如果提供缓存服务,可以关闭所有持久化存储,如此一来redis重启后所有数据会丢失 开启rdb或aof持久化存储,能把redis中的数据持久化到磁盘中。 rdb和aof对性能都有影响,所以建议持久化的操作在从库上进行 10. ...
分类:
数据库 时间:
2020-04-17 00:20:43
阅读次数:
194
用户输入整数n(1<=n<=26)和整数m(m<=n),然后输入n个不同的字母,请编写程序输出在这n个字母中选择m个字母的所有排列序列和组合序列。 """ 用户输入整数n(1<=n<=26)和整数m(m<=n),然后输入n个不同的字母, 请编写程序输出在这n个字母中选择m个字母的所有排列序列和组合序 ...
分类:
编程语言 时间:
2020-04-11 12:54:03
阅读次数:
77
1. 前言 还是从面试中来,到面试中去。面试官在面试 Redis 的时候经常会问到,Redis 的 LRU 是如何实现的?如果让你实现 LRU 算法,你会怎么实现呢?除了用现有的结构 LinkedHashMap 实现,你可以自己实现一个吗?跳跃表、小顶堆行不行... 阅读这篇文章前建议大家先熟悉下 ...
分类:
其他好文 时间:
2020-03-14 01:23:56
阅读次数:
64
什么是LRU LRU(Least recently used,最近最少使用)算法根据数据的历史访问记录来进行淘汰数据,其核心思想是“如果数据最近被访问过,那么将来被访问的几率也更高” 距离现在最早使用的会被我们替换掉。不够形象的话我们看下面的例子。 size=3的缓存淘汰实现: 在插入元素1的时候, ...
分类:
编程语言 时间:
2020-03-06 15:53:35
阅读次数:
74
LRU算法 LRU算法定义: LRU算法是指最近最少使用算法,意思是LRU认为最近使用过的数据,将来被访问的概率会大,最近没有被访问的数据意味着以后刚问的概率小。 为何要用LRU算法: 1、我们的存储空间是有限的,当存储空间满了之后,要删除哪些数据呢,才能会时缓存的命中率高一些呢 2、LRU算法还是 ...
分类:
编程语言 时间:
2020-02-16 20:28:43
阅读次数:
98
1. 对于一个存在系统性能的系统,说出你的诊断处理思路 1). 做statspack收集系统相关信息 了解系统大致情况/确定是否存在参数设置不合适的地方/查看top 5 event/查看top sql等 2). 查v$system_event/v$session_event/v$session_wa ...
分类:
数据库 时间:
2020-01-06 19:41:12
阅读次数:
77
概要本文的想法来自于本人学习MySQL时的一个知识点:MySQL Innodb引擎中对缓冲区的处理。虽然没有仔细研究其源码实现,但其设计仍然启发了我。 本文针对LRU存在的问题,思考一种增强算法来避免或降低缓存污染,主要办法是对原始LRU空间划分出young与old两段区域 ,通过命中数(或bloc ...
分类:
编程语言 时间:
2019-12-18 12:28:03
阅读次数:
77
最久未使用算法和最少次数算法 参考 "LRU算法 缓存淘汰策略" "缓存算法(FIFO 、LRU、LFU三种算法的区别)" LRU算法(最久未使用算法) 当数据满时,淘汰最久未使用的数据。该算法需要获取所有缓存数据中最久未使用的数据。 链表实现 1. 创建一个固定大小的链表,数据首次被访问,插入到链 ...
分类:
编程语言 时间:
2019-12-13 19:46:39
阅读次数:
119