多服务器redis集群配置

原文:https://blog.csdn.net/HcJsJqJSSM/article/details/85345196

介绍

Redis是一款内存高速缓存数据库。Redis全称为:Remote Dictionary Server (远程数据服务),使用C语言编写,Redis是一个key-value存储系统(键值存储系统),支持丰富的数据类型,如:String、list、set、zset、hash。
Redis是一种支持key-value等多种数据结构的存储系统。可用于缓存,事件发布或订阅,高速队列等场景。使用C语言编写,支持网络,提供字符串,哈希,列表,队列,集合结构直接存取,基于内存,可持久化。

Redis的存储分为内存存储、磁盘存储和log文件。
Redis支持主从模式,可以配置集群,更利于支撑大型的项目。

redis是nosql,也是分布式。slave作为master的备份。

环境介绍

我用的是个集群,但是集群只有五台,所以有一个服务器上既有slave又有master。

配置

1.下载编译

下载redis:
https://redis.io/
由于下载的redis是6.0的,所以需要gcc9版本以上

gcc -v
yum -y install centos-release-scl
yum -y install devtoolset-9-gcc devtoolset-9-gcc-c++ devtoolset-9-binutils

临时换成gcc9:scl enable devtoolset-9 bash

在/etc/profile添加:

/opt/rh/devtoolset-9/enable

然后:
source /etc/profile

接着gcc编译:

tar -zxvf redis-6.0.8.tar
cd redis-6.0.8
make
cd src
make install PREFIX=/usr/redis

2.配置节点

2.1将redis传给各个服务器

scp -r /usr/redis hadoop@192.168.199.136:/usr/

2.2配置文档

在每个服务器上分别创建节点,例如:

cd /usr/redis
mkdir -p cluster-conf/6380

将src中的redis.conf移到cluster-conf/6380

修改redis.conf

port 6380  //六个节点配置文件分别是6380-6385

bind 192.168.1.109    //默认ip为127.0.0.1 需要改为其他节点机器可访问的ip 否则创建集群时无法访,和单机集群有区别

daemonize yes        //redis后台运行

pidfile /var/run/redis_6380.pid   //pidfile文件对应7001-7003

cluster-enabled yes   //开启集群

cluster-config-file nodes_6380.conf  //保存节点配置,自动创建,自动更新对应6380-6385

cluster-node-timeout 5000    //集群超时时间,节点超过这个时间没反应就断定是宕机

appendonly yes   //存储方式,aof,将写操作记录保存到日志中

6380-6385的6个配置文件都修改一下.根据所在目录修改即可.

每个服务器类似于上述操作。

由于是安装redis集群所以需要rubby,可以只在创建节点的服务器安装:

sudo yum install curl
curl --version
gpg --keyserver hkp://keys.gnupg.net --recv-keys 409B6B1796C275462A1703113804BB82D39DC0E3 7D2BAF1CF37B13E2069D6956105BD0E739499BDB

curl -sSL https://get.rvm.io | bash -s stable

这里可能会连不上,需要在/etc/hosts添加host

199.232.28.133 raw.githubusercontent.com

然后:

find / -name rvm -print
source /usr/local/rvm/scripts/rvm
rvm list known
rvm install 2.4.1
rvm use 2.4.1
rvm use 2.4.1 --default
rvm remove 2.0.0
ruby --version
gem install redis 

3.启动redis-server

每台服务器启动相应的redis节点

bin目录下,执行:

./redis-server ../cluster_conf/6380/redis.conf

查看redis进程
ps -ef | grep redis

创建master/slave redis集群,例如:

./redis-cli --cluster create 192.168.233.68:6380 192.168.233.76:6381 192.168.233.27:6382 192.168.233.80:6383 192.168.233.248:6384 192.168.233.68:6385 --cluster-replicas 1

cluster-replicas 1是给每一个master自动分配一个slave

4.检查redis集群

检查集群,查看master对应的salve
redis-cli -h 192.168.233.68 -p 6380 cluster nodes
可以看到:

e209002d26e08cf9c00e2ae134b8f8fdd8cce0b4 192.168.233.248:6384@16384 slave ac3859bacf151da51486c42690ad18f764210d7e 0 1601016306063 1 connected
4c98393de1caa88abe2660724ea50eb26092e304 192.168.233.80:6383@16383 slave 50b1ab8cb2ba25b8023327eab02ff6c50779ebc4 0 1601016307067 3 connected
138bf7e370868adea14295c3de3aad9cde00090f 192.168.233.76:6381@16381 master - 0 1601016305561 2 connected 5461-10922
50b1ab8cb2ba25b8023327eab02ff6c50779ebc4 192.168.233.27:6382@16382 master - 0 1601016305561 3 connected 10923-16383
c83d6e9385f766369e0e67b69a746c19db0e8c6b 192.168.233.68:6385@16385 slave 138bf7e370868adea14295c3de3aad9cde00090f 0 1601016307000 2 connected
ac3859bacf151da51486c42690ad18f764210d7e 192.168.233.68:6380@16380 myself,master - 0 1601016305000 1 connected 0-5460

上面可以看到每个master的编号对应一个slave

尝试查看name,并且给master添加数据

redis-cli -h 192.168.233.248 -p 6384 -c
192.168.233.68:6380> get name
-> Redirected to slot [5798] located at 192.168.233.76:6381
(nil)
192.168.233.76:6381> set foo bar
-> Redirected to slot [12182] located at 192.168.233.27:6382
OK
192.168.233.27:6382> get foo
"bar"

进入对应slave查看foo,或者任意节点检查

redis-cli -h 192.168.233.248 -p 6384 -c
192.168.233.248:6384> get foo
-> Redirected to slot [12182] located at 192.168.233.27:6382
"bar"
192.168.233.27:6382>
  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
配置一个Redis集群,你可以按照以下步骤进行操作: 1. 首先,你需要下载和编译Redis的源代码。你可以从Redis的官方网站上下载最新版本的Redis。 2. 下载和编译完成后,你需要在集群中的每台服务器上运行Redis实例。对于每台服务器,你需要在bin目录下执行以下命令: ``` ./redis-server /path/to/redis.conf ``` 其中,`/path/to/redis.conf`是你的Redis配置文件的路径。你需要根据实际情况进行设置。 3. 一旦所有的Redis实例都在各个服务器上运行起来,你就可以创建一个Redis集群了。你可以使用以下命令创建一个带有主从关系的Redis集群: ``` ./redis-cli --cluster create <ip1>:<port1> <ip2>:<port2> <ip3>:<port3> <ip4>:<port4> <ip5>:<port5> <ip6>:<port6> --cluster-replicas 1 ``` 其中,`<ip1>:<port1>`等是Redis实例所在的服务器的IP地址和端口号。你需要将它们替换为实际的IP地址和端口号。`--cluster-replicas 1`表示每个主节点都会有一个从节点。 请注意,这里有一个特殊情况,即你提到的其中一台服务器上同时运行了slave和master。在创建集群时,你需要保证每个Redis实例都是作为一个独立的节点进行加入。因此,在运行创建集群的命令时,你应该将该服务器的IP地址和端口号作为两个不同的节点进行添加,分别作为主节点和从节点。 以上是配置一个Redis集群的步骤。希望能对你有所帮助。如果你有更多问题,请随时提问。

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值