Springcloud +redis集群

我的springcloud  中 springboot版本是2.X.X以上的,版本不同,集群对应的客户端api方法,连接池不一样.

 

具体操作可以看我的git上源码,有问题请咨询.

哦对了,redis集群的配置很简单,你们可以单独百度搜索的.

添加jar:
<dependency>
    <groupId>org.springframework.boot</groupId>
    <artifactId>spring-boot-starter-data-redis</artifactId>
</dependency>

<dependency>
    <groupId>redis.clients</groupId>
    <artifactId>jedis</artifactId>
    <version>2.9.0</version>
</dependency>
redis集群的配置文件:
redis:
    cache:
      cluster-nodes:
       192.168.200.X:X ,192.168.200.X:X 192.168.200.X:X ,192.168.200.X:X  ,192.168.200.X:X ,192.168.200.X:X
      # 执行命令超时时间
      command-timeout: 15000
      # 重试次数
      max-attempts: 5
      # 跨集群执行命令时要遵循的最大重定向数量
      max-redirects: 3
      # 连接池最大连接数(使用负值表示没有限制)
      max-active: 16
      # 连接池最大阻塞等待时间(使用负值表示没有限制)
      max-wait: -1
      # 连接池中的最大空闲连接
      max-idle: 8
      # 连接池中的最小空闲连接
      min-idle: 0
      # 是否在从池中取出连接前进行检验,如果检验失败,则从池中去除连接并尝试取出另一个
      test-on-borrow: true

 

package com.ztgx.redis.utils;

import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.data.redis.core.StringRedisTemplate;
import org.springframework.stereotype.Component;

import java.util.Set;
import java.util.concurrent.TimeUnit;

@Component
public class RedisService {

    @Autowired
    private StringRedisTemplate stringRedisTemplate;
    //这样该方法支持多种数据类型
    public void set(String key , Object object, Long time){
        //开启事务权限
        stringRedisTemplate.setEnableTransactionSupport(true);
        try {
            //开启事务
            stringRedisTemplate.multi();

            String argString =(String)object;  //强转下
            stringRedisTemplate.opsForValue().set(key, argString);

            //成功就提交
            stringRedisTemplate.exec();
        } catch (Exception e) {
            //失败了就回滚
            stringRedisTemplate.discard();

        }
        if (object instanceof String ) {  //判断下是String类型不
            String argString =(String)object;  //强转下
            //存放String类型的
            stringRedisTemplate.opsForValue().set(key, argString);
        }
        //如果存放Set类型
        if (object instanceof Set) {
            Set<String> valueSet =(Set<String>)object;
            for(String string:valueSet){
                stringRedisTemplate.opsForSet().add(key, string);  //此处点击下源码看下 第二个参数可以放好多
            }
        }
        //设置有效期
        if (time != null) {
            stringRedisTemplate.expire(key, time, TimeUnit.SECONDS);
        }

    }
    //做个封装
    public void setString(String key, Object object){
        String argString =(String)object;  //强转下
        //存放String类型的
        stringRedisTemplate.opsForValue().set(key, argString);
    }
    public void setSet(String key, Object object){
        Set<String> valueSet =(Set<String>)object;
        for(String string:valueSet){
            stringRedisTemplate.opsForSet().add(key, string);  //此处点击下源码看下 第二个参数可以放好多
        }
    }

    public String getString(String key){
        return    stringRedisTemplate.opsForValue().get(key);
    }

}

 

 

package com.ztgx.redis.utils;

import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.web.bind.annotation.*;

import java.util.ArrayList;
import java.util.List;

/**
 * Web层 - Test
 * Created by xiepengcheng on 2017/9/12.
 */
@RestController
@RequestMapping("/test")
public class TestController {

    @Autowired
    private RedisService redisService;

    @RequestMapping("/setString")
    public String setString(String key, String value){
        key="name";value="zhangsan";
        redisService.set(key, value, 500l); //超时时间500s   l表示long型
        return "成功";
    }

    @RequestMapping("get")
    public String get(String key){
        key="name";
        return redisService.getString(key);
    }
}

 

package com.ztgx.redis;



import org.springframework.boot.SpringApplication;
import org.springframework.boot.autoconfigure.SpringBootApplication;
import org.springframework.cache.annotation.EnableCaching;
import org.springframework.cloud.netflix.eureka.EnableEurekaClient;
import org.springframework.cloud.netflix.hystrix.EnableHystrix;
import org.springframework.cloud.openfeign.EnableFeignClients;
import springfox.documentation.swagger2.annotations.EnableSwagger2;
@SpringBootApplication
@EnableEurekaClient
@EnableFeignClients
//@EnableSwagger2
@EnableCaching
public class RedisApplication {
    public static void main(String[] args) {
        SpringApplication.run( RedisApplication.class, args  );
    }

}

 

  • 0
    点赞
  • 3
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
安装环境要求: - 操作系统:Linux - Node.js:版本 8.x 及以上 - NPM:版本 5.x 及以上 - JDK:版本 1.8 及以上 - MySQL:版本 5.7 及以上 - Redis:版本 3.x 及以上 - Nacos:版本 1.3.0 及以上 - MinIO:版本 RELEASE.2021-05-27T02-29-22Z 及以上 安装过程: 1. 安装 Linux 操作系统。 2. 安装 Node.js 和 NPM,可以通过官网下载安装包或使用包管理工具进行安装。 3. 安装 JDK,同样可以通过官网下载安装包或使用包管理工具进行安装。 4. 安装 MySQL,可以通过官网下载安装包或使用包管理工具进行安装。 5. 安装 Redis,同样可以通过官网下载安装包或使用包管理工具进行安装。 6. 安装 Nacos,可以通过官网下载安装包或使用包管理工具进行安装。 7. 安装 MinIO,同样可以通过官网下载安装包或使用包管理工具进行安装。 主要流程: 1. 创建数据库和相应的表结构。 2. 搭建 SpringBoot 后端框架,实现业务逻辑。 3. 配置 Redis 缓存,提高系统性能。 4. 集成 Nacos 服务注册和发现,实现微服务架构。 5. 集成 MinIO 对象存储,实现文件上传和下载功能。 6. 创建 Vue+Nuxt 前端项目,实现用户界面和交互。 7. 配置前端路由和状态管理,实现前端页面功能。 8. 集成 SpringCloud,将前端和后端项目打包成 Docker 镜像并部署到 Kubernetes 集群中。 9. 进行系统测试和优化,确保系统稳定性和可用性。 10. 上线系统并进行维护和更新。

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值