Redis
文章平均质量分 87
沉河不浮
个人博客:https://cxydhi.github.io/
展开
-
Redis学习6——Redis分布式锁
Redisson是一个在Redis基础上实现的Java驻内存数据网络,它不仅提供一系列的分布式java常用对象,还提供许多分布式服务,其宗旨是促进使用者对Redis的关注分离(Separation of Concern),从而让使用者能将精力更多集中在处理业务逻辑上。原创 2024-05-06 10:36:04 · 1013 阅读 · 0 评论 -
Redis学习5——Redis应用之签到
在很多时候,我们遇到用户签到的场景,用户进入应用时,获取用户当天的签到情况,如果没有签到,用户可以签到,一般这种功能,可以通过set数据结构或bitMap来实现,但bitMap和set相比,其占用的空间更小,因此我们选择使用bitMap来实现签到的功能。位图由一系列二进制位组成,每个位可以被设置为1或0,当我们在处理需要高效存储和操作大量二进制位数据的适合,位图是一个非常有用的工具。我们通过Redis可视化工具,查看bit的值,可以看出其二进制值与我们操作的一致。原创 2024-05-06 10:35:28 · 428 阅读 · 0 评论 -
Redis学习4——Redis应用之限流
Redis作为一个内存数据库其读写速度非常快,并且支持原子操作,这使得它非常适合处理频繁的请求,一般情况下,我们会使用Redis作为缓存数据库,但处理做缓存数据库之外,Redis的应用还十分广泛,比如这一节,我们将讲解Redis在限流方面的应用。我们可以将请求打造成一个zset数组,每一次请求进来时,value保持一致,可以用UUID生成,然后score用当前时间戳表示,通过range方法,来获取某个时间范围内,请求的个数,然后根据这个个数与限流值对比,当大于限流值时,进行限流操作。原创 2024-05-06 10:14:25 · 762 阅读 · 0 评论 -
Redis学习3——Redis应用之缓存
注意,不能先删除cache,在写db,因为在并发的情况下,可能存在,请求1删除缓存,然后写db,并且写db操作还没结束,这时请求2获取缓存,此时因为缓存被删除了,因此会从数据库读数据, 并存入缓存,这个时候的数据是未更新的,当请求2结束后,请求1写db结束,此时就会造成数据库和缓存中的数据不一致。上面的代码,存在一些问题,当请求1查询id=1的用户,从缓存中查询不到时,会查询数据库,然后将数据更新到数据库,然后请求2查询id=1的用户,从缓存中查询到,便直接返回,这是理想的情况。原创 2024-05-06 10:13:43 · 1156 阅读 · 0 评论 -
Redis学习2——SpringBoot整合Redis,Redis工具类
依赖和配置pom.xmlSpringBoot整合Redis,需要引入spring-boot-starter-data-redis依赖 <dependency> <groupId>org.springframework.boot</groupId> <artifactId>spring-boot-starter-data-redis</artifactId> </depen原创 2024-05-06 10:13:04 · 403 阅读 · 0 评论 -
Redis学习1——redis简介、基础
Redis(Remote Dictonary Server) 是由Salvatore Sanfilippo开发的key-value缓存数据库,基于C语言开发。目前市面上,Redis和MongoDB是当前使用最广泛的NoSQL,而就Redis技术而言,它的性能十分优越,可以支持每秒十几万此的读/写操作,其性能远超数据库,并且还支持集群、分布式、主从同步等配置,原则上可以无限扩展,让更多的数据存储在内存中,更让人欣慰的是它还支持一定的事务能力,这保证了高并发的场景下数据的安全和一致性。原创 2024-05-06 10:12:19 · 802 阅读 · 1 评论