redis 集群搭建笔记(linux环境)

目的:搭建主从复制模式的 redis 集群。

 

步骤:一、准备至少 6 个 redis 运行实例;

           二、使用 redis 自有工具创建集群;

           三、springboot 项目配置 redis 连接。

 

一、准备 redis 运行实例。

即安装并运行 redis 实例。如果有多台机器,建议同时进行下面的步骤,并保持一致的安装和运行目录。

1. 官网下载最新 tar.gz 包。参考链接:http://download.redis.io/releases/redis-5.0.5.tar.gz

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

2. 解压到准备好的目录,建议选用默认路径

tar -zxvf  redis-5.0.5.tar.gz /usr/local/redis

3. 进入解压好的 redis 文件夹,执行 make

cd /usr/local/redis

make && make install

执行完毕后,会在 /usr/local/bin 目录下看到一些文件

ls  /usr/local/bin

注意其中的 redis-cli 和 redis-server

4. 创建集群目录,复制必要的运行文件

cd /usr/local

mkdir redis-cluster && cd redis-cluster

mkdir 7000  7001      # 此处以端口号为文件目录

cp /usr/local/bin/redis-*  ./7000

cp /usr/local/bin/redis-*  ./7001

5. 创建 redis 配置文件

vim 7000/redis.conf

编辑如下内容

bind 本机ip4地址 127.0.0.1   # 绑定本机地址及回环地址,便于外部访问和本机访问

port 7000

cluster-enabled yes  # 激活集群

daemonize yes  # 后台执行

cluster-config-file nodes.conf   # 节点配置,如果不存在,会自动创建

cluster-node-timeout 5000  

appendonly yes

复制一份到另一个目录

cp 7000/redis.conf  7001/redis.conf

vim 7001/redis.conf 

修改端口

port 7001 

6. 运行实例

cd 7000

redis-server redis.conf   

cd ../7001

redis-server redis.conf 

7. 测试实例是否开启

ps aux | grep redis   # 查看 redis 进程

redis-cli -h 127.0.0.1 -p 7000  # 登录 redis 客户端

 

二、使用 redis 自有工具创建集群

如果已经有了 6 个以上的 redis 运行实例,那么可以开始创建集群了。

1. 使用 redis-cli 工具创建集群,注意所有节点已开启且信息准确无误

redis-cli --cluster create 1.1.1.1:7000 1.1.1.1:7001 …… --cluster-replicas 1

如果各个节点通信正常,将会显示一份 master 和 slave 的配置清单,查看无误后键入 yes 即可。

2. 测试集群。登录 redis 客户端,设置测试缓存。

redis-cli -h 127.0.0.1 -p 7000

127.0.0.1:7000> set test sss

如果有节点复制消息,说明集群正常。

 

三、springboot 项目配置 redis 连接

1. 加入依赖

<dependency>

            <groupId>org.springframework.boot</groupId>

            <artifactId>spring-boot-starter-data-redis</artifactId>

</dependency>

2. yml 资源文件配置 (redis 线程池部分请自行斟酌)

spring:

    redis:

        jedis:

            pool:

                max-idle: 50

                min-idle: 10

                max-active: 2000

                max-wait: 10s

        timeout: 5s

        cluster:

              nodes:

                  - 1.1.1.1:7000

                  - 1.1.1.1:7001

                  ……

3. 配置 redis 模板。此处设置 key 为 String 类型,方便查看key值。

    @Bean

    public RedisTemplate<String, Object> redisTemplate(RedisConnectionFactory redisConnectionFactory) {

        RedisTemplate<String, Object> redisTemplate = new RedisTemplate<>();

        redisTemplate.setConnectionFactory(redisConnectionFactory);

        // 设置key的序列化规则

        redisTemplate.setKeySerializer(new StringRedisSerializer());

        redisTemplate.afterPropertiesSet();

        return redisTemplate;

    }

4. 注入使用。

@Autowired

RedisTemplate<String, Object> redisTemplate;

// 方法内使用

redisTemplate.opsForValue().set("key", object, long, timeUnit);  // 键,值,时间数值,时间单位

redisTemplate.opsForValue().get("key");

更多使用场景请参考 springboot 关于 redis 整合部分的文档。

  • 1
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值