reids 5.0.4 cluster集群模式部署实操。

一、准备工作

5.0.4的redis压缩包,可以自行去官网下载。
linux环境

二、解压并且安装

1.新建6个文件夹用于安装redis目录
目录路径为/root/tools/7001

[root@my 7001]# pwd
/root/tools/7001
[root@my 7001]# ls
redis-5.0.4.tar.gz

在这里插入图片描述
2.解压并且安装redis

tar -zxvf redis-5.0.4.tar.gz 
cd redis-5.0.4
make && make install

执行后执行测试make test 报错如下,tcl这个东西没有,得安装下
在这里插入图片描述
解决办法

wget http://downloads.sourceforge.net/tcl/tcl8.6.1-src.tar.gz  
tar xzvf tcl8.6.1-src.tar.gz  -C /usr/local/  
cd  /usr/local/tcl8.6.1/unix/  
./configure  
make  
make install

再次执行make test 这个错误不影响测试就不解决了,也说明一个问题,人生不都是完美的,学会容忍不完美。
在这里插入图片描述
3.把这些编译好的文件copy到另外五个文件夹。
修改配置文件

# 本机地址我这是一台机器就写
bind 127.0.0.1
# 端口号
port 7001
# 进程文件
pidfile "/var/run/redis_7001.pid"
#日志文件
logfile "/root/tools/7001/redis-5.0.4/access.log"
# data目录
dir "/root/tools/7001/redis-5.0.4/"
# 开启aof持久化
appendonly yes
#是否开启集群
cluster-enabled yes
# 配置文件
cluster-config-file "nodes-7001.conf"
# 超时时间
cluster-node-timeout 15000
#后台启动
daemonize yes

其他几台的配置文件和这个类似修改。
4.启动redis

[root@my redis-5.0.4]# redis-server redis.conf
[root@my redis-5.0.4]# ps -ef|grep redis
root      94318      1  0 21:44 ?        00:00:00 redis-server 127.0.0.1:7001 [cluster]
root      94330  94276  0 21:44 pts/2    00:00:00 grep --color=auto redis

其余几台也是一样的操作,把redis启动起来。
在这里插入图片描述

三、集群启动

这里的replicas 1表示副本为1个,也就是现在是三主,每个主redis下有一个从redis

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

输入yes确认配置
在这里插入图片描述

四 测试集群

-c 表示集群模式 redis-cli表示client模式进入redis,-p表示端口号
也就是进入7001这个redis

[root@my redis-5.0.4]# redis-cli -p 7001 -c 
127.0.0.1:7001> cluster nodes
a4b7c18d6eccd520a5a186ad8d3dcbdbdac5f92d 127.0.0.1:7002@17002 master - 0 1652883032330 2 connected 5461-10922
63956c905f54e9f17402cf85814b8a43a14b5b8b 127.0.0.1:7003@17003 master - 0 1652883031322 3 connected 10923-16383
208a5250236c36dd898023aa2d8504b0f0de9a4d 127.0.0.1:7004@17004 slave a4b7c18d6eccd520a5a186ad8d3dcbdbdac5f92d 0 1652883030314 4 connected
65eaae02c1ab075f416c259d349032f4d748645e 127.0.0.1:7006@17006 slave 3fd4d7af171cc73f97f8910636081b0e2253d2d1 0 1652883030000 6 connected
87449deef72cdbb210bea73dbe44d8b73874a989 127.0.0.1:7005@17005 slave 63956c905f54e9f17402cf85814b8a43a14b5b8b 0 1652883029000 3 connected
3fd4d7af171cc73f97f8910636081b0e2253d2d1 127.0.0.1:7001@17001 myself,master - 0 1652883028000 1 connected 0-5460

使用cluster nodes看看有哪些其他节点信息。

127.0.0.1:7001> get v
-> Redirected to slot [7761] located at 127.0.0.1:7002
(nil)
127.0.0.1:7002> get c
(nil)
127.0.0.1:7002> get aa
-> Redirected to slot [1180] located at 127.0.0.1:7001

可以看到不同的key值被分配到了不同的机器上,也就是成功部署了redis cluster集群模式

五、使用springboot连接集群

1.pom添加redis starter

        <!--    redis    -->
        <dependency>
            <groupId>org.springframework.boot</groupId>
            <artifactId>spring-boot-starter-data-redis</artifactId>
        </dependency>

2.添加redistemplate

