>>分享流行的Java框架以及开源软件,对孙卫琴的《精通Spring》、《Spring Cloud Alibaba微服务开发零基础入门到实操》提供技术支持 书籍支持  卫琴直播  品书摘要  在线测试  资源下载  联系我们
发表一个新主题 开启一个新投票 回复文章 您是本文章第 26809 个阅读者 刷新本主题
 * 贴子主题:  redis伪集群搭建(亲测无坑) 回复文章 点赞(0)  收藏  
作者:flybird    发表时间:2020-01-27 18:35:12     消息  查看  搜索  好友  邮件  复制  引用

  
  
一、单机版安装部署
,伪集群只需要操作前1-8步即可,再往下浏览找到:二、单机版-伪集群 ?安装部署继续搭建,如需设置密码参照第10步

1、安装基本工具
    

yum install -y?gcc-c++ vim lrzsz wget?

   2、创建、进入目录    

mkdir /opt/redis
cd /opt/redis

   3、下载    

wget http://download.redis.io/releases/redis-5.0.5.tar.gz

   4、解压、查看文件    

tar zxvf redis-5.0.5.tar.gz
ll

   5、赋权    

chmod 777 -R redis-5.0.5

   6、进入目录,查看文件列表    

cd redis-5.0.5

   7、编译、安装文件?    

安装目录 ?/usr/local/redis
make install PREFIX=/usr/local/redis

   8、进入目录、查看文件列表    

cd /usr/local/redis/

   9、控制台启动,使用命令./redis-server    

bin/redis-server

  出现以下结果证明启动成功:

     点击在新窗口中浏览原图
CTRL+鼠标滚轮放大或缩小

     10、后台启动

     (1)从redis解压目录复制redis.conf到redis安装目录    

cp /opt/redis/redis-5.0.5/redis.conf ? /usr/local/redis/

   (2)修改redis.conf    

vim /usr/local/redis/redis.conf

  修改daemonize yes

