Redis
文章平均质量分 77
Redis
懒虫虫~
无论人生上到哪一层台阶,阶下有人在仰望你,阶上亦有人在俯视你。你抬头自卑,低头自得,唯有平视,才能看见真实的自己!
展开
-
SpringBoot+Redis+@Cacheable实现缓存功能
SpringBoot+Redis+@Cacheable实现缓存原创 2023-01-12 22:02:25 · 1204 阅读 · 0 评论 -
基于SpringBoot+RabbitMQ+Redis开发的秒杀系统(异步下单、热点数据缓存、解决超卖)
本项目是参考网上资料,整理开发而成,项目代码中加入了自己的理解和实现。基于SpringBoot框架开发,实现的功能主要是登录、商品列表、商品详情、秒杀商品,订单详情等功能。在系统业务处理中,使用到分布式session维持会话、Redis预减库存降低数据库访问压力,消息队列异步下单(削峰)、客户端轮询结果、接口限流防刷等技术。原创 2022-09-12 17:06:18 · 11189 阅读 · 14 评论 -
【SpringBoot AOP Redis实现延时双删功能实战】
一、业务场景在多线程并发情况下,假设有两个数据库修改请求,为保证数据库与redis的数据一致性,修改请求的实现中需要修改数据库后,级联修改redis中的数据。请求一:A修改数据库数据 B修改redis数据请求二:C修改数据库数据 D修改redis数据并发情况下就会存在A ---> C ---> D ---> B的情况 (一定要理解线程并发执行多组原子操作执行顺序是可能存在交叉现象的)## 1、此时存在的问题 A修改数据库的数据最终保存到了redis中,C在A之后也修改了数据库数据。 此原创 2022-08-14 12:04:13 · 4875 阅读 · 11 评论 -
SpringBoot+Redis实现秒杀系统实战
一、单机版SpringBootRedisApplicationpackage com.example.demo;import org.redisson.Redisson;import org.redisson.config.Config;import org.springframework.boot.SpringApplication;import org.springframework.boot.autoconfigure.SpringBootApplication;import org.原创 2021-07-10 16:59:57 · 697 阅读 · 1 评论 -
NoSQL数据库Redis在Linux系统下的安装和运维
NoSQL数据库Redis在Linux系统下的安装和运维链接地址如下:https://blog.csdn.net/qq_15329947/article/details/87003791转载 2020-06-26 15:38:37 · 163 阅读 · 0 评论 -
Redis删除、获取特定前缀key的优雅实现
一、数据量不大情况下,用keysRedis的单线程服务模式,命令keys会阻塞正常的业务请求。如果你一次keys匹配的数量过多或者在del的时候遇到大key,都会直接导致业务的不可用,甚至造成redis宕机的风险。删除 //删除所有以U:INFO:开头的key Set<String> keys1 = redisTemplate.keys("U:INFO:" + "*"); if (StringUtil.isNotNull(keys)) {原创 2021-06-17 20:44:33 · 6200 阅读 · 0 评论 -
Redis大量数据插入
有些时候,Redis实例需要装载大量用户在短时间内产生的数据,数以百万计的keys需要被快速的创建。我们称之为大量数据插入(mass insertion),本文档的目标就是提供如下信息:Redis如何尽可能快的处理数据。本文参考网上方案特意整理总结如下:方式一:使用Luke协议,通过redis-cli –pipe发送数据到服务器使用正常模式的Redis 客户端执行大量数据插入不是一个好主意:因为一个个的插入会有大量的时间浪费在每一个命令往返时间上。使用管道(pipelining)是一种可行的办法,但是原创 2021-06-14 18:00:23 · 4971 阅读 · 0 评论 -
Redis存储对象的三种方式
存储对象的三种方式分别为:1.将对象序列化后保存到Redis2.将对象用FastJSON转为JSON字符串后存储3.将对象用Hash数据类型存储序列化工具类SerializeUtilpublic class SerializeUtil { /* * 序列化 * */ public static byte[] serizlize(Object object){ ObjectOutputStream oos = null; Byt原创 2021-06-10 20:32:23 · 17063 阅读 · 2 评论 -
使用Redis中间件设计商品秒杀活动(使用Java多线程模拟高并发环境)
一、引入相关依赖可以新建Spring或Maven工程,在pom文件中引入Jedis依赖: <dependencies> <dependency> <groupId>redis.clients</groupId> <artifactId>jedis</artifactId> <version>2.9.0</version&g原创 2020-06-29 20:28:46 · 1917 阅读 · 0 评论 -
Redis之Pipeline(管道)
一、管道Redis是一种基于客户端-服务端模型以及请求/响应协议的TCP服务。这意味着通常情况下一个请求会遵循以下步骤:客户端向服务端发送一个查询请求,并监听Socket返回,通常是以阻塞模式,等待服务端响应。服务端处理命令,并将结果返回给客户端。Redis 管道技术可以在服务端未响应时,客户端可以继续向服务端发送请求,并最终一次性读取所有服务端的响应。管道(pipeline)可以一次性发送多条命令并在执行完后一次性将结果返回,pipeline 通过减少客户端与 redis 的通信次数来实现降转载 2021-06-01 15:03:35 · 1202 阅读 · 0 评论 -
Redis 的过期策略及手写LRU算法
一、Redis 的过期策略都有哪些?内存淘汰机制都有哪些?手写一下 LRU 代码实现?1.1Redis 过期策略Redis 过期策略是:定期删除+惰性删除。所谓定期删除,指的是 Redis 默认是每隔 100ms 就随机抽取一些设置了过期时间的 key,检查其是否过期,如果过期就删除。假设 Redis 里放了 10w 个 key,都设置了过期时间,你每隔几百毫秒,就检查 10w 个 key,那 Redis 基本上就死了,cpu 负载会很高的,消耗在你的检查过期 key 上了。注意,这里可不是每隔 1原创 2021-02-19 18:46:22 · 537 阅读 · 1 评论 -
Redis面试题总结
redis 简介简单来说 redis 就是一个数据库,不过与传统数据库不同的是 redis 的数据是存在内存中的,所以读写速度非常快,因此 redis 被广泛应用于缓存方向。另外,redis 也经常用来做分布式锁。redis 提供了多种数据类型来支持不同的业务场景。除此之外,redis 支持事务 、持久化、LUA脚本、LRU驱动事件、多种集群方案。为什么要用 redis/为什么要用缓存主要从“高性能”和“高并发”这两点来看待这个问题。高性能:假如用户第一次访问数据库中的某些数据。这个过程会比较慢,原创 2020-09-20 19:11:12 · 764 阅读 · 0 评论