package com.encrypt.config.utils;
import com.alibaba.fastjson.JSONObject;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.data.redis.connection.DataType;
import org.springframework.data.redis.core.Cursor;
import org.springframework.data.redis.core.ScanOptions;
import org.springframework.data.redis.core.StringRedisTemplate;
import org.springframework.data.redis.core.ZSetOperations;
import org.springframework.stereotype.Component;
import org.springframework.util.StringUtils;
import java.util.ArrayList;
import java.util.Collection;
import java.util.Date;
import java.util.HashMap;
import java.util.HashSet;
import java.util.List;
import java.util.Map;
import java.util.Set;
import java.util.concurrent.TimeUnit;
@Component
public class RedisUtil {
@Autowired
private StringRedisTemplate redisTemplate;
public void setRedisTemplate(StringRedisTemplate redisTemplate) {
this.redisTemplate = redisTemplate;
}
public StringRedisTemplate getRedisTemplate() {
return this.redisTemplate;
}
// TimeUnit:时间单位, 天:TimeUnit.DAYS 小时:TimeUnit.HOURS 分钟:TimeUnit.MINUTES 秒:TimeUnit.SECONDS 毫秒:TimeUnit.MILLISECONDS
// -------------------key相关操作---------------------
/**
* 删除key
*/
public void delete(String key) {
redisTemplate.delete(key);
}
/**
* 批量删除key
*/
public void delete(Collection<String> keys) {
redisTemplate.delete(keys);
}
/**
* 序列化key
*/
public byte[] dump(String key) {
return redisTemplate.dump(key);
}
/**
* 是否存在key
*/
public Boolean hasKey(String key) {
return redisTemplate.hasKey(key);
}
/**
* 设置过期时间
* @param key key
* @param timeout 过期时间
* @param unit 时间单位
*/
public Boolean expire(String key, long timeout, TimeUnit unit) {
return redisTemplate.expire(key, timeout, unit);
}
/**
* 设置过期时间
*/
public Boolean expireAt(String key, Date date) {
return redisTemplate.expireAt(key, date);
}
/**
* 查找匹配的key
*/
public Set<String> keys(String pattern) {
return redisTemplate.keys(pattern);
}
/**
* 将当前数据库的 key 移动到给定的数据库 db 当中
*/
public Boolean move(String key, int dbIndex) {
return redisTemplate.move(key, dbIndex);
}
/**
* 移除 key 的过期时间,key 将持久保持
*/
public Boolean persist(String key) {
return redisTemplate.persist(key);
}
/**
* 返回 key 的剩余的过期时间
*/
public Long getExpire(String key, TimeUnit unit) {
return redisTemplate.getExpire(key, unit);
}
/**
* 返回 key 的剩余的过期时间
*/
public Long getExpire(String key) {
return redisTemplate.getExpire(key);
}
/**
* 从当前数据库中随机返回一个 key
*/
public String randomKey() {
return redisTemplate.randomKey();
}
/**
* 修改 key 的名称
*/
public void rename(String oldKey, String newKey) {
redisTemplate.rename(oldKey, newKey);
}
/**
* 仅当 newkey 不存在时,将 oldKey 改名为 newkey
*/
public Boolean renameIfAbsent(String oldKey, String newKey) {
return redisTemplate.renameIfAbsent(oldKey, newKey);
}
/**
* 返回 key 所储存的值的类型
*/
public DataType type(String key) {
return redisTemplate.type(key);
}
// -------------------string相关操作---------------------
/**
* 设置指定 key 的值
*/
public void set(String key, String value) {
redisTemplate.opsForValue().set(key, value);
}
/**
* 设置指定 key 的值
*/
public void setEx(String key, String value, long timeout) {
redisTemplate.opsForValue().set(key, value, timeout, TimeUnit.SECONDS);
}
/**
* 设置指定 key 的值
*/
public void setBean(String key, Object value) {
redisTemplate.opsForValue().set(key, JSONObject.toJSONString(value));
}
/**
* 设置指定 key 的值
*/
public void setBeanEx(String key, Object value, long timeout) {
redisTemplate.opsForValue().set(key, JSONObject.toJSONString(value), timeout, TimeUnit.SECONDS);
}
/**
* 获取指定 key 的值
*/
public String get(String key) {
return redisTemplate.opsForValue().get(key);
}
/**
* 获取指定 key 的值
*/
public <T> T getToBean(String key,Class<T> var) {
Object obj = redisTemplate.opsForValue().get(key);
if(!StringUtils.isEmpty(obj)){
return JSONObject.parseObject(String.valueOf(obj),var);
}
return null;
}
/**
* 返回 key 中字符串值的子字符
*/
public String getRange(String key, long start, long end) {
return redisTemplate.opsForValue().get(key, start, end);
}
/**
* 将给定 key 的值设为 value ,并返回 key 的旧值(old value)
*/
public String getAndSet(String key, String value) {
return redisTemplate.opsForValue().getAndSet(key, value);
}
/**
* 对 key 所储存的字符串值,获取指定偏移量上的位(bit)
*/
public Boolean getBit(String key, long offset) {
return redisTemplate.opsForValue().getBit(key, offset);
}
/**
* 批量获取
*/
public List<String> multiGet(Collection<String> keys) {
return redisTemplate.opsForValue().multiGet(keys);
}
/**
* 设置ASCII码, 字符串'a'的ASCII码是97, 转为二进制是'01100001', 此方法是将二进制第offset位值变为value
*/
public boolean setBit(String key, long offset, boolean value) {
return redisTemplate.opsForValue().setBit(key, offset, value);
}
/**
* 将值 value 关联到 key ,并将 key 的过期时间设为 timeout
*/
public void setEx(String key, String value, long timeout, TimeUnit unit) {
redisTemplate.opsForValue().set(key, value, timeout, unit);
}
/**
* 只有在 key 不存在时设置 key 的值, 之前已经存在返回false,不存在返回true
*/
public boolean setIfAbsent(String key, String value) {
return redisTemplate.opsForValue().setIfAbsent(key, value);
}
/**
* 用 value 参数覆写给定 key 所储存的字符串值,从偏移量 offset 开始 从指定位置开始覆写
*/
public void setRange(String key, String value, long offset) {
redisTemplate.opsForValue().set(key, value, offset);
}
/**
* 获取字符串的长度
*/
public Long size(String key) {
return redisTemplate.opsForValue().size(key);
}
/**
* 批量添加
*/
public void multiSet(Map<String, String> maps) {
redisTemplate.opsForValue().multiSet(maps);
}
/**
* 同时设置一个或多个 key-value 对,当且仅当所有给定 key 都不存在。 之前已经存在返回false,不存在返回true
*/
public boolean multiSetIfAbsent(Map<String, String> maps) {
return redisTemplate.opsForValue().multiSetIfAbsent(maps);
}
/**
* 增加(自增长), 负数则为自减
*/
public Long incrBy(String key, long increment) {
return redisTemplate.opsForValue().increment(key, increment);
}
/**
* 追加到末尾
*/
public Integer append(String key, String value) {
return redi
没有合适的资源?快使用搜索试试~ 我知道了~
温馨提示
Springboot项目报文加密(采用AES、RSA动态加密策略) Springboot项目报文加密(采用AES、RSA动态加密策略) Springboot项目报文加密(采用AES、RSA动态加密策略) Springboot项目报文加密(采用AES、RSA动态加密策略) Springboot项目报文加密(采用AES、RSA动态加密策略) Springboot项目报文加密(采用AES、RSA动态加密策略) Springboot项目报文加密(采用AES、RSA动态加密策略) Springboot项目报文加密(采用AES、RSA动态加密策略) Springboot项目报文加密(采用AES、RSA动态加密策略) Springboot项目报文加密(采用AES、RSA动态加密策略) Springboot项目报文加密(采用AES、RSA动态加密策略) Springboot项目报文加密(采用AES、RSA动态加密策略) Springboot项目报文加密(采用AES、RSA动态加密策略) Springboot项目报文加密(采用AES、RSA动态加密策略)
资源推荐
资源详情
资源评论
收起资源包目录
encrypt.zip (31个子文件)
encrypt
pom.xml 3KB
src
main
resources
sql
t_sys_user.sql 758B
mapper
SysUserMapper.xml 1KB
application-dev.yml 2KB
application.yml 37B
java
com
encrypt
common
mapper
SysUserMapper.java 245B
controller
SysUserController.java 842B
LoginController.java 2KB
service
ILoginService.java 394B
ISysUserService.java 279B
impl
SysUserServiceImpl.java 693B
LoginServiceImpl.java 10KB
entity
SysUser.java 1KB
vo
LoginVO.java 478B
Encrypt.java 232B
config
annotation
IgnoreInterceptor.java 347B
utils
SpringContextUtils.java 2KB
LoginSessionPool.java 739B
Base64Utils.java 3KB
RedisUtil.java 25KB
AesUtil.java 3KB
RSAUtils.java 11KB
PassWordUtil.java 453B
VerifyCodeUtils.java 5KB
SpringContextConstant.java 212B
SessionUtil.java 3KB
WebMvcConfiguration.java 5KB
bean
LoginSession.java 1KB
RedisBean.java 1KB
Result.java 3KB
EncryptApplication.java 634B
共 31 条
- 1
资源评论
- xzlnjit2024-05-22#即装即用
message丶小和尚
- 粉丝: 1w+
- 资源: 22
上传资源 快速赚钱
- 我的内容管理 展开
- 我的资源 快来上传第一个资源
- 我的收益 登录查看自己的收益
- 我的积分 登录查看自己的积分
- 我的C币 登录后查看C币余额
- 我的收藏
- 我的下载
- 下载帮助
最新资源
- 上海牛津英语_高中一年级上_词汇提炼.doc
- 数学源于生活用于生活.doc
- 苏教版四年级(下册)按课文填空.doc
- 苏版四年级(上册)数学第四单元教学案.doc
- 我国农业银行笔试题目和答案.doc
- 网络安全知识试题库完整.doc
- 我国农业机械化的现状和发展趋势.doc
- 五年级解方程及应用题知识点及例题.doc
- 系学生会学习部申请书(精选多篇).doc
- 小学生科技活动辅导教学案.doc
- 小学数学课堂教学中小组合作学习的有效性.doc
- weixin411医疗就诊微信小程序设计与实现开发-0d26l+django .zip
- 学校团委书记竞聘演讲稿[精选多篇].doc
- 学校消防工作计划(精选多篇).doc
- 一级锅炉水处理试题和答案.doc
- 义务教育阶段双语教育新教双语教学质量评估自查自评报告.doc
资源上传下载、课程学习等过程中有任何疑问或建议,欢迎提出宝贵意见哦~我们会及时处理!
点击此处反馈
安全验证
文档复制为VIP权益,开通VIP直接复制
信息提交成功