Redis 学习笔记 Day4(SpringBoot整合Redis的快捷配置)(Redis持久化)

Redis集合与SpringBoot

  1. 首先Redis在Java上的原生API是Jedis ,它的使用方式和Redis的命令行基本一致
    1. 需要注意的是,如果写事务的话,需要自行用tryCatch来阻拦运行时的报错,保证事务的原子性
  2. Redis通过Spring-data-redis来集合到SpringBoot中
    1. 【源码分析】:在中,SpringFramwork有一个AutoConfig包,在里面能够找到所有导入Jar包的配置类
    2. 通过点击RedisAutoConfiguration里面能够进入Redis自动配置,再选择RedisProperties.class能够看到可以配置的字段和属性
    3. 在application.properties里面通过prefix+字段名=值的方式进行配置,即可完成对Redis的配置。


自定义RedisTemplate

因为RedisAutoConfig中声明了,如果项目中有redisTemplate方法的话就会自动覆盖源方法(如下图)

从源码中能看到,源生的redisTemplate是<Object,Object>泛型的,在真正的企业级项目中,redisTemplate都是重写的,需要将泛型定义为<String, Object>避免转换类型的负担

并且,可以在Template中完成序列化。或其他更方便的操作

接下来可以写一个RedisUtils来简化redisTemplate中的调用方法,让代码中redisTemplate.opsForValue().set() 变成 redisUtils.set(),完成质的飞跃

具体见代码可查接口站



Redis.conf

1、配置文件 unit单元 对大小写不敏感!

2、导入,外部配置文件 例如java中的import,include

3、网络 如果远程访问需要改bind 的ip 

4、通用GENERAL

守护进程的配置 用来控制程序关闭是否会终止redis的进程

5、RDB 快照(持久化相关)

save 900 1 900秒内有一次修改就进行快照

save 300 10 300秒内有10次修改就进行快照

save 60 1000 60秒内有1000次修改件就进行快照

快照生成的文件类型是.rdb 可以在配置文件中进行dir ./的位置配置

6、最大内存配置

配置可控制最大内存你是多少,如果超出内存的处理方式:

volatile-lru 对设置过期时间的key进行lru (默认值)

allkeys-lru 删除lru算法的key 

allkeys-random 随机删除,

volatile-ttl 删除快过期的,

valatile-random 随机删除快过期的,

noeviction 不删除 直接报错

7、Append Only 模式 AOF配置

可以配置AOF模式的yes/no 

可以配置持久化文件名字 / 配置持久化频率 (appendsync everysec)



Redis持久化

因为Redis是内存数据库,如果不进行持久化操作,那么所有保存的数据是会断电就会丢失数据的

RDB Redis DateBase  快照

触发机制

  1. 满足save规则时,生成rdb文件
  2. 执行flushall命令,生成rdb文件
  3. shutDown Redis , 生成rdb文件

恢复rdb文件

1、只需要将rdb文件放在redis启动目录就可以,redis启动时会自动检查dump.rdb文件,并自动恢复

2、查看需要存在的位置

正常情况,默认配置已经足够使用了

优点

1、适合大规模的数据回复

2、对数据的完整性要求不高

缺点

1、需要一段时间间隔进程操作!如果redis意外宕机了,这个最后一次修改数据就没有了!

2、在fork进程的时候,会占用一定的内存空间!

最后:一般情况正常使用RDB默认配置,并且将dump.rdb文件做好备份

  • 1
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值