持续创作,加速成长!这是我参与「掘金日新计划 · 6 月更文挑战」的第25天,点击查看活动详情
redis存放对象不再使用json序列化反序列化,直接存放二进制
使用redisTemplate存储,redisTemplate.opsForValue().set(key,value);
springboot整合redis注解版本,底层使用二进制存放
@EnableCaching
@Cacheable(cacheNames="分组名", key="key")
springboot整合redis报错问题:500。key要加单引号
@Cacheable(cacheNames="", key="'key'")
mysql与redis一致性问题
1、直接采用mq订阅mysql binlog日志文件增量同步到redis中
当发生update/insert/del,会产生binlog日志,mq订阅binlog,当binlog日志发生变化,直接储存到redis里,最终一致性方案
2、alibaba的canal框架
redis持久化机制(aof、rdb),redis宕机之后数据不会丢失
全量同步与增量同步区别:
全量同步:每天定时、避开高峰期或者采用周期的实现将数据拷贝到另外一个地方。缺点:存在数据丢失。
频率低,数据可能会丢失
增量同步:采用的行为操作对数据的实现同步。只要有写的命令,直接就写到硬盘。
频率非常高,随服务器的压力大,保证数据不丢失
RDB采用定时(全量)持久化机制。
AOF采用日志操作,增量同步
reidsServer有两个进程,一个主进程处理redis请求,一个子进程处理reids的RDB数据同步,定时同步,会把整个数据以二进制,存放在一个RDB临时文件(dump.rdb),会覆盖RDB临时文件
Redis会将数据集的快照dump到dump.rdb文件中。此外,我们也可以通过配置文件来修改Redis服务器dump快照的频率,在打开6379.conf文件之后,我们搜索save,可以看到下面的配置信息:
save 900 1 #在900秒(15分钟)之后,如果至少有1个key发生变化,则dump内存快照。
save 300 10 #在300秒(5分钟)之后,如果至少有10个key发生变化,则dump内存快照。
save 60 10000 #在60秒(1分钟)之后,如果至少有10000个key发生变化,则dump内存快照。