Java实现RedisUtils操作五大集合(增删改查)
作者:小目标青年 时间:2023-07-13 06:33:14
前排提示,我在这个工具类加了@Component注解,如果在springboot的项目使用,记得通过@Autowired注入使用。
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.data.redis.core.*;
import org.springframework.stereotype.Component;
import java.io.Serializable;
import java.util.List;
import java.util.Set;
@Component
public class RedisUtils {
@Autowired
private RedisTemplate redisTemplate;
/**
* 写入String型 [ 键,值]
*
* @param key
* @param value
* @return
*/
public boolean set(final String key, Object value) {
boolean result = false;
try {
ValueOperations<Serializable, Object> operations = redisTemplate.opsForValue();
operations.set(key, value);
result = true;
} catch (Exception e) {
e.printStackTrace();
}
return result;
}
/**
* 写入String型,顺便带有过期时间 [ 键,值]
*
* @param key
* @param value
* @return
*/
public boolean setWithTime(final String key, Object value,int seconds) {
boolean result = false;
try {
ValueOperations<Serializable, Object> operations = redisTemplate.opsForValue();
operations.set(key, value,seconds, TimeUnit.SECONDS);
result = true;
} catch (Exception e) {
e.printStackTrace();
}
return result;
}
/**
* 批量删除对应的value
*
* @param keys
*/
public void remove(final String... keys) {
for (String key : keys) {
remove(key);
}
}
/**
* 批量删除key
*
* @param pattern
*/
public void removePattern(final String pattern) {
Set<Serializable> keys = redisTemplate.keys(pattern);
if (keys.size() > 0)
redisTemplate.delete(keys);
}
/**
* 删除对应的value
*
* @param key
*/
public void remove(final String key) {
if (exists(key)) {
redisTemplate.delete(key);
}
}
/**
* 判断缓存中是否有对应的value
*
* @param key
* @return
*/
public boolean exists(final String key) {
return redisTemplate.hasKey(key);
}
/**
* 读取缓存
*
* @param key
* @return
*/
public Object get(final String key) {
Object result = null;
ValueOperations<Serializable, Object> operations = redisTemplate.opsForValue();
result = operations.get(key);
return result;
}
/**
* 哈希 添加
* hash 一个键值(key->value)对集合
*
* @param key
* @param hashKey
* @param value
*/
public void hmSet(String key, Object hashKey, Object value) {
HashOperations<String, Object, Object> hash = redisTemplate.opsForHash();
hash.put(key, hashKey, value);
}
/**
* Hash获取数据
*
* @param key
* @param hashKey
* @return
*/
public Object hmGet(String key, Object hashKey) {
HashOperations<String, Object, Object> hash = redisTemplate.opsForHash();
return hash.get(key, hashKey);
}
/**
* 列表添加
* list:lpush key value1
*
* @param k
* @param v
*/
public void lPush(String k, Object v) {
ListOperations<String, Object> list = redisTemplate.opsForList();
list.rightPush(k, v);
}
/**
* 列表List获取
* lrange: key 0 10 (读取的个数 从0开始 读取到下标为10 的数据)
*
* @param k
* @param l
* @param l1
* @return
*/
public List<Object> lRange(String k, long l, long l1) {
ListOperations<String, Object> list = redisTemplate.opsForList();
return list.range(k, l, l1);
}
/**
* Set集合添加
*
* @param key
* @param value
*/
public void add(String key, Object value) {
SetOperations<String, Object> set = redisTemplate.opsForSet();
set.add(key, value);
}
/**
* Set 集合获取
*
* @param key
* @return
*/
public Set<Object> setMembers(String key) {
SetOperations<String, Object> set = redisTemplate.opsForSet();
return set.members(key);
}
/**
* Sorted set :有序集合添加
*
* @param key
* @param value
* @param scoure
*/
public void zAdd(String key, Object value, double scoure) {
ZSetOperations<String, Object> zset = redisTemplate.opsForZSet();
zset.add(key, value, scoure);
}
/**
* Sorted set:有序集合获取
*
* @param key
* @param scoure
* @param scoure1
* @return
*/
public Set<Object> rangeByScore(String key, double scoure, double scoure1) {
ZSetOperations<String, Object> zset = redisTemplate.opsForZSet();
return zset.rangeByScore(key, scoure, scoure1);
}
/**
* 根据key获取Set中的所有值
*
* @param key 键
* @return
*/
public Set<Integer> sGet(String key) {
try {
return redisTemplate.opsForSet().members(key);
} catch (Exception e) {
e.printStackTrace();
return null;
}
}
/**
* 根据value从一个set中查询,是否存在
*
* @param key 键
* @param value 值
* @return true 存在 false不存在
*/
public boolean sHasKey(String key, Object value) {
try {
return redisTemplate.opsForSet().isMember(key, value);
} catch (Exception e) {
e.printStackTrace();
return false;
}
}
}
来源:https://blog.csdn.net/qq_35387940/article/details/94392100
标签:Java,RedisUtils,操作
![](/images/zang.png)
![](/images/jiucuo.png)
猜你喜欢
IntelliJ IDEA2019实现Web项目创建示例
2023-06-05 00:29:33
![](https://img.aspxhome.com/file/2023/3/62333_0s.jpg)
Java中对List集合的常用操作详解
2023-05-02 23:52:47
Android自定义processor实现bindView功能的实例
2023-09-07 17:16:37
![](https://img.aspxhome.com/file/2023/1/139621_0s.png)
C#引用类型转换的常见方式总结
2022-03-02 16:53:58
Spring Security实现基于角色的访问控制框架
2022-03-19 05:40:53
![](https://img.aspxhome.com/file/2023/0/110920_0s.png)
Android App调试内存泄露之Cursor篇
2023-11-22 03:36:29
10张图总结出并发编程最佳学习路线
2021-06-03 00:40:16
![](https://img.aspxhome.com/file/2023/2/77342_0s.jpg)
java项目中的绝对路径和相对路径用法说明
2023-11-27 22:08:44
C#复杂XML反序列化为实体对象两种方式小结
2022-08-05 16:50:45
![](https://img.aspxhome.com/file/2023/4/82214_0s.png)
Android屏幕旋转 处理Activity与AsyncTask的最佳解决方案
2023-03-22 07:02:50
![](https://img.aspxhome.com/file/2023/6/91696_0s.gif)
Spring创建bean对象三种方式代码实例
2023-02-04 08:53:33
![](https://img.aspxhome.com/file/2023/6/70526_0s.png)
基于jni调用时,jvm报错问题的深入分析
2022-08-08 17:21:55
Android View 事件分发机制详解
2023-11-26 05:18:13
基于rocketmq的有序消费模式和并发消费模式的区别说明
2021-10-29 08:41:02
![](https://img.aspxhome.com/file/2023/0/80310_0s.png)
Java正则验证电话,手机,邮箱,日期,金额的方法示例
2021-06-25 22:37:46
Spring MVC基于注解的使用之JSON数据处理的方法
2022-06-02 14:02:43
![](https://img.aspxhome.com/file/2023/9/118819_0s.png)
教你使用idea搭建ssm详细教程(Spring+Spring Mvc+Mybatis)
2021-09-23 12:37:42
![](https://img.aspxhome.com/file/2023/6/62736_0s.png)
Android编程之菜单实现方法
2023-12-21 16:41:24
![](https://img.aspxhome.com/file/2023/8/111668_0s.png)
java实现简单的验证码功能
2023-08-06 09:21:44
Spring整合junit的配置过程图解
2022-12-18 16:37:48
![](https://img.aspxhome.com/file/2023/5/66975_0s.png)