Redis 事务

Redis 事务:可以一次执行多个命令,本质是一组命令的集合。一个事务中的所有命令都会序列化,按顺序地串行化执行而不会被其它命令插入,一次性、顺序性、排他性的执行一系列命令。 一、常用命令 【1】、:开启一个事务 【2】、 :执行事务中的命令。可以看到 开始到 之间,所有的命令都会被加入...

2019-08-31 23:02:44

阅读数 9

评论数 0

ActiveMQ 持久化消息

为了避免意外宕机以后丢失信息,需要做到重启后可以恢复消息队列,消息系统一般都会采用持久化机制。ActiveMQ 的持久化机制有 JDBC、AMQ(了解)、KahaDB和LevelDB,无论哪种持久化方式,消息存储逻辑都是一致的。当消息发送出去后,消息中心首先将消息存储到本地数据文件、内存数据库或者...

2019-08-30 22:06:42

阅读数 13

评论数 0

Redis 故障排查

要进行 Redis 的故障定位,一般通过分析 Redis 日志、应用日志和 Redis 的监控信息来定位相关问题。 一、Redis 日志设置 1)、日志文件:Redis 默认日志在控制台打印,启动时即可看到对应日志打印到控制台上。建议修改 redis.config 的默认配置:[logfi...

2019-08-25 17:53:54

阅读数 44

评论数 0

设计模式——策略模式

在现实生活中常常遇到实现某种目标存在多种策略可供选择的情况,例如,出行旅游可以乘坐飞机、乘坐火车、骑自行车或自己开私家车等。在软件开发中也常常遇到类似的情况,当实现某一个功能存在多种算法或者策略,我们可以根据环境或者条件的不同选择不同的算法或者策略来完成该功能,如数据排序策略有冒泡排序、选择排序、...

2019-08-25 15:20:59

阅读数 13

评论数 0

Redis 集群

一、Redis-Cluster 简介 【1】Redis 集群(Redis-Cluster)提供了在多个 Redis 节点间共享数据的功能。 【2】Redis 集群通过分区来提高可用性。可自动分割数据到不同的节点上,集群的部分节点失败或者不可达时能够继续处理请求。 【3】Redis Cluster...

2019-08-25 11:19:33

阅读数 241

评论数 0

Redis 哨兵模式

反客为主的自动版,能够后台监控主机是否故障,如果故障了根据投票数自动将从库转换为主库[基于主从复制模块]。 一、Redis 哨兵概念 哨兵(Sentinel):是一个分布式系统,可自动干预 Redis 主从切换,主要用于管理多个 Redis 服务器,执行监控(Monitoring)、通知(...

2019-08-24 20:58:39

阅读数 32

评论数 0

Redis 主从复制

一、Redis 的复制 复制(Replication):是 Redis 实现高可用的基础。且在复制过程中,主节点/从节点都是非阻塞的,但是从节点在执行同步时使用的是旧数据集提供查询。 Redis 复制启动图与流程说明: 1)、当从节点连接到主节点时,会发送 psync 命令给主节点,run...

2019-08-24 16:47:00

阅读数 11

评论数 0

Redis 持久化

一、Redis 持久化方式(RDB) 【1】RDB(Redis DataBase): 在指定的时间间隔内将内存中的数据集以快照的形式写入磁盘,也就是行话讲的 Snapshot (快照),它恢复时是将快照文件直接读到内存里。Redis 会单独创建(Fork)一个子进程来进行持久化,会先将数据写入到...

2019-08-23 23:22:34

阅读数 51

评论数 0

Redis 数据结构

一、Redis 的五大数据类型 【1】String(字符串):String 是 Redis 最基本的类型,一个 key 对应一个 value。String 类型时二进制安全的。意思是 Redis 的 String 可以包含任何数据。一个键最大能存储 512MB。 【2】Hash(哈希):Hash...

2019-08-22 22:41:19

阅读数 13

评论数 0

设计模式——解释器模式

在软件开发中,会遇到有些问题多次重复出现,而且有一定的相似性和规律性。如果将它们归纳成一种简单的表达式(例如:正则表达式等),那么这些问题实例将是该表达式的一些句子,这样就可以用 “编译原理” 中的解释器模式来实现。 一、解释器模式基本介绍 【1】解释器模式(Interpreter Pat...

2019-08-21 22:45:49

阅读数 20

评论数 0

设计模式——备忘录模式

备忘录模式(Memento Pattern):保存对象的某个状态,以便在未来需要的时候进行数据的恢复。相当容易理解,举个简单的例子:Word 软件在编辑时按 Ctrl+Z 组合键时能撤销当前操作,使文档恢复到之前的状态; 一、备忘录模式的基本介绍 【1】备忘录模式(Memento Patt...

2019-08-19 23:16:51

阅读数 13

评论数 0

设计模式——中介者模式

在现实生活中,常常会出现好多对象之间存在复杂的交互关系,这种交互关系常常是 “网状结构”,它要求每个对象都必须知道它需要交互的对象。例如,班长和团支书等干部需要记住同学们的电话,且同学中如果有人的电话修改了,需要告诉所有干部,自己的手机号修改了,这叫作 “牵一发而动全身”,非常复杂。如果把这种 “...

2019-08-18 21:27:47

阅读数 13

评论数 0

设计模式——观察者模式

生活中,许多事物不是单独存在的,其中一个事物发生变化可能会导致一个或多个其他事物的行为也发生变化。例如:公众号的博主与用户之间(每当推送一篇文章,我们就能被动的接收到一篇文章,前提是你关注了它)。在软件设计中也是一样,例如:MVC 模式中的模型与视图的关系。此类场景使用观察者模式来实现的话,就非常...

2019-08-18 15:30:46

阅读数 12

评论数 0

Redis 常用配置

【1】Redis 默认不是以守护进程的方式运行,可以通过修改配置项启用守护线程: 修改前:daemonize no 修改后:daemonize yes 【2】当 Redis 以守护进行方式运行时,Redis 默认会把 pid 写入 /var/run/redis.pid 文件,可以通过 p...

2019-08-17 20:38:54

阅读数 8

评论数 0

设计模式——迭代器模式

在程序设计中,经常需要访问一个聚合对象中的各个元素,例如:我们使用 list 存储元素,通常的做法是将 list 的创建和遍历放在同一个类中。但这种方法不利于扩展,如果将存储方式更改为数组时,就需要更换迭代方式。违背了 “开闭原则”。“迭代器模式” 能较好的克服以上缺点,它在客户访问类与聚合类之间...

2019-08-17 00:03:42

阅读数 22

评论数 0

设计模式——访问者模式

在开发中,有些集合存在多种不同的对象实例(例如:男人、女人),且每个对象也存在多种不同的访问者或处理方式(性格:暴躁、温和)。这样的例子还有很多,例如:好声音节目中不同评委,以及评委对他们的评价的选项,等等。这些被处理的数据元素相对稳定,而访问方式多种多样的数据结构,如果使用 “访问者模式” 来处...

2019-08-15 22:11:04

阅读数 10

评论数 0

设计模式——命令模式

软件开发中,通常会存在 “方法的请求者” 与 “方法的实现者” 之间存在紧密的耦合关系。这不利于软件功能的扩展与维护。特别是针对行为进行(撤销、重做、记录)一系列操作时很不方便,因此 “如何将方法的请求者与方法的实现者解耦”,是命令模式的主要任务和功能。在现实生活中,这样的例子也很多,例如,电视机...

2019-08-13 22:28:39

阅读数 16

评论数 0

设计模式——模板模式

在面向对象程序设计过程中,程序员常常会遇到如下情况:设计一个系统时知道算法所需的关键步骤,且确定了这些步骤的执行顺序,但某些步骤的具体实现还未知,或者说某些步骤的实现与具体的环境相关。例如:去医院看病一般都要经历以下流程:挂号、排队、就诊、取药等,其中挂号和排队对每个客户都是一样的,可以在父类中实...

2019-08-12 21:28:37

阅读数 19

评论数 0

设计模式——代理模式

在现实生活中,一个对象不能直接访问另一个对象,这时需要找中介来访问目标对象,此时的中介就是代理对象。例如:租房子时,我们无法与房东取得联系,只能通过某网站与中介进行交易,获取自己心仪的房间等等。在软件设计中,使用代理模式的例子也很多,例如:访问阿里的 maven 仓库,其就是海外 maven 仓库...

2019-08-11 17:26:42

阅读数 34

评论数 0

设计模式——享元模式

享元模式(Flyweight Pattern):主要用于减少创建对象的数量,以减少内存占用和提高性能。在面向对象程序的设计过程中,有时需要创建大量相似的对象实例。如果都创建将会消耗很多系统资源,它是系统性能提高的一个瓶颈。但如果将这些对象的相似部分抽取出来共享,则能节约大量的系统资源,这就是享元模...

2019-08-10 16:45:49

阅读数 22

评论数 0

提示
确定要删除当前文章?
取消 删除