SpringDataRedis小记

2023-12-16 18:58
文章标签 小记 springdataredis

本文主要是介绍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小记的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!



http://www.chinasem.cn/article/501545

相关文章

ZOJ Monthly, August 2014小记

最近太忙太忙,只能抽时间写几道简单题。不过我倒是明白要想水平提高不看题解是最好的了。 A  我只能死找规律了,无法证明 int a[50002][2] ;vector< vector<int> > gmax , gmin ;int main(){int n , i , j , k , cmax , cmin ;while(cin>>n){/* g

Codeforces Round #261 (Div. 2)小记

A  XX注意最后输出满足条件,我也不知道为什么写的这么长。 #define X first#define Y secondvector<pair<int , int> > a ;int can(pair<int , int> c){return -1000 <= c.X && c.X <= 1000&& -1000 <= c.Y && c.Y <= 1000 ;}int m

2014 Multi-University Training Contest 8小记

1002 计算几何 最大的速度才可能拥有无限的面积。 最大的速度的点 求凸包, 凸包上的点( 注意不是端点 ) 才拥有无限的面积 注意 :  凸包上如果有重点则不满足。 另外最大的速度为0也不行的。 int cmp(double x){if(fabs(x) < 1e-8) return 0 ;if(x > 0) return 1 ;return -1 ;}struct poin

2014 Multi-University Training Contest 7小记

1003   数学 , 先暴力再解方程。 在b进制下是个2 , 3 位数的 大概是10000进制以上 。这部分解方程 2-10000 直接暴力 typedef long long LL ;LL n ;int ok(int b){LL m = n ;int c ;while(m){c = m % b ;if(c == 3 || c == 4 || c == 5 ||

2014 Multi-University Training Contest 6小记

1003  贪心 对于111...10....000 这样的序列,  a 为1的个数,b为0的个数,易得当 x= a / (a + b) 时 f最小。 讲串分成若干段  1..10..0   ,  1..10..0 ,  要满足x非递减 。  对于 xi > xi+1  这样的合并 即可。 const int maxn = 100008 ;struct Node{int

logback小记

1、需要的maven依赖: <dependency><groupId>ch.qos.logback</groupId><artifactId>logback-classic</artifactId><version>1.2.3</version><!--<scope>test</scope>--></dependency><!-- https://mvnrepository.com/artifa

策略模式的小记

策略模式 策略模式支付系统【场景再现】硬编码完成不同的支付策略使用策略模式,对比不同(1)支付策略接口(2)具体的支付策略类(3)上下文(4)客户端(5)小结 策略模式 定义:策略模式是一种行为设计模式,在运行时改变对象的行为。 目的:定义一系列算法,把它们一个个封装起来,并且使它们可相互替换。 结构: 策略接口:声明了所有支持的所有算法的公共接口。具体策略:实现了策略

类的加载过程与初始化小记

//部分内容来自“狂神说java” 代码验证 解释 1.加载类的信息,加载到内存中,如例子,将Test05和A类的信息加载到方法区, 2.加载完成后,立马生成一个class对象,如例 java.lang.class对象代表Test05类..., 3.执行main方法,通过<clinit>进行初始化 类的初始化

记录|单例模式小记

目录 前言一、单例模式1.1 什么是单例模式1.2 常见单例模式 二、单例模式对比更新时间 前言 参考文章: 去读队友写的代码的时候由于看不懂才去学习的。 一般情况下,这种是用于数据库的开销避免。 例如: public class DBConnectionManager{private static DBConnectionManager instance;

VC6安装过程小记

用几百M的安装盘,最后总是挂掉。 可以用43M的visual c++ VC6-green-english.rar,解压缩后运行sin.bat。 如果出现如下错误,确认VC的Tools->Options…下面的include配置是否正确,根据自己的实际情况修改即可。 无法打开包含文件 'afxres.h' 这个绿色版本是Eng的。