缓存
文章平均质量分 83
zlpzlpzyd
成长路上......
展开
-
linux的页缓存page cache
由于我们开发的程序要运行的话一般都在 linux 上运行,以下以 linux 为例来讲解Page Cache 的本质是由 Linux 内核管理的内存区域。通过 mmap(memory map) 以及 buffered io 将文件读取到内存空间实际上都是读取到 Page Cache 中。mmap 是通过指针操作的方式绕过了内核态直接操作 Page Cache。原创 2023-12-31 17:24:08 · 1739 阅读 · 0 评论 -
缓存cache和缓冲buffer的区别
缓存和缓冲都是为了解决计算机的各个部分的访问速度设计的。针对 cpu 和内存之间的速度慢的问题,设计了 cpu 与内存中间的三个级别的缓存。针对内存与存储设备之间的速度慢的问题,编码在内存层面设计了缓冲区域将读取或者写入的数据批量处理。将存储设备的随机处理变为顺序处理,是空间换时间思想的实现。在日常开发中,遇到的问题瓶颈一般是缓冲的问题。因为内存和 cpu 之间的缓存我们无法控制,但是在内存和硬盘层面的缓冲现有的工具无法满足我们可以自己编码处理。参考链接。原创 2023-12-27 17:03:55 · 1706 阅读 · 0 评论 -
mybatis的一级缓存使用以及禁用
可以看到,通过一个简单的查询,mybatis 使用了责任链模式,通过内存缓存当前查询结果,但是这个只适用于那种单体应用,分布式应用的话使用一级缓存不太好,有缓存不一致的问题。如果数据量大的话会造成内存溢出的情况发生。所以,针对项目部署的是集群环境,不要用一级缓存。如果是单体数据量不大可以使用。可以看到,如果 SqlCommandType 值为 SELECT,flushCache 的值的情况如下如果 flushCache 的值未设置,flushCache 值为 false,默认使用缓存。原创 2023-12-23 20:55:43 · 1437 阅读 · 0 评论 -
mybatis的二级缓存使用以及禁用
一级缓存针对的是 SqlSession 层次,二级缓存针对的是 mapper 层次。最终的缓存类都是 PerpetualCache,只是二级缓存通过装饰器模式串联了多个 cache 实现,可以针对不同的功能串联不同的 cache 实现。一级缓存和二级缓存都有一个缺点,无法解决缓存共用的问题。所以,针对集群项目不建议使用一级缓存和二级缓存,最好禁用。原创 2023-12-24 20:55:55 · 1768 阅读 · 0 评论 -
redis集群最少使用三个主节点和使用16384个槽以及主节点数量不超过1000的原因
cluster各节点之间需要互相通信确认对方是否存活。假设有A、B两个节点,B发现联系不上A,是不能确定A和B谁出了问题的,假设集群中还有一个C节点的话,如果B、C可以互相联系,但是都联系不上A,那么这时候就可以确定A出问题了,需要把A从集群中踢出去。集群可用原则:可用节点数量>集群总节点数量的二分之一,节点数量为奇数个是出于节省资源的考虑。因为不管是四个还是三个节点,一旦挂了两个,整个集群都是不可用的。即为了节省资源和节点通信考虑,集群的节点数量为奇数,即。原创 2023-09-09 14:33:26 · 947 阅读 · 0 评论 -
对于现有的分布式id发号器的思考 id生成器 雪花算法 uuid 幂等
分布式id发号器 id生成器 雪花算法 uuid 幂等原创 2023-08-03 17:58:10 · 1385 阅读 · 0 评论 -
redisson项目地址
redisson项目文档地址原创 2023-03-17 19:16:42 · 790 阅读 · 0 评论 -
Redis 主从复制、哨兵和集群三者区别
单机模式、主从模式、sentinel 模式依次递进,单机模式无法解决机器故障导致的无法提供服务的问题,主从模式无法解决主节点停止后选举master的问题,sentinel模式解决了主从的问题。sentinel着眼于高可用。Redis 的哨兵模式基本已经可以实现高可用,读写分离 ,但是在这种模式下每台 Redis 服务器都存储相同的数据,浪费内存且有木桶效应,所以在redis3.0上加入了 Cluster 集群模式,实现了 Redis 的分布式存储,也就是说每台 Redis 节点上存储不同的内容。原创 2023-03-17 17:48:31 · 335 阅读 · 0 评论 -
为什么要用Redis以及优缺点
为什么要用Redis转载 2023-03-17 17:39:43 · 71 阅读 · 0 评论