随笔分类 - Redis
摘要:概述 Redis 的发布/订阅是一种消息通信模式:发送者(Pub)向频道(Channel)发送消息,订阅者(Sub)接收频道上的消息。Redis 客户端可以订阅任意数量的频道,发送者也可以向任意频道发送数据。在发送者向频道发送一条消息后,这条消息就会被发送到订阅该频道的客户端(Sub) Redis
阅读全文
摘要:概述 Redis 支持分布式环境下的事务操作,其事务可以一次执行多个命令,事务中的所有命令都会序列化地顺序执行。事务在执行过程中不会被其他客户端发送来的命令请求打断,服务器在执行完事务中的所有命令之后,才会继续处理其他客户端的其他命令。Redis 的事务操作分为开启事务、命令入队列、执行事务三个阶段
阅读全文
摘要:概述 Redis 是基于请求/响应协议的 TCP 服务。在客户端向服务器发送一个查询请求后,需要监听 Socket 的返回结果,该监听过程一直阻塞,直到服务器有结果返回。如果一次请求延迟20ms,则多次请求的网络延迟会不断累加。也就是说,Redis 的性能瓶颈主要体现在网络延迟上 Redis 的管道
阅读全文
摘要:概述 当我们操作 Redis 发现耗时较长时,原因可能有两个: 服务间存在网络延迟 Redis 服务本身存在问题 如果是第一种情况,那么所有服务都会发生网络延迟,只需要联系运维处理即可,这里主要讨论第二种情况 Redis 基准性能测试 基准性能指 Redis 在一台负载正常的机器上的最大响应延迟和平
阅读全文
摘要:概述 当我们在使用缓存时,如果发生数据变更,那么你需要同时操作缓存和数据库,而它们两个又分属不同的系统,因此无法做到同时操作成功或失败,因此在并发读写下很可能出现缓存与数据库数据不一致的情况 理论上可以通过分布式事务保证同时操作成功或失败,但这会影响系统性能,一般很少使用。虽然没办法做到缓存和数据库
阅读全文
摘要:概述 单机架构下,一个进程中的多个线程竞争同一共享资源时,通常使用 JVM 级别的锁即可保证互斥,以对商品下单并扣库存为例: public String deductStock() { synchronized (this){ // 获取库存值 int stock = Integer.parseIn
阅读全文
摘要:概述 Redis 在 3.0 之后开始支持 Cluster(集群)模式,特点如下: 支持节点的自动发现:可向集群动态添加节点,并自动融入 支持 slave-master 选举和容错:多个 master 宕机后,选举出新的 master 继续工作 在线分片:当有新的节点加入时,为新节点分配 slot
阅读全文
摘要:概述 由一个或多个 Sentinel(哨兵)实例组成的 Sentinel 系统可以监视任意多个主服务器,以及这些主服务器属下的所有从服务器,并在被监视的主服务器进入下线状态时,自动将下线主服务器属下的某个从服务器升级为新的主服务器 简单来说,哨兵就是带有自动故障转移功能的主从架构 搭建哨兵架构 以
阅读全文
摘要:概述 主从复制,是指将一台 Redis 服务器的数据,复制到其他的 Redis 服务器,前者称为主节点,后者称为从节点 一个主节点可以有零个或多个从节点,但每个从节点只能有一个主节点 数据的复制是单向的,只能由主节点复制到从节点 从节点仅仅用来同步数据,不能用于顶替宕机的主节点 主从服务器之间采用的
阅读全文
摘要:Jedis 1. 概述 Jedis 是一款使用 Java 操作 Redis 的工具,有点类似于 JDBC 2. 引入依赖 <dependency> <groupId>redis.clients</groupId> <artifactId>jedis</artifactId> <version>2.9
阅读全文
摘要:概述 Redis 官方提供了两种不同的持久化方法来将数据存储到硬盘,分别是: 快照(Snapshot) AOF(Append Only File)只追加日志文件 默认开启快照,同时启用两种持久化方式时,优先 AOF 快照(Snapshot) 这种方式可以将某一时刻的所有数据都写入硬盘,保存的文件以
阅读全文
摘要:NoSQL 1. 定义 NoSQL(Not Only SQL)即不仅仅是 SQL,泛指非关系型的数据库 2. 为什么使用 NoSQL? 传统关系数据库在应付动态网站、特别是超大规模和高并发的纯动态网站已经显得力不从心了,如商品网站中对商品数据的频繁查询、热搜商品的排行统计、订单超时问题。虽然能实现功
阅读全文
摘要:缓存 1. 什么是缓存? 缓存就是数据交换的缓冲区,用于临时存储数据(使用频繁的数据)。当用户请求数据时,首先在缓存中寻找,如果找到了则直接返回。如果找不到,则去数据库中查找 缓存的本质就是用空间换时间,牺牲数据的实时性,从而减轻数据库压力,尽可能提高吞吐量,有效提升响应速度 2. 缓存的分类 缓存
阅读全文