1.redis安装与编译
# 下载,解压,编译redis
$ wget http://download.redis.io/releases/redis-5.0.0.tar.gz
$ tar xzf redis-5.0.0.tar.gz
# 进入到解压目录
$ cd redis-5.0.0
$ make
# 进入到redis-5.0.0/src 目录下运行
$ make install
编译后结果如下:
#在redis文件夹下新建etc和bin目录,将redis.conf拷贝到 etc下,常用的5个命令移动到bin目录下
#启动redis ,启动之前编辑redis.conf 文件将 daemonize选项 改为yes (后台启动)
$ bin/redis-server etc/redis.conf
#验证启动是否成功
$ ps-ef |grep redis
#退出redis服务
$ Kill 进程号 或 pkill redis-server
2.集群搭建
redis集群至少需要2N+1个master节点(3个),在这里我们搭建三个master节点,并且为每一个master再挂一个slave节点,总共6个节点.我们在这里采用一台机器上创建6个redis实例,并将它们配置成集群模式,搭建一个伪集群,与真正的分布式配置方法几乎一样,搭建步骤如下:
2.1 在usr/local/下 创建文件夹 redis-cluster ,在redis-cluster下创建 8001,8002,8003,8004,8005,8006文件夹
2.2 将redis.conf拷贝至redis-cluster下的8001文件夹下,修改配置文件
- Daemonize yes
- Port 8001 (分别对每个机器的端口还进行设置)
- Bind 192.168.1.102 (必须绑定当前机器的ip,方便集群定位机器,不绑定可能会出现循环查找节点及其的情况)
- Dir /usr/local/redis-cluster/8001/ (指定数据文件存放位置,必须指定不同的目录位置,否则可能丢失数据)
- Cluster-enable yes(启动集群模式)
- Cluster-config-file nodes-8001.conf (800x与前面的端口号对应上)
- Cluster-node-timeout 5000
- Appendonly yes (开启aof模式)
2.3 将8001下的redis.conf配置文件分别拷贝到剩余的5个文件下
2.4 将8002 8003 8004 8005 8006 下的配置文件的 b,d,f 项进行相应修改,可在vim使用批量替换命令
:%s/源字符串/目的字符串/g
2.5 分别启动6个实例
使用 ps -ef |grep redis查看状态
2.6 创建redis集群(redis5.0使用redis-cli),5.0以下版本见下文
./redis-cli --cluster create 192.168.1.102:8001 192.168.1.102:8002 192.168.1.102:8003
192.168.1.102:8004 192.168.1.102:8005 192.168.1.102:8006 --cluster -replicas 1
在最后的replicas 1 指的是 主节点与从节点数的比例值.表示 master/slave=1
输入yes之后可以看到 :
2.7 搭建完毕,开始验证
- 连接任意一个客户端 : ./redis-cli -c -h -p (-c表示集群模式)
如: /usr/local/redis/bin/redis-cli -c -h 192.168.1.102 -p 8001
2.进行验证: cluster info(查看集群信息),cluster nodes(查看节点列表)
3.
- 数据操作验证,可以看到集群是轮流向集群中存入数据,取出数据时会自动重定向
- 关闭集群需要逐个关闭: /usr/local/redis/bin/redis-cli -c -h 192.168.1.102 -p 8001 shutdown
分布式redis集群
2.7 redis5.0以下的版本 搭建方法
- 由于redis集群需要使用ruby命令,所以需要安装ruby( redis5.0使用redis-cli创建集群,所以不需此步骤
$ yum install ruby
$ yum install rubygems
$ gem install redis –version X.X.X(安装redis和ruby的接口)
在redis/src下 使用redis-trib.rb命令创建集群
创建完成,分别启动6个实例,步骤同上.