redis集群配置及介绍

1. redis集群的介绍

Redis 集群是一个提供在多个Redis节点之间共享数据的程序集。

Redis 集群并不支持同时处理多个键的 Redis 命令,因为这需要在多个节点间移动数据,这样会降低redis集群的性能,在高负载的情况下可能会导致不可预料的错误。

Redis 集群通过分区来提供一定程度的可用性,即使集群中有一部分节点失效或者无法进行通讯, 集群也可以继续处理命令请求。

在这里插入图片描述

Redis 集群的优势:

  1. 缓存永不宕机:启动集群,永远让集群的一部分起作用。主节点失效了子节点能迅速改变角色成为主节点,整个集群的部分节点失败或者不可达的情况下能够继续处理命令;

  2. 迅速恢复数据:持久化数据,能在宕机后迅速解决数据丢失的问题;

  3. Redis可以使用所有机器的内存,变相扩展性能

  4. 使Redis的计算能力通过简单地增加服务器得到成倍提升,Redis的网络带宽也会随着计算机和网卡的增加而成倍增长

  5. Redis集群没有中心节点,不会因为某个节点成为整个集群的性能瓶颈;

  6. 异步处理数据,实现快速读写。

2. 搭建redis集群

2.1 下载redis安装包并解压

# 下载安装包
cd /export/softwares
wget http://download.redis.io/releases/redis-3.2.8.tar.gz

# 解压
cd /export/softwares
tar -zxvf redis-3.2.8.tar.gz -C ../servers/

2.2 安装C程序运行环境

yum -y install gcc-c++

2.3 安装tcl

Tcl(tool command language)是一种简单的脚本语言,主要使用于发布命令给一 些互交程序如文本编辑器调试器shell。它有一个简单的语法 和很强可扩充性,Tcl可以创建新的过程以增强其内建命令的能力。

其次,Tcl是一个库包,可以被嵌入应用程序,Tcl的库包含了一个分析器、用于执行内建命令的例程和可以使你扩充(定义新的 过程)的库函数。应用程序可以产生Tcl命令并执行,命令可以由用户产生,也可以从用户接口的一个输入中读取(按钮或菜单等)。但Tcl库收到命令后将它分解并执行内建的命令,经常会产生递归的调用

yum  -y  install  tcl

2.4 编译redis

# 编译
make MALLOC=libc 或 make
# 测试编译是否完成
make test 或者 make install

2.5 创建redis不同实例的配置并修改

# 创建对应文件夹
cd /export/redis-3.2.8
mkdir -p /export/redis-3.2.8/clusters/7001
mkdir -p /export/redis-3.2.8/clusters/7002
mkdir -p /export/redis-3.2.8/clusters/7003
mkdir -p /export/redis-3.2.8/clusters/7004
mkdir -p /export/redis-3.2.8/clusters/7005
mkdir -p /export/redis-3.2.8/clusters/7006

mkdir -p /export/redis-3.2.8/logs
mkdir -p /export/redis-3.2.8/redisdata/7001
mkdir -p /export/redis-3.2.8/redisdata/7002
mkdir -p /export/redis-3.2.8/redisdata/7003
mkdir -p /export/redis-3.2.8/redisdata/7004
mkdir -p /export/redis-3.2.8/redisdata/7005
mkdir -p /export/redis-3.2.8/redisdata/7006

将配置文件复制到对应文件夹,然后修改配置

# 对应主机
bind hadoop1
# 端口,7001配置为7001,7002配置为7002,以此类推
port 7001
cluster-enabled yes
# 不同文件夹不同
cluster-config-file nodes-7001.conf
cluster-node-timeout 5000
appendonly yes
daemonize yes
# 同上,7001的地方都要对应不同文件夹进行修改
pidfile /var/run/redis_7001.pid
logfile "/export/redis-3.2.8/logs/7001.log"
dir /export/redis-3.2.8/redisdata/7001

2.6 启动redis

cd  /export/servers/redis-3.2.8
src/redis-server cluster/7001/redis.conf
src/redis-server cluster/7002/redis.conf
src/redis-server cluster/7003/redis.conf
src/redis-server cluster/7004/redis.conf
src/redis-server cluster/7005/redis.conf
src/redis-server cluster/7006/redis.conf

redis启动没有任何提醒,可以用ps -ef | grep redis查看是否启动

在这里插入图片描述

2.7 安装ruby运行环境

redis集群启动需要借助ruby环境

yum install ruby
yum install rubygems
gem install redis

如果出现ruby版本报错,按照以下方法解决:

在这里插入图片描述

# 安装rvm,rvm是ruby version Manager,ruby版本管理器
gpg --keyserver hkp://pool.sks-keyservers.net --recv-keys 409B6B1796C275462A1703113804BB82D39DC0E3 7D2BAF1CF37B13E2069D6956105BD0E739499BDB
curl -L https://get.rvm.io | bash -s stable
# 查找 rvm路径
find / -name rvm -print
source /usr/local/rvm/scripts/rvm

# 查看ruby版本
rvm list known

# 安装高版本ruby
rvm install 2.3.3
# 使用高版本ruby
rvm use 2.3.3
# 将ruby设为默认
rvm use 2.3.3 --default
# 卸载旧版本ruby
rvm remove 2.0.0

如果是curl报错可以参考curl表https://www.cnblogs.com/xueyou/p/curl.html

curl命令可以参考http://www.ruanyifeng.com/blog/2019/09/curl-reference.html

但是。。。。我的虚拟机一直访问不了https://get.rvm.io,本地浏览器可以访问,发现浏览器访问https://get.rvm.io后跳转到https://raw.githubusercontent.com/rvm/rvm/master/binscripts/rvm-installer。然鹅。。虚拟机还是访问不了这个网站,我就彻底放弃使用curl -L https://get.rvm.io | bash -s stable,而是选择了一种古老的方法。。在虚拟机上创建一个.sh文件,然后将网页上的内容复制。。再执行cat test.sh | bash -s stable

2.8 创建redis集群

cd /export/redis-3.2.8
gem install redis
src/redis-trib.rb create --replicas 1 192.168.100.100:7001 192.168.100.100:7002 192.168.100.100:7003 192.168.100.100:7004 192.168.100.100:7005 192.168.100.100:7006

2.9 连接redis客户端

src/redis-cli -h hadoop1 -c -p 7001

猜你喜欢

转载自blog.csdn.net/qq_24852439/article/details/104443659