参数 注释
port  7000 端口7000,7002,7003
bind 本机ip 默认ip为127.0.0.1 需要改为其他节点机器可访问的ip 否则创建集群时无法访问对应的端口,无法创建集群
daemonize    yes redis后台运行
pidfile  /var/run/redis_7000.pid pidfile文件对应7000,7001,7002
cluster-enabled  yes /开启集群  把注释#去掉
cluster-config-file  nodes_7000.conf 集群的配置  配置文件首次启动自动生成 7000,7001,7002
cluster-node-timeout  15000 请求超时  默认15秒,可自行设置
appendonly  yes aof日志开启  有需要就开启,它会每次写操作都记录一条日志 
maxmemory 7516192768 限制内存在7G
masterauth 123lxo[9^Ki34&x
requirepass 123lxo[9^Ki34&x


复制代码
?接着在另外一台机器上,操作重复以上三步,只是把目录改为7003、7004、7005,对应的配置文件也按照这个规则修改即可

     如果意外主机重启了,往集群中添加新节点    

redis-cli --cluster add-node -a "123lxo[9^Ki34&x" 192.168.47.212:7002 192.168.91.244:7000

   添加从节点    

redis-cli --cluster add-node -a "123lxo[9^Ki34&x" 192.168.172.127:7003 192.168.83.158:7003 --cluster-slave

   删除节点    

redis-cli --cluster del-node -a "123lxo[9^Ki34&x"  192.168.47.212:7005 b31ef3b428d20915248b07f1f32694e3caff8a1c

   设置开机自启    

[Unit]
Description=redis-server
After=network.target
[Service]
Type=forking
ExecStart=/home/ec2-user/redis-5.0.5/src/redis-server  /home/ec2-user/redis-5.0.5/redis_cluster/7003/redis.conf
PrivateTmp=true
[Install]
WantedBy=multi-user.target

sudo systemctl enable redis 开机自启
sudo systemctl status redis  查看状态

   在任意一个 redis 节点的主机上执行以下命令:    

redis-cli -c -h 192.168.0.100 -p 7000 cluster info

   如果有密码加    

redis-cli -c -h 192.168.0.100 -p 7000 -a ”123lxo[9^Ki34&x” cluster info

   列出集群节点
在任意一个 redis 节点的主机上执行以下命令,列出集群当前已知的所有节点(node),以及这些节点的相关信息。    

redis-cli -c -h 192.168.68.117 -p 7000  -a ”123lxo[9^Ki34&x” cluster nodes

   (3)进入目录,启动服务    

cd /usr/local/redis/
bin/redis-server redis.conf

   11、查看启动信息    

ps -ef | grep redis

   12、基本操作    

/usr/local/redis/bin/redis-cli

   13、停止服务    

redis-cli -h localhost -p 6379(端口) shutdown //停止服务

  或者 kill -9 (pid)
   二、单机版-伪集群 ?安装部署
1、编译安装
  第三部分(单机版安装部署 1 至 8 步)

     并把配置文件 ?redis.conf ?从 ?redis ?解压目录复制到 ?redis ?安装目录
cp /opt/redis/redis-5.0.5/redis.conf ??/usr/local/redis/

   2、安装基本工具    

yum install -y net-tools wget lrzsz vim

   3、从redis解压目录复制redis.conf到redis安装目录

     如果 /usr/local/redis 或者 /usr/local/redis/bin 下有?dump.rdb 文件,则删除    

rm -rf /usr/local/redis/dump.rdb
rm -rf /usr/local/redis/bin/dump.rdb

   4、创建目录 ?/usr/local/redis-cluster ?用来存放集群实例    

mkdir /usr/local/redis-cluster

  进入目录 ?/usr/local/redis-cluster    

cd /usr/local/redis-cluster

   5、创建节点目录(6个 ? 存放六个实例) ?    

mkdir node1 node2 node3 node4 node5 node6

   6、复制文件(把编译安装好的实例分别复制到港创建的 6 个目录下)    

cp -R /usr/local/redis/* /usr/local/redis-cluster/node1/
cp -R /usr/local/redis/* /usr/local/redis-cluster/node2/
cp -R /usr/local/redis/* /usr/local/redis-cluster/node3/
cp -R /usr/local/redis/* /usr/local/redis-cluster/node4/
cp -R /usr/local/redis/* /usr/local/redis-cluster/node5/
cp -R /usr/local/redis/* /usr/local/redis-cluster/node6/

   7、编辑各自节点(实例)的配置文件(以node1的配置文件redis.conf为例,其他5个节点参照node1)    

vim node1/redis.conf

  (1)daemonize yes ?
(2)port 7001 #(其余节点:7002、7003、7004、7005、7006)
(3)pidfile /var/run/redis_7001.pid ?#(其余节点:7002、7003、7004、7005、7006)redis以守护进程方式运行时,系统默认会把pid写入/var/run/redis_7001.pid
(4)cluster-enabled yes ?#此redis实例作为集群的一个节点
(5)cluster-config-file nodes-7001.conf?#(其余节点:nodes-7002、3、4、5、6.conf)集群配置文件,系统自动维护,不能人工编辑,主要记录集群中有哪些节点,状态等参数
(6)cluster-node-timeout 15000 ?#节点能够失联的最大时间
分别编辑其余各个节点的配置文件,修改各自的配置信息,改成各自对应的端口(具体过程参照node1)。
8、下载 gem 文件    

wget https://rubygems.org/downloads/redis-4.1.2.gem

  (下载地址:https://rubygems.org/gems/redis/versions/4.1.2
赋权    

chmod 777 redis-4.1.2.gem

   9、安装 ruby 环境    

yum install -y ruby
gem install /usr/local/redis-cluster/redis-4.1.2.gem

  直接安装gem文件会提示 ruby 版本太低,需要 ruby 版本在 2.3 以上。
解决方案:

     1、安装基本工具    

yum install -y curl ruby

   2、查看现有版本    

ruby -v
ruby 2.0.0p648 (2015-12-16) [x86_64-linux]

   3、获取rvm.io(发现安装失败)    

curl -L get.rvm.io | bash -s stable

   4、根据提示增加引用    

curl -sSL https://rvm.io/mpapis.asc | gpg2 --import -
或者
curl -sSL https://rvm.io/pkuczynski.asc | gpg2 --import -

   5、再一次获取rvm.io(成功!)    

curl -L get.rvm.io | bash -s stable

   6、查找配置文件    

find / -name rvm.sh
/etc/profile.d/rvm.sh

   使配置文件生效    

source /etc/profile.d/rvm.sh

   7、下载RVM依赖    

rvm requirements

   8、再查看配置文件    

find / -name rvm -print

   9、查看rvm列表    

rvm list known

   10、安装 ?rvm 的 v2.4.1    

rvm install 2.4.1

   11、配置环境变量    

rvm use 2.4.1
Using /usr/local/rvm/gems/ruby-2.4.1

rvm use 2.4.1 --default
Using /usr/local/rvm/gems/ruby-2.4.1

   12、删除旧版本的ruby    

rvm remove 2.0.0p648
ruby-2.0.0p648 - #already gone
Using /usr/local/rvm/gems/ruby-2.4.1

   13、查看最终版本    

ruby --version
ruby 2.4.1p111 (2017-03-22 revision 58053) [x86_64-linux]

   再次执行    

gem install /usr/local/redis-cluster/redis-4.1.2.gem

   10、使用 gem 安装 redis    

gem install redis

   11、进入目录?/usr/local/redis-cluster/ 创建启动脚本    

cd /usr/local/redis-cluster/
vim start-all.sh

   写入如下内容:    

/node1/bin/redis-server redis.conf
/node2/bin/redis-server redis.conf
/node3/bin/redis-server redis.conf
/node4/bin/redis-server redis.conf
/node5/bin/redis-server redis.conf
/node6/bin/redis-server redis.conf

   对启动脚本赋权    

chmod 777 start-all.sh?

   12、启动脚本    

./start-all.sh

   13、查看启动状况    

ps -ef | grep redis
ps aux | grep redis
netstat -lntp

   14、创建集群    

?./redis-cli --cluster create 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 127.0.0.1:7006 --cluster-replicas 1

  点击在新窗口中浏览原图
CTRL+鼠标滚轮放大或缩小

     说明:
  (1)Performing hash slots allocation on 6 nodes... # 代表一共有6个节点

     (2)Using 3 masters: # 有三个主节点 分别是端口 7001、7002、7003

     (3)Adding replica 127.0.0.1:7005 to 127.0.0.1:7001 # 端口7005的节点是端口7001节点的从节点,以此类推

     (4)M: 014d11a25cb3ea6999bd8a3237ad27252b324c54 ?127.0.0.1:7001 # 前面内一串是ID唯一标识

     (5)slots:0-5460 (5461 slots) master # 代表当前节点的哈希槽为0-5460,主节点才有哈希槽,redis集群中内置了16384(0-16383)个哈希槽。
(6)yes ?#开始搭建
   三、客户端测试
链接redis的客户端:redis-cli    

cd /usr/local/redis-cluster/

   复制脚本文件 ?redis-cli    

cp /opt/redis/redis-5.0.5/src/redis-cli /usr/local/redis-cluster/
ll
./redis-cli -h 127.0.0.1 -p 7001 -c
./redis-cli -h 127.0.0.1 -p 7005 -c

   查看集群信息    

127.0.0.1:7001> cluster info

   查看节点信息    

128.127.0.0.1:7001> cluster nodes
127.0.0.1:7001> info replication
127.0.0.1:7001> info server

   说明:
  (1)-h 对应的IP地址,不写的话默认就是本机。

     (2)-p 对应的是集群中指定实例的端口。

     (3)-c 这是必须的,代表集群启动。

     (4)[9189]、[4998] 是通过算法计算出的当前key的哈希槽,每个节点都有对应的哈希槽范围,存储的的数据是根据key的哈希槽存储到对应节点。
----------------------------
原文链接:https://blog.51cto.com/13555423/2467627

程序猿的技术大观园:www.javathinker.net



[这个贴子最后由 sunweiqin 在 2020-01-28 12:12:27 重新编辑]
  Java面向对象编程-->Java语言中的修饰符
  JavaWeb开发-->JSP中使用JavaBean(Ⅰ)
  JSP与Hibernate开发-->Java对象持久化技术概述
  Java网络编程-->XML数据处理
  精通Spring-->Vue组件开发高级技术
  Vue3开发-->通过Vuex进行状态管理
  RocketMQ 常用消息类型
  Spring boot参考指南
  git 仓库常用指令
  卫琴姐姐制作的最新视频课程:基于Spring的JavaWeb开发技术详...
  微服务的拆分方式
  Spring AOP的基本概念和注解
  Spring MVC中自定义国家化LocaleResolver
  @Resource注解的用法
  Spring MVC关于分页的简单实现
  Redis solr一二事 - 在spring中使用jedis 连接调试单机redi...
  深入Redis客户端(redis客户端属性、redis缓冲区、关闭redis客...
  什么是Redis?Redis的各项功能解决了哪些问题?
  Spring Cloud构建微服务架构的断路器
  使用idea和gradle编译spring5源码
  大话微服务」深入聊聊SpringCloud之客户端负载均衡机制
  更多...
 IPIP: 已设置保密
楼主      
1页 1条记录 当前第1
发表一个新主题 开启一个新投票 回复文章


中文版权所有: JavaThinker技术网站 Copyright 2016-2026 沪ICP备16029593号-2
荟萃Java程序员智慧的结晶,分享交流Java前沿技术。  联系我们
如有技术文章涉及侵权,请与本站管理员联系。