zoukankan      html  css  js  c++  java
  • springBoot集成redisCluster

    本文主要内容:springBoot简介,在SpringBoot中如何集成Redis,可配置Redis集群。


    关于SpringBoot

    你想要的,这里都有:https://spring.io/projects/spring-boot 这是SpringBoot的官方文档,开发者已经将你需要的东西都给你了。SpringBoot是一个大的容器,可以在这里很轻松地创建各种Spring应用,并且轻松集成其他框架,可以参照官网的案例完成一个HelloWorld。完成之后你会发现使用SpringBoot是一件多么优雅的事情。

    引入maven依赖

    parent
    	groupId:org.springframework.boot
    	artifactId:spring-boot-starter-parent
    	version:2.0.0.RELEASE
    		
    dependencies
    	groupId: org.springframework.boot
    	artifactId: spring-boot-starter
    		
    build
    	plugins
    		plugin
    			groupId: org.springframework.boot
    			artifactId: spring-boot-maven-plugin
    
    

    写一个main()方法

    @SpringBootApplication
    public class DemoApplication {
    
    	public static void main(String[] args) {
    		SpringApplication.run(DemoApplication.class, args);
    	}
    }
    

    你只需要写一个main()方法就可以直接启动你的项目,默认在8080端口启动。比起使用传统的SSM那一套要简单许多,这是因为SpringBoot的设计之禅就是默认优于配置,因此它内置了很多默认的配置,包括Tomcat。但是它并不适合初学者使用。过度的封装导致开发者无法接触底层。

    关于Redis

    官网:https://redis.io/

    基于内存的键值对数据库,可以分布式部署,常用作缓存。缺点就是不同版本之间差异较大。本文中提到的Redis是4.x。

    SpringBoot中集成Redis

    操作Redis数据库有一套Jedis JavaAPI。这里使用SpringBoot集成就需要安装它的方式来配置。由于SpringBoot本身集成了许多框架,实质上这里就是使用了Jedis。

    引入Maven

    首先需要引入maven依赖

    groupId: redis.clients
    artifactId: jedis
    version: 2.9.0
    ------
    groupId: org.springframework.data
    artifactId: spring-data-redis
    version: 2.0.5.RELEASE
    

    配置Redis

    在默认的yml中配置。

    spring:
      #配置redis
      redis:
        cluster:
          nodes: 192.168.64.120:7000,
                 192.168.64.120:7001,
                 192.168.64.120:7002,
                 192.168.64.120:7003,
                 192.168.64.120:7004,
                 192.168.64.120:7005
          max-redirects: 3
          timeout: 5000
        jedis:
          pool:
            max-active: 10
            min-idle: 1
            max-wait: -1ms
            max-idle: 8
    

    写一个Service提供服务

    这里的RedisTemplate就是SpringBoot提供操作Redis的接口类,实际上就是在Jedis基础上的二次封装。

    @Service
    public class RedisService {
        @Autowired
        private RedisTemplate redisTemplate;
    
        /**
         * 写入缓存设置时效时间
         * @param key
         * @param value
         * @return
         */
        public boolean set(final String key, Object value, Long expireTime) {
            boolean result = false;
            try {
                ValueOperations<Serializable, Object> operations = redisTemplate.opsForValue();
                operations.set(key, value);
                redisTemplate.expire(key, expireTime, TimeUnit.SECONDS);
                result = true;
            } catch (Exception e) {
                e.printStackTrace();
            }
            return result;
        }
    
        /**
         * 删除对应的value
         * @param key
         */
        public void remove(final String key) {
            if (exists(key)) {
                redisTemplate.delete(key);
            }
        }
        /**
         * 判断缓存中是否有对应的value
         * @param key
         * @return
         */
        public boolean exists(final String key) {
            return redisTemplate.hasKey(key);
        }
        /**
         * 读取缓存
         * @param key
         * @return
         */
        public Object get(final String key) {
            Object result = null;
            ValueOperations<Serializable, Object> operations = redisTemplate.opsForValue();
            result = operations.get(key);
            return result;
        }
    	...
    }
    

    这里只给出了部分代码,全部代码参考:https://gitee.com/Yao_Qi/springboot_integrates_mybatis_and_rediscluster

  • 相关阅读:
    HVR数据复制软件部署之(一)--HUB端部署
    LeetCode 169:Majority Element
    [LeetCode][Java] Trapping Rain Water
    跨平台C、C++代码注意的事项
    Delphi通过查找字符定位TADOQuery数据的位置
    ADOquery属性中cursortype,LockType属性
    delphi ADOQuery 开启本地缓存
    如何判断一个事务是否已开始?
    SQL Server 取日期时间部分
    delphi中怎么获取服务器的时间
  • 原文地址:https://www.cnblogs.com/hello-daocaoren/p/9233970.html
Copyright © 2011-2022 走看看