@Configuration
public class RedisConfig {
    @Bean
    public RedisTemplate<Object, Object> redisTemplate(RedisConnectionFactory redisConnectionFactory)  {
        Jackson2JsonRedisSerializer serializer=new Jackson2JsonRedisSerializer(Object.class);
        RedisTemplate<Object, Object> template = new RedisTemplate<>();
        template.setConnectionFactory(redisConnectionFactory);
        template.setKeySerializer(serializer); //设置key序列化
        template.setValueSerializer(serializer);//设置value序列化
        return template; } }

3.application.properties 文件添加redis集群

spring.redis.cluster.expire-seconds=120
#设置redis集群的节点信息
spring.redis.cluster.nodes=192.168.31.96:7001,192.168.31.96:7002,192.168.31.96:7003,192.168.31.96:7004,192.168.31.96:7005,192.168.31.96:7006
#设置命令的执行时间,如果超过这个时间,则报错
spring.redis.cluster.command-timeout=5000

4.第一次访问的时候超时了,
做了以下改动
4.1 杀掉所有redis进程
4.2 删除文件夹下的nodes-*.conf
在这里插入图片描述
4.3 启动修改redis bind ip地址
4.4 启动redis,并且重新配置集群
redis-cli --cluster create 192.168.31.96:7001 192.168.31.96:7002 192.168.31.96:7003 192.168.31.96:7004 192.168.31.96:7005 192.168.31.96:7006 --cluster-replicas 1
4.5 开启端口

[root@my redis-5.0.4]# /sbin/iptables -I INPUT -p tcp --dport 7002 -j ACCEPT
[root@my redis-5.0.4]# /sbin/iptables -I INPUT -p tcp --dport 7003 -j ACCEPT
[root@my redis-5.0.4]# /sbin/iptables -I INPUT -p tcp --dport 7004 -j ACCEPT
[root@my redis-5.0.4]# /sbin/iptables -I INPUT -p tcp --dport 7005 -j ACCEPT
[root@my redis-5.0.4]# /sbin/iptables -I INPUT -p tcp --dport 7006 -j ACCEPT

  1. 代码中使用redis设置值
    在这里插入图片描述
    6.使用工具访问接口
    在这里插入图片描述
    可以看到已经返回了在代码中设置的redis值。

五、总结

1.本次测试,测试了redis生产中最经常使用的cluster配置集群模式,并且5.0版本是官方推荐的稳定版本。
2.测试了springboot连接集群并且使用。
3.这里会有防火墙的端口问题,需要注意下。

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
redis安装 1: 下载redis-5.0.4.tar.gz 2: 解压源码并进入目录 tar zxvf redis-5.0.4.tar.gz cd redis-5.0.4 3: 不用configure 4: 直接make (如果是32位机器 make 32bit) 查看linux机器是32位还是64位的方法:file /bin/ls 注:易碰到的问题,时间错误. 原因: 源码是官方configure过的,但官方configure时,生成的文件有时间戳信息, Make只能发生在configure之后, 如果你的虚拟机的时间不对,比如说是2012年 解决: date -s ' yyyy-mm-dd hh:mm:ss ' 重写时间 再 clock -w 写入cmos 5: 可选步骤: make test 测试编译情况 (可能出现: need tcl >8.4这种情况, yum -y install tcl ) 6: 安装到指定的目录,比如 /usr/local/redis make PREFIX=/usr/local/redis install 注: PREFIX要大写 7: 复制配置文件 cp redis.conf /usr/local/redis 注path为解压后的安装包路径 /root/gsj/redis-3.0.6 8: 让redis以后台进程的形式运行 vim /usr/local/redis/redis.conf 编辑redis.conf配置文件,修改如下内容; daemonize yes 9: make install之后,cd /usr/local/redis/bin得到如下几个文件 redis-benchmark 性能测试工具 redis-check-aof 日志文件检测工(比如断电造成日志损坏,可以检测并修复) redis-check-dump 快照文件检测工具,效果类上 redis-cli 客户端 redis-server 服务端 10: 启动与连接 启动redis并指定配置文件 cd /usr/local/redis ./bin/redis-server ./redis.conf #设置随机启动 vim /etc/rc.local 最后添加: /usr/local/redis/bin/redis-server /usr/local/redis/redis.conf 连接: 用redis-cli cd /usr/local/redis/bin/ ./redis-cli #进入 exit /quit #退出 关闭redis pkill redis-server #关闭 ./redis-cli shutdown #关闭 查看是否启动成功 ps -ef | grep redis #查看端口是否占用 netstat -tunpl | grep 6379 11: 测试 String(字符串)类型: set name lijie #设置键name的值为lijie get name #获取name的值。

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值