Redis实现缓存的常用注解
- @Cacheable
- @Cacheput
- @CachEvict
Redis 分布式锁
- 支持分布式
- 可以更加细粒度的控制
- 多台机器上的多个进程对一个数据进行互斥的操作
Redis 持久化的使用的方式:
- RDB持久化
- AOF持久化
- 无持久化
- 同时使用RDB持久化和AOF持久化
RDB和AOF都可以Redis的持久化,
两者有一定的区别:
Redis默认是开启RDB的,AOF默认关闭,需要手动开启;
RDB和AOF同时开启的情况下,会只加载AOF,
两者都有相应的check命令,来进行检测修复--fix,
RDB
由系统fork出一个进程来执行
默认是根据自定义的时间间隔内发生的变化,来触发是否需要生成快照文件进行保存,
当然也可以使用命令来强制立刻保存,如:save...等命令
相关参数配置:
save 900 1
save 300 10
save 60 10000
优点:
1)恢复速度快,容易备份;
缺点:
1)由于是根据间隔生成快照,出现故障时会丢失间隔内数据;
2)如果数据过大,每次系统fork进程进行快照生成,相当消耗性能,有可能会导致终止客户端请求。
AOF
将Redis操作指令追加到以.aof结尾的文件中,默认是每秒(everysec)记录一次,
当aof文件超过大小时,系统会fork一个进程来对aof文件进行重写操作,即:auto-aof-rewrite。
相关参数配置:
appendonly no
appendfilename "appendonly.aof"
appendfsync everysec
no-appendfsync-on-rewrite no
auto-aof-rewrite-percentage 100
auto-aof-rewrite-min-size 64mb
优点:
1)记录内容完整,在数据恢复时丢失数据会比RDB少;
缺点:
1)操作记录较多,文件内容很大;
2)恢复速度比RDB慢;
3)由于记录频繁,相当耗性能;