摘要:
原型模式 原型模式的适用场景 浅拷贝 深拷贝 用Initialize方法修改初始化状态 原型模式与之前学习的各种工厂方法、单例模式、建造者模式最大、最直观的区别在于,它是从一个既有的对象“克隆”出新的对象,而不是从无到有创建一个全新的对象。与对文件的拷贝类似,原型模式是基于现有的对象拷贝新的对象。 阅读全文
摘要:
什么是建造者模式 经典建造者模式的优缺点 对建造者模式的扩展 什么是建造者模式 建造者模式将一个复杂的对象的构建与它的表示分离,使得同样的构建过程可以创建不同的表示。创建者模式隐藏了复杂对象的创建过程,它把复杂对象的创建过程加以抽象,通过子类继承或者重载的方式,动态的创建具有复合属性的对象。 虽然与 阅读全文
摘要:
抽象工厂模式 优化抽象工厂 异步工厂 在学习抽象工厂模式前,先来回顾一下前面的简单工厂和工厂方法模式。简单工厂的职责非常简单:构造某个实体类型,然后把实例作为抽象类型返回; 工厂方法模式则进一步抽象出一个抽象的创建者和一个抽象的产品类型,而实际的执行过程是具体工厂创建具体的产品类型,具体工厂和具体产 阅读全文
摘要:
单例模式 线程安全的Singleton 会破坏Singleton的情况 线程级Singleton 单例模式是几个创建型模式中最独立的一个,它的主要目标不是根据客户程序调用生成一个新的实例,而是控制某个类型的实例数量只有一个。 GOF对单例的描述为: Ensure a class only has o 阅读全文
摘要:
创建型模式 简单工厂模式 工厂方法模式 IOC与工厂方法模式的结合 泛型工厂 委托工厂 创建型模式 创建型模式可以隔离客户程序对需要实例化类型的依赖关系,这类模式一般通过将实例化具体对象的职责委托给第三方对象的方式,使得客户程序或者外部系统在获得所需的具体类型实例的同时,而不必对其发生直接的引用。 阅读全文
摘要:
持久化 RDB方式 Redis实现快照的过程 AOF方式 操作系统缓存 RDB与AOF 复制 主从数据库 主从复制的意义 安全 持久化 Redis通过将数据存储在内存中而获得了极快的速度,但为了保证Redis在重启后数据不丢失,需要将数据从内存持久化到硬盘中。 持久化的方式有两种,二者可以只用一种, 阅读全文
摘要:
Lua基本语法 表类型 函数 Redis执行脚本 KEYS与ARGV 沙盒与随机数 脚本相关命令 原子性和执行时间 Lua是一种高效的轻量级脚本语言,能够方便地嵌入到其他语言中使用。在Redis中,借助Lua脚本可以自定义扩展命令。 Lua基本语法 数据类型 空(nil),没有赋值的变量或表的字段值 阅读全文
摘要:
使用列表实现任务队列 优先级队列 按照规则订阅 Redis也可以作为任务队列。任务队列顾名思义,就是“传递任务的队列”。任务队列与消息队列什么区别呢?任务队列是逻辑模型,而消息队列是通信模型,两者是不同层次的抽象,用消息队列可以实现任务队列。 与任务队列进行交互的实体有两类,一类是生产者(produ 阅读全文
摘要:
SORT命令 LIMIT参数 BY参数 GET参数 STORE参数 排序性能优化 很多场合需要对元素进行排序,这时除了使用有序集合外,还可以借助Redis提供的SORT命令来排序。 SORT命令 SORT命令可以对列表类型、集合类型和有序集合类型的键进行排序。 SORT key SORT key D 阅读全文
摘要:
事务的使用方式 事务的错误处理 WATCH命令 生存时间 缓存策略 Redis中的事务(transaction)是一组命令的集合。事务同命令一样都是Redis的最小执行单位,一个事务中的命令要么都执行,要么都不执行。 事务的原理是先将属于一个事务的命令发送给Redis,然后再让Redis依次执行这些 阅读全文