redis单机模式下测试遇到的问题

1、当springBoot连接不上redis时遇到的问题

在redis.windows.conf配置文件里面有这么一行代码:#bind 127.0.0.1,我的压缩包默认是带#号的。在#未去掉的情况下启动服务会抛出上面的异常,但是去掉则不会。

那么,如果外网需要访问redis服务怎么办呢?可以采用如下代码:bind 0.0.0.0

 

2、使用api:Redisson和stringRedisTemplate

<!--redis-->
        <dependency>
            <groupId>org.springframework.boot</groupId>
            <artifactId>spring-boot-starter-data-redis</artifactId>
        </dependency>

        <dependency>
            <groupId>org.redisson</groupId>
            <artifactId>redisson</artifactId>
            <version>3.6.5</version>
        </dependency>

  

@Bean
    public Redisson redisson(){
        //单机模式
        Config config =new Config();
        config.useSingleServer().setAddress("redis://0.0.0.0:6379").setDatabase(0);
        return (Redisson)Redisson.create(config);//实质上返回的是RedissonClient
    }

@Resource
    private StringRedisTemplate stringRedisTemplate;
    @Resource
    private Redisson redisson;

    @GetMapping("deStock")
    public void  deStock(){
        RLock rLock = redisson.getLock("stock_lock");
        rLock.lock();
        stringRedisTemplate.boundValueOps("stock").decrement();     //自减1
        System.out.println(stringRedisTemplate.opsForValue().get("stock").toString());
        rLock.unlock();
    }

    @GetMapping("getRedis")
    public void  getRedis(){
        SetOperations<String, String> set = stringRedisTemplate.opsForSet();
        set.add("set1","22");
        set.add("set1","33");
        set.add("set1","44");
        Set<String> resultSet =stringRedisTemplate.opsForSet().members("set1");
        System.out.println("resultSet:"+resultSet);

        Map<String,String> map=new HashMap<String,String>();
        map.put("key1","value1");
        map.put("key2","value2");
        map.put("key3","value3");
        map.put("key4","value4");
        map.put("key5","value5");
        stringRedisTemplate.opsForHash().putAll("map1",map);

        System.out.println("缓存正在设置。。。。。。。。。");
        stringRedisTemplate.opsForValue().set("key1","value1");
        stringRedisTemplate.opsForValue().set("key2","value2");
        stringRedisTemplate.opsForValue().set("key3","value3");
        stringRedisTemplate.opsForValue().set("key4","value4");
        System.out.println("缓存已经设置完毕。。。。。。。");
        String result1=stringRedisTemplate.opsForValue().get("key1").toString();
        String result2=stringRedisTemplate.opsForValue().get("key2").toString();
        String result3=stringRedisTemplate.opsForValue().get("key3").toString();
        System.out.println("缓存结果为:result:"+result1+"  "+result2+"   "+result3);
    }

  

spring:
  redis:
    database: 0  #数据库索引(默认为0)
    host: 0.0.0.0
    port: 6379  #默认链接端口
    password:  #默认为空
    jedis:
      pool:
        max-active: 8 #最大链接池
        max-wait: -1 #最大阻赛等待时间(使用负值没有限制)默认为-1
        max-idle: 8 #连接池中的最大空闲连接 默认 8
        min-idle: 0

  

posted on 2020-09-09 20:35  潮流教父孙笑川  阅读(30)  评论(0)    收藏  举报

导航