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