Redis
文章平均质量分 76
Redis介绍
封闭火车
这个作者很懒,什么都没留下…
展开
-
spring缓存的使用
CacheEvict是用来标注在需要清除缓存元素的方法或类上的。beforeInvocation 清除操作默认是在对应方法成功执行之后触发的,即方法如果因为抛出异常而未能成功返回时也不会触发清除操作。默认为false,表示不需要。sync 如果多个请求同时来访问同一个key的数据,则sync表示加锁同步,等第一个请求返回数据后,其他请求直接获取缓存里的数据。每次都会执行目标方法,并将执行结果以键值对的形式存入指定的缓存中。对于Spring,缓存组件例如EhCache是可拔插的,而缓存注解是通用的。原创 2024-02-21 22:29:02 · 1342 阅读 · 1 评论 -
通过Redis增减库存避坑
不论这个key是否存在都先加一,然后判断其过期时间是否为永不过期,如果是永不过期则说明是新生成的key,给它设置过期时间即可,如果非永不过期则无需操作。原因是: 因为redis的incr操作,当key不存在时, 会生成这个key并将值初始化为0, 并且默认设置key的有效时间为永久。场景1:我们缓存了一个商品的库存,过期时间为5分钟,根据用户的购买和取消执行 incr、decr 操作。两种场景编码看似都没有问题,但实际运行中却发现redis中有一些key变成了永不过期的key,而且值不正确。原创 2024-02-21 22:12:09 · 1045 阅读 · 0 评论 -
应用Redis实现积分排名
应用Redis实现积分排名1.首先我们需要一个RankDo对象存储id和分数import lombok.AllArgsConstructor;import lombok.Data;import lombok.NoArgsConstructor;import java.io.Serializable;@Data@NoArgsConstructor@AllArgsConstructorpublic class RankDo implements Serializable { pri原创 2020-12-28 17:09:41 · 381 阅读 · 0 评论