【环境测试·Redis】在docker中部署redis集群,并使用vscode编写java进行测试读写

目录

    • 欢迎观看本文章
    • 操作步骤
    • 如何访问 vscode
    • 如何测试redis集群


ps: 部署简单,主要问题是如何确保外部能通信,如果在虚拟机中的docker部署redis集群,在外部开发工具连,是连不上的

欢迎观看本文章

本次操作中 使用在线 vscode 类的编辑器 运行代码,基于 maven,编译器 和 redis均 运行与docker。

操作步骤

步骤:

  • 准备好 docker,配置远程库,并 准备好镜像

  • 准备好一个网络

    • 目的(是为了后续开发工具直接与 其他docker容器通信 )
    • docker network create --subnet=172.18.0.0/24 docker-br0
  • 准备好 vscode

    • 生成 密钥
    # 先创建好 /home/public/files/ 目录,并进入执行以下命令
    openssl req -newkey rsa:2048 -nodes -keyout my.key -x509 -days 36500 -out my.crt -subj /C=CN/ST=HN/L=CS/O=MY/OU=LO/CN=my/[email protected]
    
    • 使用他 运行
    docker run -itd --name loc_vcode --restart=always --net docker-br0 --ip 172.18.0.151 -p 8080:8080 \
    -v /home/public/files/work:/home/coder/work \
    -v /home/public/files/vscode:/home/coder/project \
    -v /home/public/files/ssl:/home/coder/ssl \
      codercom/code-server:latest --cert /home/coder/ssl/my.crt --cert-key /home/coder/ssl/my.key
    
    • 安装插件 ,并配置好jdk和maven之类的环境
  • 准备好 redis 集群

    • 至少 6个
    • docker run -itd --name=redis_node01 --net docker-br0 --ip 172.18.0.11 -e TZ=Asia/Shanghai redis:latest --cluster-enabled yes --appendonly no --bind 0.0.0.0
      
      docker run -itd --name=redis_node02 --net docker-br0 --ip 172.18.0.12 -e TZ=Asia/Shanghai redis:latest --cluster-enabled yes --appendonly no --bind 0.0.0.0
      
      docker run -itd --name=redis_node03 --net docker-br0 --ip 172.18.0.13 -e TZ=Asia/Shanghai redis:latest --cluster-enabled yes --appendonly no --bind 0.0.0.0
      
      docker run -itd --name=redis_node04 --net docker-br0 --ip 172.18.0.14 -e TZ=Asia/Shanghai redis:latest --cluster-enabled yes --appendonly no --bind 0.0.0.0
      
      docker run -itd --name=redis_node05 --net docker-br0 --ip 172.18.0.15 -e TZ=Asia/Shanghai redis:latest --cluster-enabled yes --appendonly no --bind 0.0.0.0
      
      docker run -itd --name=redis_node06 --net docker-br0 --ip 172.18.0.16 -e TZ=Asia/Shanghai redis:latest --cluster-enabled yes --appendonly no --bind 0.0.0.0
      
    • 构建关联
    • # 进入一个节点
      docker exec -it redis_node01 /bin/bash
          #  执行一下命令,将他们关联起来
          redis-cli --cluster create 172.18.0.11:6379 172.18.0.12:6379 172.18.0.13:6379 172.18.0.14:6379 172.18.0.15:6379 172.18.0.16:6379 --cluster-replicas 1
      

如何访问 vscode

建议使用 火狐浏览器,通过服务器 ip 和端口访问即可

如何测试redis集群

创建好 maven 项目

  • pom.xml
		
			redis.clients
			jedis
		
  • java code
// package com.dev.web.redis;

import java.util.HashSet;

import org.apache.commons.pool2.impl.GenericObjectPoolConfig;

import redis.clients.jedis.HostAndPort;
import redis.clients.jedis.Jedis;
import redis.clients.jedis.JedisCluster;

public class TestClass {

	public static void main(String[] args) {

		// 池配置
		GenericObjectPoolConfig<Jedis> poolConfig = new GenericObjectPoolConfig<Jedis>();
		
		poolConfig.setMaxWait(java.time.Duration.ofMinutes(10L));
		// 在获取连接的时候检查有效性, 默认false
		poolConfig.setTestWhileIdle(true);
		// 在用一个 Redis 实例时,是否提前进行验证操作, 如果为TRUE,则得到的实例都是可用的
		poolConfig.setTestOnBorrow(true);
		// 是否进行有效性检查
		poolConfig.setTestOnReturn(true);

		// 节点信息
		HashSet<HostAndPort> set = new HashSet<HostAndPort>();
		set.add(new HostAndPort("172.18.0.11", 6379));// 1-m
		set.add(new HostAndPort("172.18.0.12", 6379));// 1-s
		set.add(new HostAndPort("172.18.0.13", 6379));// l-m
		set.add(new HostAndPort("172.18.0.14", 6379));// l-s
		set.add(new HostAndPort("172.18.0.15", 6379));// d-m
		set.add(new HostAndPort("172.18.0.16", 6379));// d-s
		try (
			JedisCluster jedisCluster = new JedisCluster(set, 5000, 5000, 5, poolConfig)) {
			jedisCluster.set("user","张三");
			System.out.println("user = " + jedisCluster.get("user"));
		}
		
	}

}

你可能感兴趣的:(MY-技术学习,docker,redis,容器)