springboot( 三)redis demo
2021-01-29 20:20
标签:空闲 持久化 zha auto tor 生效 loader 技术 应用 Redis是目前业界使用最广泛的内存数据存储。相比memcached,Redis支持更丰富的数据结构,例如hashes, lists, sets等,同时支持数据持久化。除此之外,Redis还提供一些类数据库的特性,比如事务,HA,主从库。可以说Redis兼具了缓存系统和数据库的一些特性,因此有着丰富的应用场景。本文介绍Redis在Spring Boot中两个典型的应用场景。 1、引入 spring-boot-starter-data-redis 2、添加配置文件 至于redis的安装配置,可见分布式进阶redis,一种安装传统的redis,一种用docker ,建议先安装docker,直接用docker pull redis 比较方便 redisConfig->根据StringRedisTemplate对象命名我们可以知道该对象支持String类型,但是在实际的应用中,我们可能需要存入Object对象。那该怎么存储呢。聪明的你,肯定立刻想到了,直接把对象转成json格式字符串,不就可以存储了嘛。这里我使用jackson依赖转换成json数据 RedisController 也可以将常用操作提取出来,封装成RedisUtils,直接使用即可 RedisUtils 测试: 发现第一次未走缓存,第二次走了缓存 分布式系统中,sessiong共享有很多的解决方案,其中托管到缓存中应该是最常用的方案之一, Spring Session provides an API and implementations for managing a user’s session information. 1、引入依赖 注意:maxInactiveIntervalInSeconds: 设置Session失效时间,使用Redis Session之后,原Boot的server.session.timeout属性不再生效 redis 客户端 输入 其中 1591092540000为失效时间,意思是这个时间后session失效,88fda400-dc85-4a22-8126-e1858febdc60 为sessionId,登录http://localhost:8080/uid 发现会一致,就说明session 已经在redis里面进行有效的管理了。 其实就是按照上面的步骤在另一个项目中再次配置一次,启动后自动就进行了session共享。 代码路径: springboot( 三)redis demo 标签:空闲 持久化 zha auto tor 生效 loader 技术 应用 原文地址:https://www.cnblogs.com/flgb/p/12822708.htmlredis介绍
如何使用
#redis配置
# REDIS (RedisProperties)
# Redis服务器地址
spring.redis.host=192.168.31.151
# Redis服务器连接端口
spring.redis.port=6379
# Redis服务器连接密码(默认为空)
spring.redis.password=
#Redis数据库索引(默认为0)
spring.redis.database=0
#连接池最大连接数(使用负值表示没有限制)
spring.redis.jedis.pool.max-active=50
#连接池最大阻塞等待时间(使用负值表示没有限制)
spring.redis.jedis.pool.max-wait=3000
#连接池中的最大空闲连接
spring.redis.jedis.pool.max-idle=20
#连接池中的最小空闲连接
spring.redis.jedis.pool.min-idle=2
#连接超时时间(毫秒)
spring.redis.timeout=5000
@Configuration
public class RedisConfig {
// /**
// * 连接 redis 需要 RedisConnection 和 RedisConnectionFactory,
// * RedisConnection 是通过 RedisConnectionFactory 进行创建
// * RedisConnection 提供较低级的数据操作 (byte arrays)
// */
// @Bean
// RedisConnectionFactory initJedisConnectionFactory(){
// //在这里设置redis连接对象配置
// return new JedisConnectionFactory();
// }
/**
* 配置RedisTemplate实例
* @param factory
* @return
*/
@Bean
public RedisTemplate
ObjectRedisSerializer类
@Slf4j
public class ObjectRedisSerializer implements RedisSerializer
@RestController
@Slf4j
public class RedisController {
@Autowired
private IUserService userService;
@Autowired
private RedisUtils redisUtils;
@Autowired
private RedisTemplate
@Component
public class RedisUtils {
@Autowired
private RedisTemplate
如果redis获取的User不能强转,即xxx不能转换为xxx,按常理说不通,A怎么不能cast成A呢,debug仔细检查了是否有拼错类名及不一致情况,确实xxx就是xxx,
怎么就不能cast呢?google一通得知和热部署有关,和用到的spring-boot-devtools有关,和classloader有关,这样就说的通了。看了许多帖子,都是比较直接的解决方案,把spring-boot-devtools注释掉,不要热部署了
共享Session-spring-session-data-redis
Spring Session官方说明
如何使用
2、Session配置:
@Configuration
@EnableRedisHttpSession(maxInactiveIntervalInSeconds = 86400*30)//失效时间一个月
public class SessionConfig {
}keys ‘*sessions*‘
1) "spring:session:expirations:1591092540000"
2) "spring:session:sessions:expires:88fda400-dc85-4a22-8126-e1858febdc60"
3) "userzhangsan"
4) "spring:session:sessions:88fda400-dc85-4a22-8126-e1858febdc60"
5) "user"
6) "userlisi"
127.0.0.1:6379>
如何在两台或者多台中共享session
下一篇:绝对差不超过限制的最长数组
文章标题:springboot( 三)redis demo
文章链接:http://soscw.com/index.php/essay/48831.html