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
浙公网安备 33010602011771号