stringRedisTemplate用于存储string类型
@Autowired
private StringRedisTemplate stringRedisTemplate;
-
操作redis字符串 opsForValue操作的是string类型
@Test
public void testString(){
stringRedisTemplate.opsForValue().set("name","李乃龙");
String name = stringRedisTemplate.opsForValue().get("name");
System.out.println("name:"+name);
stringRedisTemplate.opsForValue().set("code","1234",60, TimeUnit.SECONDS);
stringRedisTemplate.opsForValue().append("name", "他是一个好人,单纯的少年");
}
-
操作redis中list类型 opsForList
@Test
public void getList(){
stringRedisTemplate.opsForList().leftPush("names", "小李");
stringRedisTemplate.opsForList().leftPushAll("names","小刘","小赵","小王");
List<String> names=new ArrayList<>();
names.add("xiaominng");
names.add("liujuan");
stringRedisTemplate.opsForList().leftPushAll("names",names);
List<String> range = stringRedisTemplate.opsForList().range("names", 0, -1);
range.forEach(key->{
System.out.println("list:"+key);
});
String index = stringRedisTemplate.opsForList().index("names",2);
System.out.println("index:"+index);
stringRedisTemplate.opsForList().trim("names",1,3);
List<String> ranges = stringRedisTemplate.opsForList().range("names", 0, 3);
ranges.forEach(key->{
System.out.println("list:"+key);
});
}
@Test
public void testKey(){
Boolean aBoolean = stringRedisTemplate.hasKey("name");
System.out.println("aBoolean:"+aBoolean);
DataType type = stringRedisTemplate.type("name");
System.out.println("type:"+type);
Set<String> keys = stringRedisTemplate.keys("*");
keys.forEach(key->{
System.out.println("keys:"+key);
});
Long time = stringRedisTemplate.getExpire("name");
System.out.println("time:"+time);
String randomKey = stringRedisTemplate.randomKey();
System.out.println("randomKey:"+randomKey);
stringRedisTemplate.move("name",1);
}
@Test
public void getSet(){
stringRedisTemplate.opsForSet().add("sets", "张三", "张三", "小陈", "xiaoming");
Set<String> sets = stringRedisTemplate.opsForSet().members("sets");
sets.forEach(value->{
System.out.println("sets:"+value);
});
DataType setType = stringRedisTemplate.type("sets");
System.out.println(setType);
Long size = stringRedisTemplate.opsForSet().size("sets");
System.out.println(size);
}
@Test
public void testZset(){
stringRedisTemplate.opsForZSet().add("zsets","张三",100);
Set<String> zsets = stringRedisTemplate.opsForZSet().range("zsets", 0, -1);
zsets.forEach(key->{
System.out.println("zsts:"+key);
});
Set<ZSetOperations.TypedTuple<String>> typedTuples =
stringRedisTemplate.opsForZSet().rangeByScoreWithScores("zsets", 0, 1000);
typedTuples.forEach(typedTuple->{
System.out.println("typedTuple:"+typedTuple.getValue());
System.out.println("typedTuple:"+typedTuple.getScore());
});
}
@Test
public void testHash(){
stringRedisTemplate.opsForHash().put("maps","name","张三");
Map<String ,String> map = new HashMap<>();
map.put("age","12");
map.put("bir","2001-12-12");
stringRedisTemplate.opsForHash().putAll("maps",map);
List<Object> objects = stringRedisTemplate.opsForHash().multiGet("maps", Arrays.asList("name", "age"));
objects.forEach(values->{
System.out.println("values:"+values);
});
String value= (String)stringRedisTemplate.opsForHash().get("maps", "name");
System.out.println("value:"+value);
List<Object> maps = stringRedisTemplate.opsForHash().values("maps");
maps.forEach(listMap->{
System.out.println("listMap:"+listMap);
});
Set<Object> keys = stringRedisTemplate.opsForHash().keys("maps");
keys.forEach(listKey->{
System.out.println("listKey:"+listKey);
});
}
redisTemplate用于存储对象
@Autowired
private RedisTemplate redisTemplate;
@Test
private void testRedisTemplate(){
User user = new User();
redisTemplate.setKeySerializer(new StringRedisSerializer());
user.setId(UUID.randomUUID().toString());
user.setName("小车");
user.setAge(23);
user.setBir(new Date());
redisTemplate.opsForValue().set("name",user);
User name = (User)redisTemplate.opsForValue().get("name");
System.out.println(name);
redisTemplate.opsForList().leftPush("list",user);
redisTemplate.opsForSet().add("set",user);
redisTemplate.opsForSet().add("zset",user,10);
redisTemplate.setHashKeySerializer(new StringRedisSerializer());
redisTemplate.opsForHash().put("map","name",user);
}
redis绑定操作
@Test
public void testBount(){
redisTemplate.setKeySerializer(new StringRedisSerializer());
redisTemplate.setHashKeySerializer(new StringRedisSerializer());
stringRedisTemplate.opsForValue().set("name","zhangsan");
stringRedisTemplate.opsForValue().append("name","是个好人");
String name = stringRedisTemplate.opsForValue().get("name");
System.out.println(name);
BoundValueOperations<String, String> stringStringBoundValueOperations = stringRedisTemplate.boundValueOps("name");
stringStringBoundValueOperations.set("linailong");
stringStringBoundValueOperations.append("是个少年");
String s = stringStringBoundValueOperations.get();
System.out.println(s);
BoundListOperations<String, String> stringBoundListOperations = stringRedisTemplate.boundListOps("Lists");
stringBoundListOperations.leftPushAll("张山","李四","小陈");
List<String> range = stringBoundListOperations.range(0, -1);
range.forEach(list->{
System.out.println("list"+list);
});
}
总结
* 1,对key value是String使用stringRedisTemplate
* 2,对key value存在对象的使用redisTemplate
* 3,针对key多次操作的可以使用boundxxxOps()的api简化书写