redis的cluster安装

第一章 Redis集群简介

1.1 功能概述

Remote Dictionary Server(Redis)是一个基于 key-value 键值对的持久化数据库存储系统。支持多种数据结构,包括 string (字符串)、list (链表)、set (集合)、zset (sorted set --有序集合)和 hash(哈希类型)。这些数据类型都支持 push/pop、add/remove 及取交集并集和差集及更丰富的操作,而且这些操作都是原子性的。

 

1.2 功能说明

Redis 集群是 Redis 的一个分布式实现,主要是为了实现以下这些目标(按在设计中的重要性排序):

在1000个节点的时候仍能表现得很好并且可扩展性是线性的。

没有合并操作,这样在 Redis 的数据模型中最典型的大数据值中也能有很好的表现。

写入安全:那些与大多数节点相连的客户端所做的写入操作,系统尝试全部都保存下来。不过公认的,还是会有小部分写入会丢失。是因为主从节点数据是通过网络传输来完成同步,主节点突然当机,会造成从节点没有同步数据的问题。

可用性:在绝大多数的主节点是可达的,并且对于每一个不可达的主节点都至少有一个它的从节点可达的情况下,Redis 集群仍能进行分区操作。

1.3 部署说明

集群使用槽指法存储数据,三台服务器6个节点,三个主节点和三个从节点,主从复制实现从节点完全复制关联的主节点。三个主节点通过hash槽分配存储命令,实现完全去中心化。集群支持节点的扩充和移除操作。

以下为生产环境实际部署说明:

1

主机名称

第一套集群

第二套集群

分配内存

IP地址

2

jdpsclb-nfppzk01

6379 6479

6579  6679

一致为50G

172.1.2.3

3

jdpsclb-nfppzk02

6379 6479

6579  6679

一致为50G

172.1.2.4  

4

jdpsclb-nfppzk03

6379 6479

6579  6679

一致为50G

172.1.2.5

在生产环境中三台服务器上部署了两套redis集群。以下文档为第一套rdis集群而编写。

第二章 Redis集群安装部署

2.1 环境准备

2.1.1 安装软件准备

redis-2.3.3

ruby-2.4.0

redis-3.2.1.gem

2.1.2 环境检查

安装之前运行rpm命令查询redis依赖包,如果没有安装依赖包,需要使用yum安装。

Redis查询依赖包是否安装命令:

rpm -q cpp binutils glibc glibc-kernheaders glibc-common glibc-devel gcc make gcc-c++ libstdc++-devel tcl zlib-devel

2.2 Redis单机安装

注意:安装时使用root用户安装,实际生产环境中请新建用户(redis或者cache等)进行管理。

2.2.1 Redis安装

  1. 安装redis依赖包,最好使用yum命令安装

yum -y install cpp binutils glibc glibc-kernheaders glibc-common glibc-devel gcc make gcc-c++ libstdc++-devel tcl zlib-devel

 

  1. 上传redis安装包到一个文件目录,解压安装包

安装路径:/home/redis/cluster/

配置文件:/home/redis/cluster/6379/redis.conf

tar –xzvf redis-3.2.9.tar.gz

 

  1. 进入解压的redis-3.2.9目录执行安装命令make和make install

make

 

make install

 

安装完成之后进入src目录,复制redis-trip.rb文件到/usr/local/bin (做环境变量必须需要root用户)

cp redis-trib.rb /usr/local/bin

 

2.2.2 修改配置文件

以下操作使用redis 用户操作

2.2.3 新建配置文件目录

mkdir -p /home/redis/standalone

 

2.2.3.1 复制配置文件到新建目录中,并配置。

拷贝配置文件

cp/opt/redis/redis-3.2.9/redis.conf /home/redis/standalone

修改配置文件

vi /home/redis/standalone/redis.conf

 

修改内容如下:

端口号:

port 6379(默认)

 

IP绑定,修改为服务器的ip:

bind 172.31.87.1

 

备份文件目录:

dir /home/redis/standalone/

配置后台启动

daemonize yes

修改进程号文件

pidfile /home/redis/standalone/redis.pid

修改日志文件路径

logfile "/home/redis/standalone/redis.log"

修改数据库开启数量

databases 1

保存并退出

2.2.3.2单机安装校验

使用redis用户校验

1. 启动redis服务,并查看redis进程

cd /home/redis/standalone

指定redis配置文件启动redis

redis-server redis.conf

查看redis进程

