分类树查询功能,在各个业务系统中可以说随处可见,特别是在电商系统中。但就是这样一个简单的分类树查询功能,我们却优化了5次。到底是怎么回事呢?背景我们的网站使用了SpringBoot推荐的模板引擎:Thymeleaf,进行动态渲染。它是一个X...
什么是 bigkey?在 Redis 中数据都是 key-value 的形式存储的。bigkey 是指 key 对应的 value 所占的内存空间比较大。例如一个 String 类型的 value 最大可以存 512MB 的数据,一个 li...
1、缓存String类型例如:热点数据缓存(例如报表、明星出轨),对象缓存、全页缓存、可以提升热点数据的访问数据。2、数据共享分布式String 类型,因为 Redis 是分布式的独立服务,可以在多个应用之间共享例如:分布式Session&...
在开发中,往往会遇到一些关于延时任务的需求。例如生成订单30分钟未支付,则自动取消生成订单60秒后,给用户发短信对上述的任务,我们给一个专业的名字来形容,那就是延时任务。那么这里就会产生一个问题,这个延时任务和定时任务的区别究竟在哪里呢?一...
一、键值设计1.1、key名设计1.1.1、【建议】: 可读性和可管理性以业务名(或数据库名)为前缀(防止key冲突),用冒号分隔,比如业务名:表名:idtrade:order:11.1.2、【建议】: 简洁性保证语义的前提下,控制key的...
一、缓存设计1.1、缓存穿透缓存穿透是指查询一个根本不存在的数据, 缓存层和存储层都不会命中, 通常出于容错的考虑, 如果从存储层查不到数据则不写入缓存层。缓存穿透将导致不存在的数据每次请求都要到存储层去查询, 失去了缓存保护后端存储的意义...
Redis3.0以后的版本虽然有了集群功能,提供了比之前版本的哨兵模式更高的性能与可用性,但是集群的水平扩展却比较麻烦,redis高可用集群如何做水平扩展原始集群(见下图)由6个节点组成,6个节点分布在三台机器上,采用三主三从的模式。一、R...
一、Redis哨兵高可用架构sentinel哨兵是特殊的redis服务,不提供读写服务,主要用来监控redis实例节点。哨兵架构下client端第一次从哨兵找出redis的主节点,后续就直接访问redis的主节点,不会每次都通过sentin...
一、什么是主从复制主从复制,是指将一台Redis服务器的数据,复制到其他的Redis服务器。前者称为主节点(Master),后者称为从节点(Slave)。数据的复制是单向的,只能由主节点到从节点。默认情况下,每台Redis服务器都是主节点,...
一、RDB快照(snapshot)在默认情况下, Redis 将内存数据库快照保存在名字为 dump.rdb 的二进制文件中。你可以对 Redis 进行设置, 让它在“ N 秒内数据集至少有 M 个改动”这一条件被满足时, 自动保存一次数据...