1,引入依赖
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-data-redis</artifactId> </dependency>
2,代码测试1----StringRedistemplate
@Autowired
private StringRedisTemplate stringRedisTemplate;
@Test
void contextLoads() {
//ValueOperations--操作的类型为String
ValueOperations<String, String> ops = stringRedisTemplate.opsForValue();
ops.set("k1","高");
ops.set("k2","高2");
ops.set("k3","高3");
System.out.println(ops.get("k1"));
//判断k1是否存在,存在的话返回false,不存在的话给赋了值,返回true
Boolean aBoolean = ops.setIfAbsent("k1", "enen");
System.out.println(aBoolean);
//HashOperations--操作hash类型
HashOperations<String, Object, Object> hash = stringRedisTemplate.opsForHash();
hash.put("k4","name","高");
hash.put("k4","age","18");
Object o=hash.get("k4","name");
System.out.println(o);
System.out.println(hash.keys("k4"));
System.out.println(hash.values("k4"));
System.out.println(hash.entries("k4"));
}
ValueOperations运行结果为:
高
false
HashOperations运行结果为:
高
[name, age]
[高, 18]
{name=高, age=18}
3,代码测试2—RedisTemplate
RedisTemplate它的key和value可以存放Object类型,那么它的key和value默认采用的序列化方式为JDK序列化方式。一般我们需要
为key和value指定序列化方式。
//key的序列化
redisTemplate.setKeySerializer(new StringRedisSerializer());
//value的序列化
redisTemplate.setValueSerializer(new GenericJackson2JsonRedisSerializer());
//hash key的序列化
redisTemplate.setHashKeySerializer(new StringRedisSerializer());
//hash value的序列化
redisTemplate.setHashValueSerializer(new StringRedisSerializer());
实体
@Data
@AllArgsConstructor
@NoArgsConstructor
public class User {
String name;
Integer age;
String address;
}
测试字符串类型
@Autowired
private RedisTemplate redisTemplate;
@Test
void contextLoads() {
redisTemplate.setKeySerializer(new StringRedisSerializer());
redisTemplate.setValueSerializer(new GenericJackson2JsonRedisSerializer());
ValueOperations valueOperations = redisTemplate.opsForValue();
valueOperations.set("k1",new User("高",18,"郑州"));
Object k1 = valueOperations.get("k1");
System.out.println(k1);
}
测试hash类型
@Test
void contextHash(){
redisTemplate.setKeySerializer(new StringRedisSerializer());
redisTemplate.setValueSerializer(new GenericJackson2JsonRedisSerializer());
redisTemplate.setHashValueSerializer(new GenericJackson2JsonRedisSerializer());
redisTemplate.setHashKeySerializer(new StringRedisSerializer());
HashOperations hashOperations = redisTemplate.opsForHash();
hashOperations.put("u","n","高");
hashOperations.put("u","a","16");
Object o = hashOperations.get("u", "n");
System.out.println(o);
Object o1 = hashOperations.get("u", "a");
System.out.println(o1);
}