行为型——模板方法模式

什么是模板方法模式

模板方法模式:定义某种操作的一个算法骨架, 而将算法的一些步骤延迟到子类中,使得子类可以不改变该算法结构的情况下重定义该算法的某些特定步骤。

所谓模板方法模式,就是创建一个模板,模板指的就是一个方法或者说操作,这个方法包含一组步骤,其中任何步骤都可以是抽象的,交由子类来具体实现。

阅读更多...

Redis主从复制

主从复制,是指将一台Redis服务器的数据,复制到其他的Redis服务器。前者称为主节点(master),后者称为从节点(slave);数据的复制是单向的,只能由主节点到从节点。

主从复制的目的在于:

  1. 数据冗余:从节点备份主节点数据,持久化之外的另一种数据冗余方式。
  2. 故障恢复:主节点出现问题,从节点顶上,实现快速故障恢复。
  3. 负载均衡:主节点写,从节点读,提高系统并发能力。
  4. 高可用基石: 主从复制还是哨兵和集群能够实施的基础
阅读更多...

Java内存空间

1 概述

Java虚拟机在执行Java程序时会将它所管理的内存划分成若干个不同的数据区域。

下图是JVM的整体结构,中间部分就是Java虚拟机定义的各种运行时数据区域。这些内存区域可以分为两类:

  • 线程私有:程序计数器、虚拟机栈、本地方法栈
  • 线程共享:堆、方法区、堆外内存(Java7的永久代,JDK8的元空间、代码缓存)
阅读更多...

行为型——命令模式

概述

所谓“命令模式”,简单解释就是:把命令封装成对象,当客户需要执行某条命令时,直接new一个该命令对应的对象,然后调用命令对象中的excute方法即可。这种设计下,命令调用者无需关心命令具体是怎样执行的,达到命令调用者和命令执行者之间解耦的目的

阅读更多...

结构型——策略模式

什么是策略模式

在软件开发过程中,某些行为可能具有不同的实现方式,比如,对于排序这一行为,其具体实现可能包括堆排序、插入排序、选择排序、希尔排序、快速排序等等,这些实现方式有着各自的应用场景。在软件运行过程中,对于某种行为,我们希望能够动态选择具体实现方式。这时候就需要用到策略模式了。

阅读更多...

Redis事务

何为事务

Redis 事务的本质是一组命令的集合。事务支持一次执行多个命令,一个事务中所有命令都会被序列化。在事务执行过程,会按照顺序串行化执行队列中的命令,其他客户端提交的命令请求不会插入到事务执行命令序列中。

总结说:redis事务就是一次性、顺序性、排他性的执行一个队列中的一系列命令。

阅读更多...

Redis过期与内存淘汰机制

Redis数据过期

我们知道Redis中的key可以设置过期时间,如果设置1批key只能存活1分钟,那么1分钟后,Redis是怎么对这批key进行删除的呢?

常用过期策略有三种:

  • 定时过期:每个设置过期时间的key都创建一个定时器,到期后立即清除。
    • 优点:到期后立即清除数据,对内存友好。
    • 缺点:创建大量定时器,占用过多系统资源,对CPU不友好。
  • 惰性过期:取出key的时候对数据过期时间进行检查。
    • 优点:对CPU友好。
    • 缺点:造成太多过期key没有删除,对内存不友好。
  • 定期过期:每隔一段时间抽取一批key执行删除过期key操作,可以看做是定时和惰性的一种折中方案。

在Redis中同时使用了定期删除+惰性删除

阅读更多...
  • Copyrights © 2021-2022 Yin Peng
  • 引擎: Hexo   |  主题:修改自 Ayer
  • 访问人数: | 浏览次数:

请我喝杯咖啡吧~

支付宝
微信