centos7安装配置redis集群:redis-cluster,最简单的配置记录过程

由于项目中需要搭建redis集群,这里记录安装过程。

一、环境说明

在生产环境中,官方建议使用6台redis(或虚机),其中三组,每组都是master-slave模式。

由于环境限制,我这里在一台机器上直接安装一个redis,通过使用3套配置文件来启动3个redis构建集群,效果是一样的,主要是配置文件修改。

只有三个主节点,没有从,实际应用中你可以加上(后面创建命令时会说明),在一台机器上操作,所以用三个不同端口来模拟三台设备:7000/7001/7002

二、安装redis,这个我使用的是3.8.2,新版本应该都可以。最初用5.0的没有编译通过。过程不详细说了,资料很多,大致:

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

tar -xvf redis-3.2.8.tar.gz

cd redis-3.2.8

yum install gcc -y (如果已经安装gcc编译器可略过)

make MALLOC=libc

make install

完成安装。

三、创建三个配置文件

1、创建三个目录,存放三个不同的配置文件,模拟三个redis启动配置,目录名称分别:7000/7001/7002

cd redis
mkdir 7000 7001 7002

2、把已安装redis的配置文件分别复制到这三个文件夹中,后面要根据机器配置做修改,你也可以修改完在复制过来该一下即可。具体就是修改名字、端口、存放文件等,我们拿7000为例,剩余两个,比葫芦画瓢即可。

bind 193.193.193.28
port 7000
daemonize yes
pidfile /var/run/redis_7000.pid
logfile "/opt/redis/7000/redis.log"
cluster-enabled yes
cluster-config-file nodes-7000.conf
cluster-node-timeout 15000
cluster-require-full-coverage no

主要就是与端口有关的内容。

四、启动三个redis服务

redis-server 7000/redis.conf
redis-server 7001/redis.conf
redis-server 7002/redis.conf

五、安装ruby

因为redis集群创建工具是ruby开发的,所以先安装这个

yum install ruby

# 下载redisruby接口包
wget http://rubygems.org/downloads/redis-3.3.0.gem

# 安装rubygems,最新版本会自动安装
yum install rubygems

gem install -l redis-3.3.0.gem

# 把集群创建命令复制到用户命令空间
cp /opt/redis/src/redis-trib.rb /usr/local/bin/

六、创建集群

redis-trib.rb create --replicas 0 127.0.0.1:7000 127.0.0.1:7001 127.0.0.1:7002

# 注意:replicas参数表示每个主节点有几个从节点,因为我没有从节点所以为0,为1表示有一个从节点

# 注意:replicas参数表示每个主节点有几个从节点,因为我没有从节点所以为0,为1表示有一个从节点

如果每个点要做主从,则命令行配置6个节点即可,如下:

redis-trib.rb create --replicas 1 127.0.0.1:7000 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

6个节点每一对 都是一个主从。

执行成功会输出集群信息,中间会让你确认:yes即可

centos7安装配置redis集群:redis-cluster,最简单的配置记录过程_第1张图片

七、访问集群

redis集群无中心,使用springboot访问配置

1、添加依赖


    org.springframework.boot
    spring-boot-starter-data-redis

2、application.yml

#数据源
spring:
  #jackson时间格式化
  jackson:
    time-zone: GMT+8
    date-format: yyyy-MM-dd HH:mm:ss
  #redis配置
  redis:
    cluster:
      nodes: 192.168.68.100:7000,192.168.68.100:7001,192.168.68.101:7000,192.168.68.101:7001,192.168.68.102:7000,192.168.68.102:7001
    timeout: 6000ms
    password: 123456
    lettuce:
      pool:
        max-active: 8
        max-wait: -1ms
        max-idle: 8
        min-idle: 0
    database: 0

3、配置bean

package com.carry.config;

import com.fasterxml.jackson.annotation.JsonAutoDetect;
import com.fasterxml.jackson.annotation.PropertyAccessor;
import com.fasterxml.jackson.databind.ObjectMapper;
import org.springframework.boot.autoconfigure.AutoConfigureAfter;
import org.springframework.boot.autoconfigure.data.redis.RedisAutoConfiguration;
import org.springframework.context.annotation.Bean;
import org.springframework.context.annotation.Configuration;
import org.springframework.data.redis.connection.lettuce.LettuceConnectionFactory;
import org.springframework.data.redis.core.RedisTemplate;
import org.springframework.data.redis.serializer.Jackson2JsonRedisSerializer;

@Configuration
@AutoConfigureAfter(RedisAutoConfiguration.class)
public class RedisConfig {

    @Bean
    public RedisTemplate redisCacheTemplate(LettuceConnectionFactory redisConnectionFactory) {
        //redis序列化器
        Jackson2JsonRedisSerializer jackson2JsonRedisSerializer = new Jackson2JsonRedisSerializer<>(Object.class);
        ObjectMapper om = new ObjectMapper();
        om.setVisibility(PropertyAccessor.ALL, JsonAutoDetect.Visibility.ANY);
        om.enableDefaultTyping(ObjectMapper.DefaultTyping.NON_FINAL);
        jackson2JsonRedisSerializer.setObjectMapper(om);
        RedisTemplate template = new RedisTemplate<>();
        template.setConnectionFactory(redisConnectionFactory);
        template.setKeySerializer(jackson2JsonRedisSerializer);
        template.setValueSerializer(jackson2JsonRedisSerializer);
        template.setHashKeySerializer(jackson2JsonRedisSerializer);
        template.setHashValueSerializer(jackson2JsonRedisSerializer);
        return template;
    }
}

 

你可能感兴趣的:(java,java,redis)