ityouknow / blog-comments

15 stars 0 forks source link

springboot(三):Spring boot中Redis的使用 - ityouknow's Blog #31

Open ityouknow opened 6 years ago

ityouknow commented 6 years ago

http://www.ityouknow.com/springboot/2016/03/06/springboot(%E4%B8%89)-Spring-Boot%E4%B8%ADRedis%E7%9A%84%E4%BD%BF%E7%94%A8.html

spring boot对常用的数据库支持外,对nosql 数据库也进行了封装自动化。

YWD commented 6 years ago

新手,占座位,登录redis?

wupengwei commented 6 years ago

浅尝辄止,很多都需要自己研究。算是指了一条路。

darvenking commented 6 years ago

Redis1.5之后已经改名叫spring-boot-starter-data-redis,希望楼主赶快改正下

wupengwei commented 6 years ago

@lifespy Redis1.5之后已经改名叫spring-boot-starter-data-redis,希望楼主赶快改正下

我也发现了这个问题

ityouknow commented 6 years ago

@lifespy Redis1.5之后已经改名叫spring-boot-starter-data-redis,希望楼主赶快改正下 是的,但这个版本应该不会有问题,我在写达人课的时候更正了过来。

ypf-java commented 6 years ago

除了第一篇详细点 后面都很简洁。大神后面的文章能详细点吗?在哪个类配置?要写什么之类的 都附上啊...新手表示完全看不懂啊

ityouknow commented 6 years ago

@ypf-java 除了第一篇详细点 后面都很简洁。大神后面的文章能详细点吗?在哪个类配置?要写什么之类的 都附上啊...新手表示完全看不懂啊

详细的做成达人课了。http://gitbook.cn/gitchat/column/59f5daa149cd4330613605ba

xiongzhao1217 commented 6 years ago

@RequestMapping("/getUser") @Cacheable(value="user-key") public User getUser() { User user=userRepository.findByUserName("aa"); System.out.println("若下面没出现“无缓存的时候调用”字样且能打印出数据表示测试成功");
return user; } 其中value的值就是缓存到redis中的key

经测试,user-key保存的是一组redis key的zset集合,集合中的元素为getUser方法返回值的内容的key

QQlei commented 6 years ago

你好你这是存储String类型 请问储层User对象怎么写?

bwensun commented 6 years ago

@lifespy Redis1.5之后已经改名叫spring-boot-starter-data-redis,希望楼主赶快改正下

多谢

yangwenbinGit commented 6 years ago

你那个redis的配置有问题啊,#redis配置 正确的配置,引入spring-boot-starter-data-redis这个包

REDIS (RedisProperties)

Redis数据库索引(默认为0)

spring.redis.database=0

Redis服务器地址

spring.redis.host=192.168.0.58

Redis服务器连接端口

spring.redis.port=6379

Redis服务器连接密码(默认为空)

spring.redis.password=

连接池最大连接数(使用负值表示没有限制)

spring.redis.jedis.pool.max-active=8

连接池最大阻塞等待时间(使用负值表示没有限制)

spring.redis.jedis.pool.max-wait=-1

连接池中的最大空闲连接

spring.redis.jedis.pool.max-idle=8

连接池中的最小空闲连接

spring.redis.jedis.pool.min-idle=0

连接超时时间(毫秒)

spring.redis.timeout=0

yangwenbinGit commented 6 years ago

你的redis的超时时间不对,0是啥了,上来访问就报错了,不得设置个时间吗?多少秒啥的,0的话一访问到超时了

yangwenbinGit commented 6 years ago
   @RequestMapping("/getUser")
 @Cacheable(value="user-key")

public User getUser() { User user=userRepository.findByUserName("aa"); System.out.println("若下面没出现“无缓存的时候调用”字样且能打印出数据表示测试成功");
return user; } 经过测试 并且在启动的主类上加了 @SpringBootApplication @EnableCaching public class SpringBootDemoApplication {

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

} 然后我执行了上面的那个方法,数据存到redis的key是这样的 "user-key::SimpleKey []"

//测试缓冲是否成功,但是未获取到数据,未获取到数据 user为null User user = (User)redisTemplate.opsForValue().get("user-key");

yangwenbinGit commented 6 years ago

最后一个session的问题,亲自测试过,在redis中什么也没有,是空的

loveYukiiii commented 6 years ago

导入包报错  然后配置了pom文件   结果代码报错   /缓存管理器 @SuppressWarnings("rawtypes") @Bean public CacheManager cacheManager(RedisTemplate redisTemplate) { RedisCacheManager cacheManager = new RedisCacheManager(redisTemplate); //设置缓存过期时间 cacheManager.setDefaultExpiration(10000); return cacheManager; } RedisCacheManager 里面没有setDefaultExpiration这个方法  我用的是spring.data.redis 2.0.6版本 用1.0.6版本会出现Jackson2JsonRedisSerializer这个地方报错  很纠结 求指导

0xCAFEBABE0 commented 6 years ago

timeout 不应该为0

shezhou commented 6 years ago

@loveYukiiii 导入包报错  然后配置了pom文件   结果代码报错   /缓存管理器 @SuppressWarnings("rawtypes") @Bean public CacheManager cacheManager(RedisTemplate redisTemplate) { RedisCacheManager cacheManager = new RedisCacheManager(redisTemplate); //设置缓存过期时间 cacheManager.setDefaultExpiration(10000); return cacheManager; } RedisCacheManager 里面没有setDefaultExpiration这个方法  我用的是spring.data.redis 2.0.6版本 用1.0.6版本会出现Jackson2JsonRedisSerializer这个地方报错  很纠结 求指导

你解决了没?这是因为SpringBoot2.0版本的问题

lilei-dfjk commented 6 years ago

很坑啊 starter有问题,而且超时时间设置成了0