ps -ef|grep redis-server

 

2. 连接客户端测试

连接redis

redis-cli -h 172.22.1.155 -p 6379(实际地址以生产为准)

存值

set key1 value1

取值
get key1

 

3. 测试ok后关闭redis进程,redis集群不需要单独的节点

pkill -9 redis-server

 

 

2.3 集群安装

2.3.1 前提条件

  • 集群安装需要redis3.0+的版本支持
  • 每台服务器上完成单机安装
  • redis3.x集群需要ruby环境支持,需要安装ruby环境

2.3.2 集群配置文件修改

        切换redis用户

1. 在需要部署redis集群的主机上创建两个节点目录

mkdir -p /home/redis/cluster/6379

mkdir -p /home/redis/cluster/6479

 

2. 复制/home/redis/standalone目录下的redis.conf到6379节点目录下

 

3. 编辑刚复制的redis.conf 文件

 

4. 编辑配置文件内容

修改进程号文件,以端口号区分

修改pidfile

pidfile /home/redis/cluster/6379/redis.pid

 

修改日志文件存放目录

logfile “/home/redis/cluster/6379/redis.log”

 

开启集群

cluster-enabled yes

 

指定集群的配置文件

cluster-config-file "/home/redis/cluster/6379/nodes.conf"

 

集群中节点挂了,不影响整个集群,可以正常访问其他节点的数据

cluster-require-full-coverage no

 

此配置表示后台启动

daemonize yes

 

端口号:

port 6379(默认)

 

IP绑定,修改为自己服务器的ip:

bind 172.31.87.1

 

备份文件目录:

dir /home/redis/cluster/6379/

 

开启数据库的数量

databases 1

 

5. 配置文件修改完成之后把刚修改的redis.conf文件复制到各个节点目录下,然后修改各节点目录下配置文件的中的ip bind属性和端口号port属性

2.3.3 安装Ruby

  • 选取一台服务器安装ruby用来创建redis集群
  • 使用root权限安装
  • 上传ruby-2.4.0.tar.gz到服务器,并解压
  • 解压ruby安装包
  • tar xf ruby-2.4.0-tar.gz
  • 运行./configure执行安装配置和检测安装环境
  • ./configure

 

  1. 编译和安装

编译

make

 

安装

make install

 

2.3.4 安装redis-3.2.1.gem

Redis-3.2.1.gem只有装了ruby的机器上装redis.3.2.1.gem

上传redis-3.2.1.gem到/home/redis目录下进行安装

gem install –-local redis-3.2.1.gem   

 

2.3.5 各节点启动

分别启动三台服务器上的六个节点

redis-server /home/redis/cluster/6379/redis.conf

redis-server /home/redis/cluster/6479/redis.conf

三台服务器6个节点都开启后检查个节点开启状态,每个服务器会显示两个节点

ps –ef|grep redis-server

2.3.6 创建集群

在安装ruby的服务器上执行创建命令,创建命令如下:

redis-trib.rb create –-replicas 1 172.21.26.5:6379 

172.21.26.5:6479 172.21.26.6:6379 172.21.26.6:6479

172.21.26.7:6379 172.21.26.7:6479

开始创建集群,期间会让你输入yes或no  输入yes

看见下图提示,创建集群成功。

2.4 redis集群优化

2.4.1 maxmemory选项

不要让Redis所在机器物理内存使用超过实际内存总量的3/5。

配置redis.conf中的maxmemory选项 配置标准为物理内存的40%。

如果一台服务器上分主从两个节点就分别配置20%。如下选项:

(以生产环境分配为200G内存为准)

maxmemory 5100000000

设置内存淘汰机制
allkeys-lru: 优先删除掉最近不经常使用的key,用以保存新数据

maxmemory-policy allkeys-lru

2.4.2 开启TCP连接快速回收

开启TCP连接中TIME-WAIT sockets的快速回收,有助于快速释放TCP连接

修改/etc/sysctl.conf文件

修改下面的参数,如果没有请新增此参数

net.ipv4.tcp_tw_recycle=1

2.5 验证部署

2.5.1 数据存储验证

连接redis,使用set和get来存储和获取数据,注意存储节点信息

连接redis:

redis-cli –c –h 172.22.1.156(实际地址为生产为准)

存值

set key value

取值

get key

三个主节点都有相应说明创建集群成功

猜你喜欢

转载自www.cnblogs.com/lsolation/p/10955370.html