本文主要是介绍SpringDataRedis小记,希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!
SpringDataRedis小记
前言
官方文档:https://docs.spring.io/spring-data/redis/docs/2.1.6.RELEASE/reference/html/
maven地址:https://mvnrepository.com/artifact/org.springframework.boot/spring-boot-starter-data-redis
pom依赖
<dependency><groupId>org.springframework.boot</groupId><artifactId>spring-boot-starter-data-redis</artifactId>
</dependency>
数据操作
String
/*** 设置key的string* @param value* @return*/
@GetMapping("sstr")
public String setString(String value){try {redisTemplate.opsForValue().set("name", value);} catch (Exception e) {return e.getMessage();}return "SUCCESS";
}/*** 获取key的string* @param key* @return*/
@GetMapping("gstr")
public String getString(String key){return JSON.toJSONString(redisTemplate.opsForValue().get(key));
}
List
/*** 设置key的list集合* @param sons* @param key* @return*/
@PostMapping("/slist/{key}")
public String setUser(@RequestBody List<Son> sons,@PathVariable("key") String key){try {redisTemplate.opsForList().leftPushAll(key, sons);} catch (Exception e) {return e.getMessage();}return "SUCCESS";
}/*** 获取key的list集合* @param key* @return*/
@GetMapping("/glist")
public List<Son> getSon(String key){return redisTemplate.opsForList().range(key, 0, -1);
}
Set
/*** 设置key的set集合* @param key* @param sons* @return*/
@PostMapping("sadd/{key}")
public String sadd(@PathVariable("key") String key, @RequestBody Set<Son> sons){try {redisTemplate.opsForSet().add(key, sons);} catch (Exception e) {return e.getMessage();}return "SUCCESS";
}/*** 获取key的set集合* @param key* @return*/
@GetMapping("smembers")
public Set<Son> smembers(String key){Set members = redisTemplate.opsForSet().members(key);return members;
}
Zset
/*** 向redis中添加zset集合* @param key* @param sons* @return*/
@PostMapping("zadd/{key}")
public String zadd(@PathVariable("key")String key, @RequestBody Set<Son> sons){try {Set<DefaultTypedTuple<Son>> set = new HashSet<>();sons.forEach(item -> {double random = Math.random();DefaultTypedTuple<Son> typedTuple = new DefaultTypedTuple<>(item, random);set.add(typedTuple);});redisTemplate.opsForZSet().add(key, set);} catch (Exception e) {return e.getMessage();}return "SUCCESS";
}/*** 获取zset集合范围元素* @param key* @param start* @param end* @return*/
@GetMapping("zrange")
public Set<Son> zrange(String key, Integer start, Integer end){Set range = redisTemplate.opsForZSet().range(key, start, end);return range;
}
Hash
/*** 设置redis key 的hash值* @param key* @param sonMap* @return*/
@PostMapping("hmset/{key}")
public String hmSet(@PathVariable("key") String key,@RequestBody Map<String, Son> sonMap){try {redisTemplate.opsForHash().putAll(key, sonMap);} catch (Exception e) {return e.getMessage();}return "SUCCESS";
}/*** 获取redis中key的hash* @param key* @return*/
@GetMapping("hmget")
public Map hmget(String key){return redisTemplate.opsForHash().entries(key);
}
全部
package top.simba1949.controller;import com.alibaba.fastjson.JSON;
import lombok.extern.slf4j.Slf4j;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.data.redis.core.DefaultTypedTuple;
import org.springframework.data.redis.core.RedisTemplate;
import org.springframework.web.bind.annotation.*;
import top.simba1949.common.Son;import java.util.*;/*** @author simba1949@outlook.com* @date 2019/5/3 19:27*/
@Slf4j
@RestController
@RequestMapping("/redis")
public class RedisController {@Autowiredprivate RedisTemplate redisTemplate;/*** 设置key的string* @param value* @return*/@GetMapping("sstr")public String setString(String value){try {redisTemplate.opsForValue().set("name", value);} catch (Exception e) {return e.getMessage();}return "SUCCESS";}/*** 获取key的string* @param key* @return*/@GetMapping("gstr")public String getString(String key){return JSON.toJSONString(redisTemplate.opsForValue().get(key));}/*** 设置key的list集合* @param sons* @param key* @return*/@PostMapping("/slist/{key}")public String setUser(@RequestBody List<Son> sons,@PathVariable("key") String key){try {redisTemplate.opsForList().leftPushAll(key, sons);} catch (Exception e) {return e.getMessage();}return "SUCCESS";}/*** 获取key的list集合* @param key* @return*/@GetMapping("/glist")public List<Son> getSon(String key){return redisTemplate.opsForList().range(key, 0, -1);}/*** 设置key的set集合* @param key* @param sons* @return*/@PostMapping("sadd/{key}")public String sadd(@PathVariable("key") String key, @RequestBody Set<Son> sons){try {redisTemplate.opsForSet().add(key, sons);} catch (Exception e) {return e.getMessage();}return "SUCCESS";}/*** 获取key的set集合* @param key* @return*/@GetMapping("smembers")public Set<Son> smembers(String key){Set members = redisTemplate.opsForSet().members(key);return members;}/*** 向redis中添加zset集合* @param key* @param sons* @return*/@PostMapping("zadd/{key}")public String zadd(@PathVariable("key")String key, @RequestBody Set<Son> sons){try {Set<DefaultTypedTuple<Son>> set = new HashSet<>();sons.forEach(item -> {double random = Math.random();DefaultTypedTuple<Son> typedTuple = new DefaultTypedTuple<>(item, random);set.add(typedTuple);});redisTemplate.opsForZSet().add(key, set);} catch (Exception e) {return e.getMessage();}return "SUCCESS";}/*** 获取zset集合范围元素* @param key* @param start* @param end* @return*/@GetMapping("zrange")public Set<Son> zrange(String key, Integer start, Integer end){Set range = redisTemplate.opsForZSet().range(key, start, end);return range;}/*** 设置redis key 的hash值* @param key* @param sonMap* @return*/@PostMapping("hmset/{key}")public String hmSet(@PathVariable("key") String key,@RequestBody Map<String, Son> sonMap){try {redisTemplate.opsForHash().putAll(key, sonMap);} catch (Exception e) {return e.getMessage();}return "SUCCESS";}/*** 获取redis中key的hash* @param key* @return*/@GetMapping("hmget")public Map hmget(String key){return redisTemplate.opsForHash().entries(key);}
}
这篇关于SpringDataRedis小记的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!