标签:持久 Redis 备份 RDB redis 宝典 面试 04redis rdb
目录
1.Redis简介
Memcache和Redis的区别?
为什么Redis能这么快?
1.1Redis执行原理
多路IO复用
1.2Redis常用数据类型
Redis底层数据类型
2.从海量数据里查询某一固定前缀的Key
先问清楚数据量是多大。
我们改用下图方式实现。
左边客户端等待30秒
3.如何通过redis实现分布式锁
3.1如何解决分布式锁
如何解决setnx长期有效的问题
以上代码中会出现什么问题呢?
如果setnx之后,代码挂掉了,后面的逻辑执行不到了。
3.2redis2.2之后的使用
4.如何实现异步队列
4.1一对一
有没有其他方法实现队列呢?有!
左边等待消息,右边push消息。
4.2一对多
想解决这个问题,需要使用专业的MQ
5.redis持久化
5.1Redis如何做持久化
RDB持久化
找到我们的redis.conf文件,在redis安装的根目录下。
我们搜索save
900表示900s内有一次写入指令,就会产生1次快照。
300表示300s内有一次写入指令,就会产生快照,如果是0<变动数<10,就会等到900s后才去做备份。
60表示60s内又1w条写入,我们就进行一次备份。
stop-writes-on-bgsave-error yes表示当备份进程出错的时候,主进程就停止新的写入操作,保护持久化数据一致性。
rdbcompression no表示rdb文件备份,在rdb文件备份时,将文件进行压缩后才备份。我们设置为no。
redis系统会定期备份文件在dump.rdb文件中
如上图所示,执行save保存,退出连接后可以看到生成rdb文件。
删除rdb文件,执行lastsave,会返回上次保存rdb文件的时间戳。
我们执行bgsave,重新保存一份,会发现lastsave的时间戳发生了改变。
自动化触发RDB
AOF持久化
同样的,进入redis.conf文件
搜索appendonly设置为yes,就会生效。
搜索appendfsync,默认每秒备份一次。配置完成之后重启redis服务
重启的时候我们可以看到它发送了一个shutdown指令,之后窒息感save指令,这里在保存我们的rdb文件。
当我们执行一条写入操作时,会在目录下看到生成了aof文件。
5.2RDB和AOP的优缺点
5.3混合模式备份
redis4.0之后推出的。
6.redis同步机制
使用pipeline的好处
6.1主从同步原理
6.2全同步过程
6.3增量同步过程
6.4redis哨兵模式(Redis Sentinel)
6.5流言协议Gossip
7.redis的集群原理
顺时针存储key在最近的节点上,如ObjectB就存储在NodeB上
如下图,如果NodeC服务奔溃,我们的对象也会顺时针存储在下一台NodeD服务器上。
如下图,如果我们新增NodeX,对其他Node节点不会影响,只需要我们在Object重新定位到NodeX节点上。
Hash环的数据倾斜问题
引入虚拟节点解决数据倾斜的问题
8.总结
redis和Memcache
多路io复用
常用类型
海量数据筛选条件key
实现简单的分布式锁
实现异步队列
持久化:RDB,AOF,混合
AOF:redis主从,redis哨兵,redis集群。
标签:持久,Redis,备份,RDB,redis,宝典,面试,04redis,rdb 来源: https://blog.csdn.net/qq_42035966/article/details/104764120
本站声明: 1. iCode9 技术分享网(下文简称本站)提供的所有内容,仅供技术学习、探讨和分享; 2. 关于本站的所有留言、评论、转载及引用,纯属内容发起人的个人观点,与本站观点和立场无关; 3. 关于本站的所有言论和文字,纯属内容发起人的个人观点,与本站观点和立场无关; 4. 本站文章均是网友提供,不完全保证技术分享内容的完整性、准确性、时效性、风险性和版权归属;如您发现该文章侵犯了您的权益,可联系我们第一时间进行删除; 5. 本站为非盈利性的个人网站,所有内容不会用来进行牟利,也不会利用任何形式的广告来间接获益,纯粹是为了广大技术爱好者提供技术内容和技术思想的分享性交流网站。