java如何用redis保存数据_如何保存token_怎么把数据保存在缓存里

1 篇文章 0 订阅
首先,本篇文章是建立在你的系统已经安装了Spring redis的前提下,不知道如何配置安装redis看这里👉 SpringBoot集成redis

我们可以把redis当作一个存储 键值对 的小型数据库,存在里面的数据必须是map类型(唯一的key值和对应的value)

下面上代码:

保存

String key = "这是我定义的独一无二的key值";
String val = "这是自己想保存的数据,不只是String类型,对象集合都行";
int time = 60;//保存时间,单位是秒
RedisUtils.setObject(key, value, time);

取出

//你保存的value是什么类型的数据,取出时就要用什么类型来接收
String value= RedisUtils.getObject("这是我定义的独一无二的key值", String.class);

redis工具类的set和get方法的代码如下:

	/**
	 * 将value对象以JSON格式写入缓存
	 *
	 * @param key
	 * @param value
	 * @param time  失效时间(秒)
	 */
	public static void setObject(String key, Object value, int time) {
		getStringRedisTemplate().opsForValue().set(REDIS_KEY + key, JSON.toJSONString(value));
		if (time > 0) {
			getStringRedisTemplate().expire(REDIS_KEY + key, time, TimeUnit.SECONDS);
			return;
		}
		//如果没有时间保存一个月
		getStringRedisTemplate().expire(REDIS_KEY + key, 2592000, TimeUnit.SECONDS);
	}

    /**
	 * 获取缓存json对象<br>
	 *
	 * @param key   key
	 * @param clazz 类型
	 * @return
	 */
	public static <T> T getObject(String key, Class<T> clazz) {
		return JSON.parseObject(getStringRedisTemplate().boundValueOps(REDIS_KEY + key).get(), clazz);
	}

在这里插入图片描述

可以在 Spring Boot 中使用以下代码配置 Redis 缓存: 1. 添加 Redis 依赖: ```xml <dependency> <groupId>org.springframework.boot</groupId> <artifactId>spring-boot-starter-data-redis</artifactId> </dependency> ``` 2. 在 application.properties 文件中配置 Redis: ```properties # Redis 配置 spring.redis.host=127.0.0.1 spring.redis.port=6379 spring.redis.password= spring.redis.database=0 ``` 3. 创建 Redis 配置类: ```java @Configuration @EnableCaching public class RedisConfig extends CachingConfigurerSupport { @Bean public RedisTemplate<String, Object> redisTemplate(RedisConnectionFactory redisConnectionFactory) { RedisTemplate<String, Object> redisTemplate = new RedisTemplate<>(); redisTemplate.setConnectionFactory(redisConnectionFactory); redisTemplate.setKeySerializer(new StringRedisSerializer()); redisTemplate.setValueSerializer(new GenericJackson2JsonRedisSerializer()); return redisTemplate; } @Bean public CacheManager cacheManager(RedisConnectionFactory redisConnectionFactory) { RedisCacheConfiguration redisCacheConfiguration = RedisCacheConfiguration.defaultCacheConfig() .entryTtl(Duration.ofMinutes(30)) .disableCachingNullValues() .serializeKeysWith(RedisSerializationContext.SerializationPair.fromSerializer(new StringRedisSerializer())) .serializeValuesWith(RedisSerializationContext.SerializationPair.fromSerializer(new GenericJackson2JsonRedisSerializer())); return RedisCacheManager.builder(redisConnectionFactory) .cacheDefaults(redisCacheConfiguration) .build(); } } ``` 4. 在需要缓存的方法上添加 @Cacheable 注解: ```java @Service public class UserServiceImpl implements UserService { @Autowired private UserRepository userRepository; @Autowired private RedisTemplate<String, Object> redisTemplate; @Override @Cacheable(value = "user", key = "#token") public User getUserByToken(String token) { User user = (User) redisTemplate.opsForValue().get(token); if (user == null) { user = userRepository.findByToken(token); redisTemplate.opsForValue().set(token, user); } return user; } } ``` 以上代码将以 Token 为 Key,用户信息为 Value 进行缓存
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值