Redis
文章平均质量分 59
Destiny_zz
这个作者很懒,什么都没留下…
展开
专栏收录文章
- 默认排序
- 最新发布
- 最早发布
- 最多阅读
- 最少阅读
-
SpringBoot2.0 Redis的简单使用
引入pom首先,在Maven中引入相应pom的依赖 <dependency> <groupId>org.springframework.boot</groupId> <artifactId>spring-boot-starter-data-redis</artifactId> </dependency>application.yml配置Redis属性spring: redis:原创 2021-11-27 00:36:06 · 982 阅读 · 0 评论 -
Redis释放锁报错Lock was released in the store due to expiration. The integrity of data protected by this
背景今天在生产环境中碰到了这个问题,Lock was released in the store due to expiration. The integrity of data protected by this lock may have been compromised.分析查看报错来源,是来自于org.springframework.integration.redis.util.RedisLockRegistry的内部类 RedisLock的 unlock 方法。@Overridepubl原创 2021-11-26 00:29:59 · 4128 阅读 · 0 评论 -
SpringBoot Redis @Cacheable异常导致服务不可用解决方案
背景生产环境中,为了提高吞吐量和QPS,常常使用@Cacheable注解对较频繁访问的数据用Redis进行缓存。起初,服务正常运行,后来随着缓存的数据量和请求并发数的增加,偶现从Redis中取数据时抛出连接超时等异常,导致该次请求中断,影响该次业务。更有甚者,当Redis宕机时,由于@Cacheable注解的方法并未进行缓存冲突,而是直接抛出异常,会导致依赖这些方法的服务不可用。我们需要Redis服务器出现连接超时等问题时不影响程序的正常运行,即出问题时不抛出异常,可以继续向下执行方法,从数据库/本地缓存原创 2021-11-23 00:32:40 · 4079 阅读 · 1 评论 -
Redis为什么这么快
基于内存的操作,数据存在内存中,处理速度快采用单线程,避免了不必要的上下文切换和竞争条件,也不存在多进程或者多线程导致的切换而消耗 CPU,不用去考虑各种锁的问题,不存在加锁释放锁操作,没有因为可能出现死锁而导致的性能消耗(Redis 6 版本已经改为多线程)使用多路I/O复用模型,非阻塞IO优化的数据结构,包括简单动态字符串、双向链表、压缩列表、哈希表、跳表和整数数组...原创 2021-11-22 00:01:09 · 380 阅读 · 0 评论 -
Redis缓存与数据库一致性解决方案
你可能会说这题我会,很简单嘛。读请求:先查缓存,查不到再查数据库,然后将数据保存到缓存中写请求:先删除缓存,在更新数据库,在通过后续的读请求把数据保存到缓存中。乍一听,很有道理的样子,然而这是有问题的。试想这样一种场景,有两个并发操作,一个是更新操作,另一个是查询操作。当更新操作删除缓存后,查询操作开始了,由于此时Redis中无对应数据了,查询操作会将旧数据取出来放到缓存中去,然后更新操作继续进行更新了数据库。此时,在缓存中的数据将是旧数据,导致缓存中的数据是脏的,而且还一直这样脏下去了。在不同原创 2021-11-15 00:20:22 · 309 阅读 · 0 评论
分享