主从配置篇
上次从朋友那里弄完了整个redis安装及使用,但是想到如果数据量很大,redis效率降低怎么办,想到了redis集群,自己在网上百度了个帖子开始整起来
工具准备:电脑(必须的),虚拟机(如果你是linux系统不需要了)
首先安装完成你的redis,上个笔记已经记录过了
在redis文件夹下建立你的文件夹(英文名字)
我建立的是redis-cluster 命令为:mkdir redis-cluster
进入新建的文件夹创建几个新的文件夹,准备开启多个redis,新的文件夹以端口号命名(方便查找)
比如我的是 9001 -9003 方法还是 mkdir 9001/9002/9003
用cp 命令cp redis-server 和 redis.conf 命令为 cp ../redis.conf 9001 cp ../src redis-server 9001 (因为我在redis-cluster文件夹下所以命令是这样的)
给3个文件件全部cp 一份之后记得改端口,(方法见redis安装)启动每个redis 并测试是否OK
启动方法redis-server --port9001--daemonize yes
redis-server --port9002--daemonize yes --slave-read-only no
redis-server --port9003--daemonize yes --slave-read-only no
daemonize yes表示以守护进程的方式启动,slave-read-only no表示关闭slave只读方式,否则在Master上增加值的时候,会报错误
127.0.0.1:9001>setfoo value
127.0.0.1:9001> You can'twriteagainstareadonly slave
启动三个终端
redis-cli -p9001/9002/9003
指定9001 为master
127.0.0.1:9002>SLAVEOF127.0.0.19001
OK
127.0.0.1:9002>
指定时需要在改终端中输入命令,依次在9003 中指定master为9001
启动终端测试(不贴图了)
到这里主从复制就已经实现了,是不是很简单呀,下面大概介绍一下原理
master 接到指令后,开始启动后台保存进程保存数据,接着收集所有的数据修改指令。后台保存完了,master 就把这份数据发送给 slave,slave 先把数据保存到磁盘,然后把它加载到内存中,master 接着就把收集的数据修改指令一行一行的发给 slave,slave 接收到之后重新执行该指令,这样就实现了数据同步。
slave 在与 master 失去联系后,自动的重新连接。如果 master 收到了多个 slave 的同步请求,它会执行单个后台保存来为所有的 slave 服务
网友评论