Redis原理主从配置解析

一 安装略过

二 redis特点

  
  
  
  
  1. 1). 同一个Master可以同步多个Slaves。  
  2.   2). Slave同样可以接受其它Slaves的连接和同步请求,这样可以有效的分载Master的同步压力。因此我们可以将Redis的Replication架构视为图结构。  
  3.   3). Master Server是以非阻塞的方式为Slaves提供服务。所以在Master-Slave同步期间,客户端仍然可以提交查询或修改请求。  
  4.   4). Slave Server同样是以非阻塞的方式完成数据同步。在同步期间,如果有客户端提交查询请求,Redis则返回同步之前的数据。  
  5.   5). 为了分载Master的读操作压力,Slave服务器可以为客户端提供只读操作的服务,写服务仍然必须由Master来完成。即便如此,系统的伸缩性还是得到了很大的提高。  
  6.   6). Master可以将数据保存操作交给Slaves完成,从而避免了在Master中要有独立的进程来完成此操作。  

三 工作原理

  
  
  
  
  1. 在Slave启动并连接到Master之后,它将主动发送一个SYNC命令。此后Master将启动后台存盘进程,同时收集所有接收到的用于修改数据集的命令,在后台进程执行完毕后,Master将传送整个数据库文件到Slave,以完成一次完全同步。而Slave服务器在接收到数据库文件数据之后将其存盘并加载到内存中。此后,Master继续将所有已经收集到的修改命令,和新的修改命令依次传送给Slaves,Slave将在本次执行这些数据修改命令,从而达到最终的数据同步。  
  2.     如果Master和Slave之间的链接出现断连现象,Slave可以自动重连Master,但是在连接成功之后,一次完全同步将被自动执行。 

四 主从配置 只需要在slave redis.conf配置文件中写上master的ip和redis端口即可

  
  
  
  
  1.  # slaveof <masterip> <masterport>  
  2. 改为  
  3. slaveof 127.0.0.1 6379 

五 启动redis 

  
  
  
  
  1. /usr/local/redis/redis.server /usr/local/redis/etc/redis.conf  
  2. 进入master进行操作  
  3. redis-cli -p 6379  ###进入master进行操作 

六 redis命令解析

  
  
  
  
  1. redis-server:Redis服务器的daemon启动程序         
  2. redis-cli:Redis命令行操作工具。当然,你也可以用telnet根据其纯文本协议来操作        
  3. redis-benchmark:Redis性能测试工具,测试Redis在你的系统及你的配置下的读写性能   
  4. redis-stat:Redis状态检测工具,可以检测Redis当前状态参数及延迟状况 

七 优化阶段:

  
  
  
  
  1. /etc/sysctl.conf 添加   
  2. vm.overcommit_memory=1  
  3. 刷新配置使之生效  sysctl vm.overcommit_memory=1   
  4. 补充介绍:   **如果内存情况比较紧张的话,需要设定内核参数:echo 1 > /proc/sys/vm/overcommit_memory   
  5. 内核参数说明如下:  overcommit_memory文件指定了内核针对内存分配的策略,其值可以是0、1、2。 
  6. 0, 表示内核将检查  是否有足够的可用内存供应用进程使用;如果有足够的可用内存,内存申请允许;否则,内存申 
  7. 请失败,并把错误返回给应用进程。    
  8. 1,表示内核允许分配所有的物理内存,而不管当前的内存状态如何。 
  9. 2, 表示内核允许分配超过所有物理内存和交换空间总和的内存  

 

八  redis配置文件解析: vim redis.conf

  
  
  
  
  1. daemonize yes  
  2. pidfile /usr/local/redis/var/redis.pid  
  3. port 6379  
  4. timeout 300  
  5. loglevel debug  
  6. logfile /usr/local/redis/var/redis.log  
  7. databases 16  
  8. save 900 1  
  9. save 300 10  
  10. save 60 10000  
  11. rdbcompression yes  
  12. dbfilename dump.rdb  
  13. dir /usr/local/redis/var/  
  14. appendonly no  
  15. appendfsync always  
  16. glueoutputbuf yes  
  17. shareobjects no  
  18. shareobjectspoolsize 1024  
  19.   
  20. 说明:  
  21. daemonize:是否以后台daemon方式运行  
  22. pidfile:pid文件位置  
  23. port:监听的端口号  
  24. timeout:请求超时时间  
  25. loglevel:log信息级别  
  26. logfile:log文件位置  
  27. databases:开启数据库的数量  
  28. save * *:保存快照的频率,第一个*表示多长时间,第三个*表示执行多少次写操作。在一定时间内执行一定数量的写操作时,自动保存快照。可设置多个条件。  
  29. rdbcompression:是否使用压缩  
  30. dbfilename:数据快照文件名(只是文件名,不包括目录)  
  31. dir:数据快照的保存目录(这个是目录)  
  32. appendonly:是否开启appendonlylog,开启的话每次写操作会记一条log,这会提高数据抗风险能力,但影响效率。  
  33. appendfsync:appendonlylog如何同步到磁盘(三个选项,分别是每次写都强制调用fsync、每秒启用一次fsync、不调用fsync等待系统自己同步)      

 

你可能感兴趣的:(redis,配置文件,主从)