CentOS6.5 Redis3.x集群安装配置

本文涉及的产品
云原生内存数据库 Tair,内存型 2GB
云数据库 Redis 版,社区版 2GB
推荐场景:
搭建游戏排行榜
云数据库 Redis 版,经济版 1GB 1个月
简介:

===============================================================
准备三台机器做redis

192.168.99.5 
192.168.99.28
192.168.99.29

操作系统:

CentOS6.5 64bit

软件包:

redis-3.2.7.tar.gz
redis-3.3.3.gem
rubygems-1.3.7-5.el6.noarch.rpm

================================================================

1.编译安装redis

tar zxf redis-3.2.7.tar.gz 
cd redis-3.2.7

[
Centos6.5上需要修改一下Makefile文件
$redis/src下

修改如下属性
FINAL_LIBS = -lm -lrt

]


make
sudo make install

2.安装rubygems

sudo yum install -y rubygems-1.3.7-5.el6.noarch.rpm

3.gem 安装集群用的redis

sudo gem install -l redis-3.3.3.gem

================================================================
在每一台几点上都要执行以下步骤

1.创建集群配置文件夹

sudo mkdir /usr/local/redis-cluster/{7000,7001,7002}

2.7000,7001,7002下,每个文件夹下创建redis.conf,

sudo touch /usr/local/redis-cluster/7000(7001,7002)/redis.conf

并添加如下配置:

#监听的端口,7000,7001,7002
port  7000  

#redis本机ip
bind 192.168.99.5
daemonize    yes

#按端口号修改pid的序号
pidfile  /var/run/redis_7000.pid

#启用集群模式
cluster-enabled  yes

#也是按照端口号修改序号
cluster-config-file  nodes_7000.conf
cluster-node-timeout  15000
appendonly  yes

3.指定配置文件启动3个redis实例

sudo /usr/local/bin/redis-server /usr/local/redis-cluster/7000/redis.conf
sudo /usr/local/bin/redis-server /usr/local/redis-cluster/7001/redis.conf
sudo /usr/local/bin/redis-server /usr/local/redis-cluster/7002/redis.conf

4.查看端口

sudo netstat -tnlp

会有7000,7001,7002 ,17000 ,17001 ,17002 这几个redis进程


创建集群

1.在任一台机器,解压后的redis的/src/目录下执行以下程序,选出三台机器上的三个节点作为redis集群的三个master节点

./redis-trib.rb create 192.168.99.5:7000 192.168.99.28:7000 192.168.99.29:7000

输出:

Using 3 masters:
192.168.99.29:7000
192.168.99.28:7000
192.168.99.5:7000
M: 29608e1a8b3d3e28315d1231b3a79dc3349bde21 192.168.99.5:7000
   slots:10923-16383 (5461 slots) master
M: eeb89dca7b91e683e77a443f03187eef4ab26cda 192.168.99.28:7000
   slots:5461-10922 (5462 slots) master
M: 0d589ff3efc479fc4acae086045ee1293767bdc6 192.168.99.29:7000
   slots:0-5460 (5461 slots) master
Can I set the above configuration? (type 'yes' to accept): yes
>>> Nodes configuration updated
>>> Assign a different config epoch to each node
>>> Sending CLUSTER MEET messages to join the cluster
Waiting for the cluster to join...
>>> Performing Cluster Check (using node 192.168.99.5:7000)
M: 29608e1a8b3d3e28315d1231b3a79dc3349bde21 192.168.99.5:7000
   slots:10923-16383 (5461 slots) master
   0 additional replica(s)
M: 0d589ff3efc479fc4acae086045ee1293767bdc6 192.168.99.29:7000
   slots:0-5460 (5461 slots) master
   0 additional replica(s)
M: eeb89dca7b91e683e77a443f03187eef4ab26cda 192.168.99.28:7000
   slots:5461-10922 (5462 slots) master
   0 additional replica(s)
[OK] All nodes agree about slots configuration.
>>> Check for open slots...
>>> Check slots coverage...
[OK] All 16384 slots covered.
You have new mail in /var/spool/mail/mobileoa

2.检查集群:选定集群中一个master节点的ip就可以查询整个集群

