Redis集群 - 配置最简单的Redis主从读写分离

要求:

1、你已经知道redis是什么
2、熟悉Linux基本操作(CentOS 6.5)
3、有单机redis开发相关经验
4、有主观能动性,至少熟练百度的使用

redis主从配置初步:2个节点主从

如果我们redis的压力很大,如果我们的并发高到我们读数据和写数据都有了很大压力。
那么我们可能就需要把redis分开部署,并且配置为一个『主从』的状态。
这里写图片描述

首先我们要安装redis

官网地址:
https://redis.io
(一定要去官网下载)
这里写图片描述

下载之后,会有一个redis-3.2.8.tar.gz
(注意我们后面整个过程不要使用root帐号,我这里是在一个叫’admin’的用户下’)
这里写图片描述

1、解压

tar zxvf redis-3.2.8.tar.gz
   
   
  • 1

2、进入redis源码目录

cd redis-3.2.8
   
   
  • 1

这里边的文件,我们需要编译
这里写图片描述

3、编译
根据手册
https://redis.io/download
执行命令:

make
   
   
  • 1

编译好后会在src目录生成一些可执行文件
这里写图片描述

为了方便,我们把一些文件拷贝到/usr/local/redis中

1、在/usr/local/下创建需要的目录

cd /usr/local
sudo mkdir redis #创建目录
   
   
  • 1
  • 2

注意:如果报”admin is not in the sudoers file. This incident will be reported.”错误。是因为执行sudo命令的用户不在sudoers文件的列表中。可以通过编辑sudoers文件,来解决这个问题。
切换到root帐号执行:vi /etc/sudoers
为了让admin这个用户能够执行sudo命令,在sudoers文件中加入一行:
admin ALL=(ALL) ALL

2、/usr/local/redis目录创建成功,需要修改redis目录所有者

sudo chown -R admin:admin redis/
   
   
  • 1

3、然后在redis目录,新建binconf目录。(不是必须的,只不是过为了方便而已)
这里写图片描述

4、把前面编译后的redis的可执行文件(在redis-3.2.8/src/下),复制到/usr/local/redis/bin里面去

sudo cp redis* /usr/local/redis/bin/
#拷贝redis开头的所有文件
   
   
  • 1
  • 2

5、redis提供给我们了一个默认的配置文件redis.conf
把它复制到/usr/local/redis/conf目录下,并改名为6379.conf

sudo cp redis.conf  /usr/local/redis/conf/6379.conf
   
   
  • 1

这里写图片描述

6、删除一些不必要的文件(我们只需要redis的可执行文件)

 sudo rm *.c
 sudo rm *.o
 sudo rm *.h
   
   
  • 1
  • 2
  • 3

这里写图片描述

7、修改配置文件

sudo vi 6379.conf
   
   
  • 1

修改如下几个配置:

daemonize no 
修改为:
daemonize yes  (后台程序方式运行)

pidfile /var/run/redis_6379.pid
修改为:
pidfile /usr/local/redis/redis_6379.pid
(把pidfile生成到有权限的目录下)

   
   
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7
  • 8
  • 9

8、启动
注意文件夹路径不要搞错

/usr/local/redis/bin/redis-server /usr/local/redis/conf/6379.conf 
   
   
  • 1

这里写图片描述

9、配置从节点

sudo cp 6379.conf 6380.conf
   
   
  • 1

修改6380.conf
修改对应的端口和pid配置
然后加入slaveof 127.0.0.1 6379

port 6379
修改为:
port 6380

pidfile /usr/local/redis/redis_6379.pid
修改为:
pidfile /usr/local/redis/redis_6380.pid

增加一行:
slaveof 127.0.0.1 6379
   
   
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7
  • 8
  • 9
  • 10

10、启动2个redis实例

/usr/local/redis/bin/redis-server /usr/local/redis/conf/6379.conf 
/usr/local/redis/bin/redis-server /usr/local/redis/conf/6380.conf 
   
   
  • 1
  • 2

这里写图片描述

11、启动redis客户端
去连接6379那个实例

cd /usr/local/redis/bin/

./redis-cli -h 127.0.0.1 -p 6379
   
   
  • 1
  • 2
  • 3

连上之后输入:info命令
这里写图片描述
可以从中看到很多信息,比如:

role:master #本机是『主』
connected_slaves:1 #有1个『奴隶』
slave0:ip=127.0.0.1,port=6380,state=online,offset=11957,lag=1
#"从"服务器iP地址和端口是
   
   
  • 1
  • 2
  • 3
  • 4

这里写图片描述

12、新增

set name zhangsan
   
   
  • 1
#读取
get name
   
   
  • 1
  • 2

这里写图片描述

13、然后访问6380那个实例

./redis-cli -h 127.0.0.1 -p 6380

get name
   
   
  • 1
  • 2
  • 3

这里写图片描述

我们发现这2个实例已经完成了数据的同步。

如果我们要在从服务器写入

set name lisi
#会提示:(error) READONLY You can't write against a read only slave.
#因为从服务器只有读权限,我们做的就是redis的读写分离啊
   
   
  • 1
  • 2
  • 3

这里写图片描述

我们这里演示是在一台机器上,分了2个端口,真实开发肯定是2台机器了,不然分离就没有意义了。

        <link rel="stylesheet" href="https://csdnimg.cn/release/phoenix/template/css/markdown_views-ea0013b516.css">
            </div>
  • 4
    点赞
  • 8
    收藏
    觉得还不错? 一键收藏
  • 3
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 3
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值