分享redis基础知识(一)

87 阅读2分钟

持续创作,加速成长!这是我参与「掘金日新计划 · 6 月更文挑战」的第25天,点击查看活动详情

image.png

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框架

image.png

redis持久化机制(aof、rdb),redis宕机之后数据不会丢失

全量同步与增量同步区别:

全量同步:每天定时、避开高峰期或者采用周期的实现将数据拷贝到另外一个地方。缺点:存在数据丢失。

频率低,数据可能会丢失

增量同步:采用的行为操作对数据的实现同步。只要有写的命令,直接就写到硬盘。

频率非常高,随服务器的压力大,保证数据不丢失

RDB采用定时(全量)持久化机制。

AOF采用日志操作,增量同步

reidsServer有两个进程,一个主进程处理redis请求,一个子进程处理reids的RDB数据同步,定时同步,会把整个数据以二进制,存放在一个RDB临时文件(dump.rdb),会覆盖RDB临时文件

image.png 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内存快照。