首先要用java连接Redis并set get值需要达到数据的挂平台,这里需要实现数据的序列化,什么是序列化?
序列化 (Serialization)是将对象的状态信息转换为可以存储或传输的形式的过程。在序列化期间,对象将其当前状态写入到临时或持久性存储区。以后,可以通过从存储区中读取或反序列化对象的状态,重新创建该对象。
<!-- spring data redis 依赖 -->
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-data-redis</artifactId>
</dependency>
<!-- commons-pool2 对象池依赖 -->
<dependency>
<groupId>org.apache.commons</groupId>
<artifactId>commons-pool2</artifactId>
</dependency>
创建好序列化的配置文件,也是工具类吧,可以获取redis中的数据。
@Configuration
public class RedisConfig {
/**
* 序列化配置
*
* @param redisConnectionFactory
* @return
*/
@Bean
public RedisTemplate<String, Object> redisTemplate(RedisConnectionFactory redisConnectionFactory) {
RedisTemplate<String, Object> redisTemplate = new RedisTemplate<>();
//为string类型key设置序列器
redisTemplate.setKeySerializer(new StringRedisSerializer());
//为string类型value设置序列器
redisTemplate.setValueSerializer(new GenericJackson2JsonRedisSerializer());
//为hash类型key设置序列器
redisTemplate.setHashKeySerializer(new StringRedisSerializer());
//为hash类型value设置序列器
redisTemplate.setHashValueSerializer(new GenericJackson2JsonRedisSerializer());
//redis连接工厂
redisTemplate.setConnectionFactory(redisConnectionFactory);
return redisTemplate;
}
}
创建刚刚写的工具类实例
@Autowired
private RedisTemplate<String,Object> redisTemplate;
从redis中获取数据
ValueOperations<String, Object> valueOperations = redisTemplate.opsForValue();
//从redis中获取菜单数据
List<Menu> menus = (List<Menu>) valueOperations.get("menu" + adminId);
从redis中设置数据
valueOperations.set("menu"+adminId,menus);