延时队列之 Redis Sorted Set 实现

Redis 的 Sorted Set 数据类型是一个有序集合,不可重复集合。有序集合的每个元素都有一个用于排序的权重(score)属性。

此类型非常适合用于制作排行榜,同样可以借助权重(score)属性作为元素的延时时间来实现延时队列的功能。

阅读更多

Redis集群宕机事故问题分析排查

计一次生产一台服务器重启导致 Redis 集群两个实例宕机服务不可用问题分析排查。

Redis 集群宕机导致签权服务异常,进而导致所有服务不可用,其中还包含支付系统,是一次严重的生产事故。

恢复耗时半小时,电话被打爆,高层领导,现场项目经理,销售,测试都紧盯着问题修复。

阅读更多

Redis 4.x系列(二):Redis 在 Linux 快速安装

  建议将 Redis 部署到 Linux 服务器上,安装非常简单。 在 Linux 环境更接近生产环境,也可以更熟悉的使用 Linux 命令。

  在Windows 上可安装 RedisDesktopManager 客户端来直观的查看存储在 Redis 中的数据。

阅读更多

Spring Boot 2系列(二十八):Spring Session 集成配合Redis实现Session集群共享

  Web应用的 Session 默认是由服务器容器(如:Tomcat)管理,当部署服务器集群时,会出现在服务器A登录后,再次访问被负载均衡转发到服务器B时会被要求重新登录,这对访问同一个域名站点用户来说是非常不友好的体验,登录服务器的 Session 无法被集群中的其它服务器共用, 这就是集群环境下的 Session 共享问题。

解决集群环境下的 Session 问题的思路基本有三种:
  1. 服务器 Session 复制:让集群中每台服务器都有其它服务器的Session, 这是服务器Session复制机制。
  2. 持久化 Session:自定义 Session管理实现,接管容器对Session的管理,把 Session 持久化提供公共使用,每次请求根据 SessionId到 Session 缓存服务器取 Session 进行判断。
  3. 在负载均衡服务器配置粘性 Session:即把同一个 Session 的多个访问始终绑定到同一台服务器,不推荐使用, 当该服务器宕机机就会出现 Session 丢失,没有利点集群的优势。

  目前行业广泛使用且推荐使用的是持久化Session,对Session 执行统一的存储和访问,实现 Session 在集群服务中的共享。

阅读更多

Spring Boot 2系列(十):Spring 缓存体系

  Spring 对各种缓存技术抽象成了统一的接口和常用的操作方法,对不同的缓存技术,如 redis, ehcache 等透明地添加缓存的支持。

  只要使用了缓存注解@EnableCaching,Spring Boot就会自动配置缓存基本设置。

阅读更多