Redis与其数据库的不同,如下图:
redis提供了5种不同的数据结构:
- 对String类型的数据进行操作
/**
* 对string类型数据进行操作
* @param request
* @return
*/
@RequestMapping(value = "/opsString", method = RequestMethod.GET)
public Map<String, Object> opsString (HttpServletRequest request){
redisTemplate.opsForValue().set("string_set","set");
redisTemplate.opsForValue().get("string_set");
redisTemplate.delete("string_set");
return new HashMap<>();
}
- 对List进行操作
/**
* 对集合类型进行操作
* @param request
* @return
*/
@RequestMapping(value = "/opsList", method = RequestMethod.GET)
public Map<String, Object> opsList (HttpServletRequest request){
//左插入
redisTemplate.opsForList().leftPush("testValue","value1");
redisTemplate.opsForList().leftPush("testValue","value2");
//右插入
redisTemplate.opsForList().rightPush("testValue","value1");
redisTemplate.opsForList().leftPop("testValue");
redisTemplate.opsForList().rightPop("testValue");
Object testValue1 = redisTemplate.opsForList().index("testValue", 0);
//取出所有元素
List testValue = redisTemplate.opsForList().range("testValue", 0, -1);
HashMap<String, Object> objectObjectHashMap = new HashMap<>();
objectObjectHashMap.put("size",testValue.size());
objectObjectHashMap.put("testValue1",testValue1);
return objectObjectHashMap;
}
- 对set进行操作
/**
* 对集合类型进行操作set
* @param request
* @return
*/
@RequestMapping(value = "/opsSet", method = RequestMethod.GET)
public Map<String, Object> opsSet (HttpServletRequest request){
HashMap<String, Object> objectObjectHashMap = new HashMap<>();
redisTemplate.opsForSet().add("testSet","setValue1");
redisTemplate.opsForSet().add("testSet","setValue2");
Set testSet = redisTemplate.opsForSet().members("testSet");
objectObjectHashMap.put("set集合数量:",testSet.size());
Boolean member = redisTemplate.opsForSet().isMember("testSet", "setValue2");
objectObjectHashMap.put("setValue2是否存在:",member);
Long remove = redisTemplate.opsForSet().remove("testSet", "setValue2");
objectObjectHashMap.put("setValue2是否删除:",remove);
return objectObjectHashMap;
}
- 对hash进行操作
/**
* 对hash进行操作
* @param request
* @return
*/
@RequestMapping(value = "/opsHash", method = RequestMethod.GET)
public Map<String, Object> opsHash (HttpServletRequest request){
HashMap<String, Object> objectObjectHashMap = new HashMap<>();
redisTemplate.opsForHash().put("hashKey","valueKey","value");
Object value = redisTemplate.opsForHash().get("hashKey", "valueKey");
objectObjectHashMap.put("valueKey",value);
Map hashKey = redisTemplate.opsForHash().entries("hashKey");
objectObjectHashMap.put("map",hashKey.size());
redisTemplate.opsForHash().delete("hashKey","valueKey");
return objectObjectHashMap;
}
- 对zset进行操作(稍后再做一个补充)
@RequestMapping(value = "/zset", method = RequestMethod.GET)
public Map<String, Object> zset (HttpServletRequest request){
HashMap<String, Object> objectObjectHashMap = new HashMap<>();
redisTemplate.opsForZSet().add("testkey","testValue",1);
redisTemplate.opsForZSet().add("testkey","testValue",2);
Set testkey = redisTemplate.opsForZSet().range("testkey", 0, -1);
Set testkey1 = redisTemplate.opsForZSet().rangeByScore("testkey", 0, -1);
return objectObjectHashMap;
}