redis-cluster搭建

一、搭建环境

  • os:centos6.4

  • redis:3.0.5

二、搭建步骤

1.安装必要的依赖

  • 安装gcc:yum install gcc
  • 安装rubygems:yum install rubygems
  • 安装ruby的redis驱动:gem install redis

2..获取安装包

使用下载好的包redis-3.0.5.tar.gz或直接命令下载:
wget http://download.redis.io/releases/redis-3.0.5.tar.gz

将安装包放到/soft/目录下:mv redis-3.0.5.tar.gz /soft/

3.安装编译

  • cd /soft
  • tar zxvf redis-3.0.5.tar.gz
  • cd redis-3.0.5
  • make MALLOC=libc
  • make install PREFIX=/usr/local/redis

4.创建文件夹

  • mkdir /data/redis-cluster -p
  • cd /data/redis-cluster/
  • mkdir 7000 7001 7002 7003 7004 7005

5.拷贝及修改配置文件

  • cp /soft/redis-3.0.5/redis.conf /data/redis-cluster/7000/

  • cp /soft/redis-3.0.5/redis.conf /data/redis-cluster/7001/

  • cp /soft/redis-3.0.5/redis.conf /data/redis-cluster/7002/

  • cp /soft/redis-3.0.5/redis.conf /data/redis-cluster/7003/

  • cp /soft/redis-3.0.5/redis.conf /data/redis-cluster/7004/

  • cp /soft/redis-3.0.5/redis.conf /data/redis-cluster/7005/

  • vim /data/redis-cluster/7000/redis.conf
    分别修改以上路径的配置文件内容项:7000-7005

   daemonize yes
   pidfile /var/run/redis_7000.pid
   port 7000
   cluster-enabled yes
   cluster-config-file nodes_7000.conf
   cluster-node-timeout 15000
   appendonly yes

6.启动6个redis实例

  • /usr/local/redis/bin/redis-server /data/redis-cluster/7000/redis.conf
  • /usr/local/redis/bin/redis-server /data/redis-cluster/7001/redis.conf
  • /usr/local/redis/bin/redis-server /data/redis-cluster/7002/redis.conf
  • /usr/local/redis/bin/redis-server /data/redis-cluster/7003/redis.conf
  • /usr/local/redis/bin/redis-server /data/redis-cluster/7004/redis.conf
  • /usr/local/redis/bin/redis-server /data/redis-cluster/7005/redis.conf

7.将集群管理程序复制到redis安装目录下

cp /soft/redis-3.0.5/src/redis-trib.rb /usr/local/redis/bin/

8.创建集群

/usr/local/redis/bin/redis-trib.rb create --replicas 1 127.0.0.1:7000 127.0.0.1:7001 127.0.0.1:7002 127.0.0.1:7003 127.0.0.1:7004 127.0.0.1:7005

使用create命令 --replicas 1 参数表示为每个主节点创建一个从节点,其他参数是实例的地址集合

创建成功:

9.检验测试

9.1测试存取值

​ 客户端连接集群redis-cli需要带上 -c ,redis-cli -c -p 端口号

​ 发现在几个节点中跳来跳去。

9.2测试集群节点选举

查看集群目前状况:/usr/local/redis/bin/redis-cli -c -p 7000 cluster nodes

可以看出7000,7001,7002为master节点,7003,7004,7005为对应从节点

现在杀掉7001节点的进程,再看看集群状况:

可以看到,节点7001为fail状态,它的从节点7004被选举为master节点

现在我们将7001节点重新启动,看是否会自动加入集群中以及充当master节点还是slave节点。

可以看到7001节点恢复了,成为了7004节点的从节点。

三、附录

redis配置参数说明

  daemonize:如需要在后台运行,把该项的值改为yes

  pdifile:把pid文件放在/var/run/redis.pid,可以配置到其他地址

  bind:指定redis只接收来自该IP的请求,如果不设置,那么将处理所有请求,在生产环节中最好设置该项

  port:监听端口,默认为6379

  timeout:设置客户端连接时的超时时间,单位为秒

  loglevel:等级分为4级,debug,revbose,notice和warning。生产环境下一般开启notice

  logfile:配置log文件地址,默认使用标准输出,即打印在命令行终端的端口上

  database:设置数据库的个数,默认使用的数据库是0

  save:设置redis进行数据库镜像的频率

  rdbcompression:在进行镜像备份时,是否进行压缩

  dbfilename:镜像备份文件的文件名

  dir:数据库镜像备份的文件放置的路径

  slaveof:设置该数据库为其他数据库的从数据库

  masterauth:当主数据库连接需要密码验证时,在这里设定

  requirepass:设置客户端连接后进行任何其他指定前需要使用的密码

  maxclients:限制同时连接的客户端数量

  maxmemory:设置redis能够使用的最大内存

  appendonly:开启appendonly模式后,redis会把每一次所接收到的写操作都追加到appendonly.aof文件中,当redis重新启动时,会从该文件恢复出之前的状态

  appendfsync:设置appendonly.aof文件进行同步的频率

  vm_enabled:是否开启虚拟内存支持

  vm_swap_file:设置虚拟内存的交换文件的路径

  vm_max_momery:设置开启虚拟内存后,redis将使用的最大物理内存的大小,默认为0

  vm_page_size:设置虚拟内存页的大小

  vm_pages:设置交换文件的总的page数量

  vm_max_thrrads:设置vm IO同时使用的线程数量

posted @ 2017-04-25 15:45  reason1  阅读(266)  评论(0编辑  收藏  举报