目录
先来给大家扩展机道面试官经常会问到关于redis的题
一、redis有哪些好处
二、redis相比memcached有哪些优势
三、redis常见性能问题和解决方案
四、redis集群的工作原理
五、redis主从的原理
redis的主从配置模拟(一主双从)
一、准备环境
二、分别安装redis
三、 主配置文件修改
四、重启redis,测试
先来给大家扩展机道面试官经常会问到关于redis的题
一、redis有哪些好处
(1) 速度快,因为数据存在内存中,类似于HashMap,HashMap的优势就是查找和操作的时间复杂度都是O(1)
(2) 支持丰富数据类型,支持string,list,set,sorted set,hash
(3) 支持事务,操作都是原子性,所谓的原子性就是对数据的更改要么全部执行,要么全部不执行
(4) 丰富的特性:可用于缓存,消息,按key设置过期时间,过期后将会自动删除
二、redis相比memcached有哪些优势
(1) memcached所有的值均是简单的字符串,redis作为其替代者,支持更为丰富的数据类型
(2) redis可以持久化其数据
三、redis常见性能问题和解决方案
(1) Master最好不要做任何持久化工作,如RDB内存快照和AOF日志文件
(2) 如果数据比较重要,某个Slave开启AOF备份数据,策略设置为每秒同步一次
(3) 为了主从复制的速度和连接的稳定性,Master和Slave最好在同一个局域网内
(4) 尽量避免在压力很大的主库上增加从库
(5) 主从复制不要用树状结构,用单向链表结构更为稳定,即:Master(写) <- Slave1(读) <- Slave2(读) <- Slave3(读)...
这样的结构方便解决单点故障问题,实现Slave对Master的替换。如果Master挂了,可以立刻启用Slave1做Master,其他不变。
四、redis集群的工作原理
主多从+哨兵模式(keelalived)
五、redis主从的原理
从服务器会向主服务器发出SYNC指令,当主服务器接到此命令后,就会调用BGSAVE指令来创建一个子进程专门进行数据持久化工作,也就是将主服务器的数据写入RDB文件中。在数据持久化期间,主服务器将执行的写指令都缓存在内存中。
在BGSAVE指令执行完成后,主服务器会将持久化好的RDB文件发送给从服务器,从服务器接到此文件后会将其存储到磁盘上,然后再将其读取到内存中。这个动作完成后,主服务器会将这段时间缓存的写指令再以redis协议的格式发送给从服务器。
redis的主从配置模拟(一主双从)
一、准备环境
这里我们准备三台服务器
master
slave1
slave2
关闭防火墙和selinux
做好域名解析
二、分别安装redis
安装详情请参考此文章
Redis服务-CSDN博客
三、 主配置文件修改
编辑master的redis配置文件:
cd /data/application/redis/
vim redis.conf
修改slave1的配置文件:
cd /data/application/redis/
vim redis.conf
找到主从模块
slave2的配置文件修改的地方和slave是一样的:
cd /data/application/redis/
vim redis.conf
找到主从模块
四、重启redis,测试
master
重启redis
登录redis查询主从状态
slave1
重启redis
登录redis查询主从状态
slave2
重启redis
登录redis查询主从状态
这是我们在master上创建一个key
也会同步到slave和slave2上
希望能够帮助到大家!!