package com.gly.uppis.common.cache;
import com.gly.uppis.common.util.SerializeUtil;
import org.springframework.util.StringUtils;
import redis.clients.jedis.BinaryClient;
import redis.clients.jedis.Jedis;
import redis.clients.jedis.JedisPool;
import redis.clients.jedis.JedisPoolConfig;
import java.util.List;
import java.util.Map;
import java.util.Set;
/**
* @author GuLiyun
*/
public class RedisHelper {
private JedisPool pool = null;
private RedisHelper() {
if (pool == null) {
String ip = SysConfig.IP;
int port = SysConfig.REDIS_PORT;
String password = SysConfig.REDIS_PASSWORD;
JedisPoolConfig jedisPoolConfig = new JedisPoolConfig();
jedisPoolConfig.setMaxTotal(SysConfig.MAX_TOTAL);
jedisPoolConfig.setMaxIdle(SysConfig.MAX_IDLE);
jedisPoolConfig.setMaxWaitMillis(SysConfig.MAX_WAIT);
jedisPoolConfig.setTestOnBorrow(SysConfig.TEST_ON_BORROW);
if (password != null && !"".equals(password)) {
// redis 设置了密码
pool = new JedisPool(jedisPoolConfig, ip, port, SysConfig.TIMEOUT, password);
}else {
// redis 未设置密码
pool = new JedisPool(jedisPoolConfig,ip,port,SysConfig.TIMEOUT);
}
}
}
/**
* 加锁
* @param key
* @param value 当前时间+超时时间
* @return
*/
public boolean lock(String key, String value) {
Jedis jedis = getJedis();
return jedis.setnx(key, value) > 0;
}
/**
* 解锁
* @param key
* @param value
* @return
*/
public void unlock(String key, String value) {
Jedis jedis = getJedis();
String currentVaule = jedis.get(key);
try {
if (!StringUtils.isEmpty(currentVaule) && currentVaule.equals(value)) {
jedis.del(key);
}
} catch (Exception e) {
e.printStackTrace();
}
}
/**
* 获取指定key的值,如果key不存在返回null,如果该Key存储的不是字符串,会抛出一个错误
*
* @param key
* @return
*/
public String get(String key) {
Jedis jedis = getJedis();
String value = null;
value = jedis.get(key);
return value;
}
/**
* 设置key的值为value
*
* @param key
* @param value
* @return
*/
public String set(String key, String value) {
Jedis jedis = getJedis();
return jedis.set(key, value);
}
/**
* 删除指定的key,也可以传入一个包含key的数组
*
* @param keys
* @return
*/
public Long del(String... keys) {
Jedis jedis = getJedis();
return jedis.del(keys);
}
/**
* 通过key向指定的value值追加值
*
* @param key
* @param str
* @return
*/
public Long append(String key, String str) {
Jedis jedis = getJedis();
return jedis.append(key, str);
}
/**
* 判断key是否存在
*
* @param key
* @return
*/
public Boolean exists(String key) {
Jedis jedis = getJedis();
return jedis.exists(key);
}
/**
* 设置key value,如果key已经存在则返回0
*
* @param key
* @param value
* @return
*/
public Long setnx(String key, String value) {
Jedis jedis = getJedis();
return jedis.setnx(key, value);
}
/**
* 设置key value并指定这个键值的有效期
*
* @param key
* @param seconds
* @param value
* @return
*/
public String setex(String key, int seconds, String value) {
Jedis jedis = getJedis();
return jedis.setex(key, seconds, value);
}
/**
* 通过key 和offset 从指定的位置开始将原先value替换
*
* @param key
* @param offset
* @param str
* @return
*/
public Long setrange(String key, int offset, String str) {
Jedis jedis = getJedis();
return jedis.setrange(key, offset, str);
}
/**
* 通过批量的key获取批量的value
*
* @param keys
* @return
*/
public List<String> mget(String... keys) {
Jedis jedis = getJedis();
return jedis.mget(keys);
}
/**
* 批量的设置key:value,也可以一个
*
* @param keysValues
* @return
*/
public String mset(String... keysValues) {
Jedis jedis = getJedis();
return jedis.mset(keysValues);
}
/**
* 批量的设置key:value,可以一个,如果key已经存在则会失败,操作会回滚
*
* @param keysValues
* @return
*/
public Long msetnx(String... keysValues) {
Jedis jedis = getJedis();
return jedis.msetnx(keysValues);
}
/**
* 设置key的值,并返回一个旧值
*
* @param key
* @param value
* @return
*/
public String getSet(String key, String value) {
Jedis jedis = getJedis();
return jedis.getSet(key, value);
}
/**
* 通过下标 和key 获取指定下标位置的 value
*
* @param key
* @param startOffset
* @param endOffset
* @return
*/
public String getrange(String key, int startOffset, int endOffset) {
Jedis jedis = getJedis();
return jedis.getrange(key, startOffset, endOffset);
}
/**
* 通过key 对value进行加值+1操作,当value不是int类型时会返回错误,当key不存在是则value为1
*
* @param key
* @return
*/
public Long incr(String key) {
Jedis jedis = getJedis();
return jedis.incr(key);
}
/**
* 通过key给指定的value加值,如果key不存在,则这是value为该值
*
* @param key
* @param integer
* @return
*/
public Long incrBy(String key, long integer) {
Jedis jedis = getJedis();
return jedis.incrBy(key, integer);
}
/**
* 对key的值做减减操作,如果key不存在,则设置key为-1
*
* @param key
* @return
*/
public Long decr(String key) {
Jedis jedis = getJedis();
return jedis.decr(key);
}
/**
* 减去指定的值
*
* @param key
* @param integer
* @return
*/
public Long decrBy(String key, long integer) {
Jedis jedis = getJedis();
return jedis.decrBy(key, integer);
}
/**
* 通过key获取value值的长度
*
* @param key
* @return
*/
public Long strLen(String key) {
Jedis jedis = getJedis();
return jedis.strlen(key);
}
/**
* 通过key给field设置指定的值,如果key不存在则先创建,如果field已经存在,返回0
*
* @param key
* @param field
* @param value
* @return
*/
public Long hsetnx(String key, String field, String value) {
Jedis jedis = getJedis();
return jedis.hsetnx(key, field, value);
}
/**
* 通过key给field设置指定的值,如果key不存在,则先创建
*
* @param key
* @param field
* @param value
* @return
*/
public Long hset(String key, String field, String value) {
Jedis jedis = getJedis();
return jedis.hset(key, field, value);
}
/**
* 通过key同时设置 hash的多个field
*
* @param key
* @param hash
* @return
*/
public String hmset(String key, Map<String, String> hash) {
Jedis jedis = getJedis();
return jedis.hmset(key, hash);
}
/**
* 通过key 和 field 获取指定的 value
*
* @param key
* @param failed
* @return
*/
public String hget(String key, String failed) {
Jedis jedis = getJedis();
return jedis.hget(key, failed);
没有合适的资源?快使用搜索试试~ 我知道了~
Java毕业设计 基于SpringBoot+Vue前后端分离的绩效管理系统的设计与实现+部署文档+全部资料(优秀项目).zip
共339个文件
java:90个
vue:88个
js:77个
1.该资源内容由用户上传,如若侵权请联系客服进行举报
2.虚拟产品一经售出概不退款(资源遇到问题,请及时私信上传者)
2.虚拟产品一经售出概不退款(资源遇到问题,请及时私信上传者)
版权申诉
0 下载量 11 浏览量
2024-04-22
15:28:50
上传
评论
收藏 3.69MB ZIP 举报
温馨提示
【资源说明】 Java毕业设计 基于SpringBoot+Vue前后端分离的绩效管理系统的设计与实现+部署文档+全部资料(优秀项目).zipJava毕业设计 基于SpringBoot+Vue前后端分离的绩效管理系统的设计与实现+部署文档+全部资料(优秀项目).zipJava毕业设计 基于SpringBoot+Vue前后端分离的绩效管理系统的设计与实现+部署文档+全部资料(优秀项目).zip 【备注】 1、该项目是个人高分毕业设计项目源码,已获导师指导认可通过,答辩评审分达到95分 2、该资源内项目代码都经过mac/window10/11测试运行成功,功能ok的情况下才上传的,请放心下载使用! 3、本项目适合计算机相关专业(如软件工程、计科、人工智能、通信工程、自动化、电子信息等)的在校学生、老师或者企业员工下载使用,也可作为毕业设计、课程设计、作业、项目初期立项演示等,当然也适合小白学习进阶。 4、如果基础还行,可以在此代码基础上进行修改,以实现其他功能,也可直接用于毕设、课设、作业等。 欢迎下载,沟通交流,互相学习,共同进步!
资源推荐
资源详情
资源评论
收起资源包目录
Java毕业设计 基于SpringBoot+Vue前后端分离的绩效管理系统的设计与实现+部署文档+全部资料(优秀项目).zip (339个子文件)
.babelrc 38B
mvnw.cmd 6KB
iconfont.css 4KB
.editorconfig 147B
iconfont.eot 4KB
.eslintignore 0B
.eslintrc 138B
.gitignore 303B
.gitignore 291B
index.html 538B
favicon.ico 4KB
maven-wrapper.jar 47KB
RedisHelper.java 23KB
MarkServiceImpl.java 8KB
PerformanceServiceImpl.java 5KB
MavenWrapperDownloader.java 5KB
User.java 4KB
Task.java 4KB
TaskServiceImpl.java 4KB
Period.java 3KB
SettingServiceImpl.java 2KB
TaskController.java 2KB
Attendance.java 2KB
Dept.java 2KB
Response.java 2KB
MarkController.java 2KB
DeptPerResultBO.java 2KB
PerformanceResult.java 1KB
Performance.java 1KB
MarkDetail.java 1KB
GlobalExceptionHandler.java 1KB
Mark.java 1KB
PerformanceController.java 1KB
SerializeUtil.java 1KB
InputServiceImpl.java 1KB
LoginController.java 1009B
LoginServiceImpl.java 983B
InputController.java 925B
AttendanceConroller.java 922B
MarkReuqest.java 872B
SysConfig.java 865B
UserWithPeriod.java 840B
TargetServiceImpl.java 824B
SettingController.java 817B
TaskService.java 805B
MarkPersonBO.java 798B
TeamController.java 776B
TargetVO.java 767B
AttendanceServiceImpl.java 761B
PerformanceDao.java 750B
AttendanceSearchRequest.java 750B
TeamServiceImpl.java 698B
Target.java 682B
TaskDao.java 679B
Setting.java 669B
TaskSearchParamRequest.java 657B
PerSelectParamRequest.java 635B
PeriodServiceImpl.java 617B
Status.java 612B
MarkDetailDao.java 575B
ValidException.java 567B
UserServiceImpl.java 556B
UserWithLeaderResult.java 555B
PerResultBO.java 523B
UserDao.java 519B
TaskResult.java 513B
PerformanceService.java 509B
TaskPercentageRequest.java 509B
SearchTeamRequest.java 505B
LoginParamRequest.java 503B
UserUtil.java 501B
TargetMapper.java 490B
MarkService.java 419B
PerformanceMapper.java 401B
UppisApplication.java 400B
AssignTaskRequest.java 396B
AttendanceMapper.java 394B
MarkDetailMapper.java 388B
SettingMapper.java 387B
InputService.java 381B
PeriodMapper.java 378B
TaskMapper.java 360B
DeptMapper.java 360B
TeamResult.java 358B
AttendanceService.java 356B
MarkMapper.java 354B
AttendanceDao.java 347B
UserMapper.java 346B
UppisApplicationTests.java 338B
MarkDao.java 338B
TeamService.java 328B
TeamMapper.java 323B
UserIdRequest.java 309B
DeptDao.java 305B
TargetDao.java 299B
LoginDao.java 263B
TargetService.java 249B
SettingService.java 249B
UserService.java 203B
PeriodService.java 195B
共 339 条
- 1
- 2
- 3
- 4
资源评论
不走小道
- 粉丝: 3225
- 资源: 5113
上传资源 快速赚钱
- 我的内容管理 展开
- 我的资源 快来上传第一个资源
- 我的收益 登录查看自己的收益
- 我的积分 登录查看自己的积分
- 我的C币 登录后查看C币余额
- 我的收藏
- 我的下载
- 下载帮助
安全验证
文档复制为VIP权益,开通VIP直接复制
信息提交成功