[mobileoa@db2test1 src]$ ./redis-trib.rb check 192.168.99.5:7000
>```  

Performing Cluster Check (using node 192.168.99.5:7000)
M: 29608e1a8b3d3e28315d1231b3a79dc3349bde21 192.168.99.5:7000

slots:10923-16383 (5461 slots) master
0 additional replica(s)
M: 0d589ff3efc479fc4acae086045ee1293767bdc6 192.168.99.29:7000
slots:0-5460 (5461 slots) master
0 additional replica(s)
M: eeb89dca7b91e683e77a443f03187eef4ab26cda 192.168.99.28:7000
slots:5461-10922 (5462 slots) master
0 additional replica(s)
[OK] All nodes agree about slots configuration.

Check for open slots...
Check slots coverage...

[OK] All 16384 slots covered.



3.给集群每个主节点分散配置从节点,
                添加节点 类型    要给那个master添加从节点                   从节点ip                   要添加到的集群

./redis-trib.rb add-node --slave --master-id 29608e1a8b3d3e28315d1231b3a79dc3349bde21 192.168.99.28:7001 192.168.99.5:7000
./redis-trib.rb add-node --slave --master-id 29608e1a8b3d3e28315d1231b3a79dc3349bde21 192.168.99.29:7001 192.168.99.5:7000

./redis-trib.rb add-node --slave --master-id 0d589ff3efc479fc4acae086045ee1293767bdc6 192.168.99.5:7002 192.168.99.5:7000
./redis-trib.rb add-node --slave --master-id 0d589ff3efc479fc4acae086045ee1293767bdc6 192.168.99.28:7002 192.168.99.5:7000

./redis-trib.rb add-node --slave --master-id eeb89dca7b91e683e77a443f03187eef4ab26cda 192.168.99.5:7001 192.168.99.5:7000
./redis-trib.rb add-node --slave --master-id eeb89dca7b91e683e77a443f03187eef4ab26cda 192.168.99.29:7002 192.168.99.5:7000


4.查看集群状态

./redis-trib.rb check 192.168.99.5:7000

----

测试集群


redis-cli -h 192.168.99.28 -c -p 7002  ,加参数 -C 可连接到集群,因为上面 redis.conf 将 bind 改为了ip地址,所以 -h 参数不可以省略。

set hello world


查看key


在另一个节点连接redis ,并查询

redis-cli -h 192.168.99.5 -c -p 7001
get hello

相关实践学习
基于Redis实现在线游戏积分排行榜
本场景将介绍如何基于Redis数据库实现在线游戏中的游戏玩家积分排行榜功能。
云数据库 Redis 版使用教程
云数据库Redis版是兼容Redis协议标准的、提供持久化的内存数据库服务,基于高可靠双机热备架构及可无缝扩展的集群架构,满足高读写性能场景及容量需弹性变配的业务需求。 产品详情:https://www.aliyun.com/product/kvstore     ------------------------------------------------------------------------- 阿里云数据库体验:数据库上云实战 开发者云会免费提供一台带自建MySQL的源数据库 ECS 实例和一台目标数据库 RDS实例。跟着指引,您可以一步步实现将ECS自建数据库迁移到目标数据库RDS。 点击下方链接,领取免费ECS&RDS资源,30分钟完成数据库上云实战!https://developer.aliyun.com/adc/scenario/51eefbd1894e42f6bb9acacadd3f9121?spm=a2c6h.13788135.J_3257954370.9.4ba85f24utseFl
目录
相关文章
|
3天前
|
存储 缓存 NoSQL
Redis常见面试题(二):redis分布式锁、redisson、主从一致性、Redlock红锁;Redis集群、主从复制,哨兵模式,分片集群;Redis为什么这么快,I/O多路复用模型
redis分布式锁、redisson、可重入、主从一致性、WatchDog、Redlock红锁、zookeeper;Redis集群、主从复制,全量同步、增量同步;哨兵,分片集群,Redis为什么这么快,I/O多路复用模型——用户空间和内核空间、阻塞IO、非阻塞IO、IO多路复用,Redis网络模型
Redis常见面试题(二):redis分布式锁、redisson、主从一致性、Redlock红锁;Redis集群、主从复制,哨兵模式,分片集群;Redis为什么这么快,I/O多路复用模型
|
16天前
|
网络协议 Linux Python
Python脚本配置Centos静态ip地址
这是一个Python脚本,用于自动化配置CentOS系统的静态IP地址。脚本创建或修改文件,填写接口名(如ens33)、IP地址、子网掩码、网关和DNS。运行时需替换变量值并使用`sudo`以管理员权限执行。完成配置后,它会重启网络服务。注意,用户应根据实际网络环境调整参数。
Python脚本配置Centos静态ip地址
|
2天前
|
NoSQL Redis
如何根据 Redis 的 AOF 配置级别优化性能
如何根据 Redis 的 AOF 配置级别优化性能
|
2天前
|
NoSQL Redis
为什么配置为 appendfsync everysec 的 AOF 也可能导致 Redis 延迟变大
为什么配置为 appendfsync everysec 的 AOF 也可能导致 Redis 延迟变大
|
16天前
|
网络协议 Shell Linux
Shell脚本配置Centos静态ip地址
这是一个用于在CentOS上设置静态IP的Shell脚本摘要: - 脚本交互式获取用户输入的IP地址、子网掩码、网关和DNS。 - 使用`sed`命令动态更新`/etc/sysconfig/network-scripts/ifcfg-ENS33`配置文件。 - 修改`BOOTPROTO`为`static`,并设置IP、NETMASK、GATEWAY和DNS1字段。 - 用`systemctl restart network`重启网络服务。 - 提示用户新配置的静态IP信息。
|
20天前
|
缓存 NoSQL Java
Redis Spring配置集群
【7月更文挑战第5天】
47 10
|
21天前
|
应用服务中间件 Linux nginx
CentOS 7 上配置 Nginx 作为反向代理
在CentOS 7上设置Nginx反向代理的步骤:安装Nginx;启动Nginx服务编辑`/etc/nginx/nginx.conf`;添加`proxy_pass http://app_server_address;将请求转发至应用服务器;重启Nginx`sudo systemctl restart nginx`;验证配置是否成功
|
22天前
|
弹性计算 NoSQL 网络安全
软件开发常见之云数据库Redis连接不上如何解决,修改配置后,需要重启下redis服务,配置才能生效呢,是重启,而不是重载配置,最后导致的问题是点击了的重启,配置修改了之后必须点击重启,而不是修改
软件开发常见之云数据库Redis连接不上如何解决,修改配置后,需要重启下redis服务,配置才能生效呢,是重启,而不是重载配置,最后导致的问题是点击了的重启,配置修改了之后必须点击重启,而不是修改
|
29天前
|
安全 关系型数据库 MySQL
CentOS 8 中安装与配置 MySQL
CentOS 8 中安装与配置 MySQL
101 3
|
29天前
|
存储 NoSQL 安全
Redis系列学习文章分享---第十五篇(Redis最佳实践--设计优雅的key+合适的数据结构+持久化如何配置+慢查询问题解决)
Redis系列学习文章分享---第十五篇(Redis最佳实践--设计优雅的key+合适的数据结构+持久化如何配置+慢查询问题解决)
34 1