redis
文章平均质量分 54
redis相关
寂寞旅行
编程原则>>>不写代码: 不修改原有代码,尽量不增加新代码,不重复造轮子
在开始的几年中,在csdn中查到了解决开发问题的方法,现在也想成为帮助他人的一份子,出一份力;记录工作点滴困难,让后来者少走弯路;从涉及springboot,springcloud全家桶,mybatis,mp,influxdb,nebula,mysql,redis,mongodb,rabbitmq,多线程编程,分布式锁,html,jsp,jquery;取得系统集成中级证书;
展开
-
Redis持久化:RDB与AOF详解
RDB也被叫做Redis数据快照,简单来说就是把内存中所有的数据都记录在磁盘中,当Redis实例故障重启后,从磁盘读取快照文件,恢复数据。快照文件称为RDB文件,默认是保存在当前的运行目录(RDB可以理解周期定时任务,任务内容就是全量备份数据每次触发RDB的时候,就会重新生成一个新的RDB文件,覆盖旧的RDB文件文件,这样就可以确保备份得到最新的数据。AOF的全称叫做Append Only File(追加文件)Redis处理的每一个命令都会记录在AOF文件中,可以看做是命令日志文件(原创 2023-08-29 08:00:00 · 650 阅读 · 0 评论 -
redis安装,使用
对于redis,我是个小白,redis功能强大,可以存储各种集合的数据,吞吐量极高redis使用的时候可以百度一些redisutil,去操作redis库.也可以通过spring对其完美的集成,引入相应pom文件,通过spring去操作redis.个人建议使用spring集成方式,简便,通用.redis可视化工具链接:https://pan.baidu.com/s/1L0baHaTSmW3j...原创 2020-09-14 11:47:50 · 89 阅读 · 0 评论 -
redis 数据类型
redis 存储数据五大数据类型: 分别为String List HashMap Set ZSet1 String使用场景可以很丰富,json数据可以存入,那么其实再不考虑性能的情况下,此种数据类型兼容了各种数据;使用方法也很简单,直接set,然后可以设置过期时间等,过期时间很重要,它可以实现例如,订单超时,分布式锁等,防止由于reids服务挂掉而使得应该过期的key未被程序删除,而造成业...原创 2022-04-25 13:44:12 · 140 阅读 · 0 评论 -
2021-02-08 关于redis报错Could not get a resource from the pool(不影响使用)
02-08 09:29:58.330 [RMI TCP Connection(7)-192.168.71.143] WARN [o.s.boot.actuate.redis.RedisHealthIndicator] - Redis health check failedorg.springframework.data.redis.RedisConnectionFailureException...原创 2021-02-08 09:36:49 · 593 阅读 · 0 评论 -
redis缓存安全
缓存穿透: 是指当用了redis作为缓存的时候,可以防止每次都读取数据库,就是当redis中存在,那么返回数据,查不到去数据库查询;穿透就是,每次查询在redis中都查询不到(不存在的key),那么每次都访问数据库,当此种情况为高压下会导致数据库压力骤增,这就是相当于越过了缓存,只查询数据库的一种情况,就叫做缓存穿透;那么如何解决缓存穿透呢??其实也很简单,就是每次查询的时候,都把这个数据缓存...原创 2021-09-03 11:57:27 · 221 阅读 · 0 评论 -
spring集成redis 存入map值报错
分析: 我项目中用的是线程池方式处理实时数据,其实并发量根本不会太高,只是基本上没秒都会有数据处理,且也有存入其他String类型的值,但是却没有问题,唯独存这个map报错,但是看redis中的数据还是对的!1 既然报并发修改异常,那么我将redis存入map类型的这块代码的整体方法上加上了@sync... 关键字,查看控制台,果然不报错了,但是这个很影响性能啊,不能这么搞.===============================数据不互通的验证=====================原创 2021-01-29 11:22:35 · 676 阅读 · 0 评论 -
redis过期监听/redis事务
一般使用场景就是处理订单过期自动取消(比如淘宝下单30分钟过期自动取消)实现步骤:1 创建订单,并为订单生成一个绑定到订单的token,并设置到redis中,有效期为30分钟(key为token value为订单id);2 通过过期时间回调客户端可以接收到过期的key,然后在数据库中查到此次key对应的value 即订单id,那么如果订单状态还是未支付状态则取消该订单,库存还原;这里面的...原创 2021-08-30 19:17:18 · 431 阅读 · 0 评论 -
redis删除key
redis的key删除的时候,是一个阻塞操作;为什么会阻塞呢,是在删除key的时候,首先要寻找的key,然后进行删除,然而当key已经过期了,或者被他人删除之后,在删除的时候,就找不到这个key,那么它就一直寻找,新版的redis 有最大重试次数(以前的版本直接死循环),那么就会导致一直阻塞.这对于一线上项目来说,阻塞的这段时间可能是致命的;如何避免??1 删除普通key,删除key的时候,...原创 2022-05-12 11:27:53 · 7886 阅读 · 0 评论 -
redis的消息发布订阅实现
一般项目中都会使用redis作为缓存使用,加速用户体验,实现分布式锁等等,redis可以说为项目中的优化,关键技术实现立下了汗马功劳.今天带来它的另一个功能,实现简单的消息发布订阅~,也就是说如果是简单的消息队列,首先是不需要我们自己实现的,其次很简单的那种,也无需引入mq相关的东西;/**@Slf4j@Overridelog . info("接受消息的通道:{}" , new String(message . getChannel()));原创 2022-12-26 10:45:47 · 814 阅读 · 0 评论 -
spring中redis的缓存机制
正常我们用redis缓存的时候,一般会这样用: 客户端/接口 查询数据到服务器,服务器首先从缓存redis中读取,当读取到数据,立即返回;当读取不到去数据库读取,读取到之后放入redis中(防止缓存穿透的通用做法),然后返回数据;那么在平时的项目中,我们要每一个接口都这样写嘛?答案是不需要的,第一种,可以通过aop 拦截到请求,然后将需要的请求做如上的缓存处理; 第二种就是spring中的re...原创 2021-08-26 23:26:41 · 403 阅读 · 0 评论 -
redis过期key删除策略
1 定时删除: 在设置键过期时间的同时,创建一个定时器,让定时器在过期时间来临时,立即执行对键的删除操作;这样做有一个弊端,就是当有很多key同一时间过期的时候,会造成一时间的CPU紧张,从而可能影响整体服务性能的吞吐量;2 惰性删除: 放任键过期不管,但是每次从键空间获取键时,都检查取得的键是否过期,过期的话就删除该键,没过期的话就返回该键;这样的弊端是会存在很多已经过期的占用着内存; 优...原创 2022-04-12 17:25:39 · 1144 阅读 · 0 评论 -
2022-03-05 redis延时双删策略
redis延迟双删的策略redis延迟双删的策略1.为什么要进行延迟双删一般我们在更新数据库数据时,需要同步redis中缓存的数据所以存在两种方法:(1)第一种方案:先执行update操作,再执行缓存清除。(2)第二种方案:先执行缓存清除,再执行update操作。弊端:当存在并发请求时,很容易出现问题(1)第一种方案:当请求1执行update操作后,还未来得及进行缓存清除,此时请求...原创 2022-03-17 10:14:12 · 1871 阅读 · 0 评论 -
redis cluster
虚拟槽分区巧妙地使用了哈希空间,使用分散度良好的哈希函数把所有的数据映射到一个固定范围内的整数集合,整数定义为槽(slot)。Redis Cluster槽的范围是0 ~ 16383。槽是集群内数据管理和迁移的基本单位。采用大范围的槽的主要目的是为了方便数据的拆分和集群的扩展,每个节点负责一定数量的槽。卡槽中的数据,在有节点数量变化的时候,卡槽会重新分配,那么卡槽会移动,卡槽中的数据会跟随卡槽移动...原创 2021-09-04 17:04:16 · 73 阅读 · 0 评论 -
springboot 集成 redisson
其中引入了RedisProperties,正常来说,是无须编写redisson配置类的,但是不知为何,必须要有该配置类,否则注入redisson失败。其中 spring.redis.redisson 按照此,我在yml中配置,也是不生效的,无法读取配置。ps: 集成过程中百度了很多文章,也有一些疑惑,请知道的大神予以解答 两个问题,但是是同样的。集成 redisson 分两步,第一步引入pom,第二步需要配置。接下来就可以使用了,给出一个demo。2 自定义配置redisson地址。原创 2021-03-08 18:03:22 · 1248 阅读 · 2 评论 -
2022-04-08 redis的跳表
跳表: 名词听起来高大上,其实意思就是,查询的时候,可以不是一个一个的遍历key,而是跳跃性的查找key;什么是跳跃性的查找key呢?也很简单,如下图image.png原始链表中 如果找 7 这个元素,需要遍历7次然后跳表的操作,其实就是在key的适当位置建立索引,L1 就是第一层索引,L2为第二层,那么在此找元素7,就是需要两次即可,这就是跳表......那么此种方法熟悉my...原创 2022-04-08 09:09:56 · 74 阅读 · 0 评论 -
redis集群主从复制
=================有了以上的原理基础,那么去配置redis 的主从配置思路就清晰很多了=========================因为,一主当有写入操作,如果从库还是都配置到一主上,那么每次同步数据对主库压力太大了,而采用二叉树的形式配置,就极大的减轻了主从复制的时候主库的压力了;主从复制: 就是主库中的dml操作会被同步到从库中,但是需要一定的时间,不会立即同步,主从复制即主库的数据复制到从库;主库可以做写和读的操作,而从库一般只做读的操作,这也是读写分离的一个最初模型;原创 2021-09-01 15:59:07 · 76 阅读 · 0 评论 -
2021-09-01 redis 哨兵模式
哨兵机制: 主从复制中当主节点宕机后,redis集群无法写操作的问题,也就是自动重新配置一个master出来,这样就不用人为配置了;哨兵模式底层原理 :哨兵机制每隔10s(此时间可以配置),都会访问master的服务器,然后每次info找到自己的从redis,然后继续通过递归的方式继续info,无论是网状,还是树状,都可以找到所有的从节点,找到整个 redis 的服务列表;哨兵只会监听mas...原创 2021-09-02 17:09:54 · 105 阅读 · 0 评论