摘要:
悲观锁:当要对数据库中的一条数据进行修改的时候,为了避免同时被其他人修改,最好的办法就是直接对该数据进行加锁以防止并发。这种借助数据库锁机制,在修改数据之前先锁定,再修改的方式被称之为悲观并发控制。 悲观锁具有强烈的独占和排他特性。 乐观锁:乐观锁是相对悲观锁而言的,乐观锁假设数据一般情况下不会造成 阅读全文
摘要:
前言 Redis的发布与订阅模型在许多编程语言中都有实现,也就是我们常说的设计模式中的一种——观察者模式。在一些应用场合,例如发送方不是以固定频率发送消息,如果接收方频繁去资讯发布方,这种操作无疑是很麻烦并且不友好的。 而订阅发布模型,订阅者只需要订阅注册某个频道就好了,当有消息发送过来的时候,会通 阅读全文
摘要:
前言 Redis集群解决了写操作无法负载均衡,以及存储能力受单机限制等问题,实现了较为完善的高可用方案。 一、集群的作用 Redis集群,即 Redis cluster,是Redis3.0开始引入的分布式存储方案。 集群由多个节点(node)组成,Redis的数据分布在这些节点中。集群中的节点分为主 阅读全文
摘要:
前言 Redis缓存的使用,极大的提升了应用程序的性能和效率,特别是数据查询方面。但同时,它也带来了一些问题,就是数据的一致性问题,从严格意义上来说,这个问题无解。如果对数据一致性要求很高,那么就不能使用缓存。 另外的一些典型问题就是,缓存穿透、缓存击穿和缓存雪崩。 一、缓存穿透 概念 缓存穿透指的 阅读全文
摘要:
前言 Redis是一个内存数据库,数据保存在内存中,但是内存数据库变化是非常快的,也容易发生数据丢失。而Redis为我们提供了两种持久化机制:RDB(Redis DataBases)和AOF(Append Only File)。 一、持久化流程 Redis持久化需要下面5个过程: 1. 客户端向服务 阅读全文