package com.gym.utils;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.core.annotation.Order;
import org.springframework.data.redis.core.RedisTemplate;
import org.springframework.stereotype.Component;
import org.springframework.util.CollectionUtils;
import java.util.List;
import java.util.Map;
import java.util.Set;
import java.util.concurrent.TimeUnit;
@Component
@Order(-1)
public final class RedisUtil {
@Autowired
private RedisTemplate redisTemplate;
/**
* 指定缓存失效时间
*
* @param key 键
* @param time 时间(秒)
* @return 0
*/
public boolean expire(String key, long time) {
try {
if (time > 0) {
redisTemplate.expire(key, time, TimeUnit.SECONDS);
}
return true;
} catch (Exception e) {
e.printStackTrace();
return false;
}
}
/**
* 根据key 获取过期时间
*
* @param key 键 不能为null
* @return 时间(秒) 返回0代表为永久有效
*/
public long getExpire(String key) {
return redisTemplate.getExpire(key, TimeUnit.SECONDS);
}
/**
* 判断key是否存在
*
* @param key 键
* @return true 存在 false不存在
*/
public boolean hasKey(String key) {
try {
return redisTemplate.hasKey(key);
} catch (Exception e) {
e.printStackTrace();
return false;
}
}
/**
* 删除缓存
*
* @param key 可以传一个值 或多个
*/
@SuppressWarnings("unchecked")
public void del(String... key) {
if (key != null && key.length > 0) {
if (key.length == 1) {
redisTemplate.delete(key[0]);
} else {
redisTemplate.delete(CollectionUtils.arrayToList(key));
}
}
}
// ============================String=============================
/**
* 普通缓存获取
*
* @param key 键
* @return 值
*/
public Object get(String key) {
return key == null ? null : redisTemplate.opsForValue().get(key);
}
/**
* 普通缓存放入
*
* @param key 键
* @param value 值
* @return true成功 false失败
*/
public boolean set(String key, Object value) {
try {
redisTemplate.opsForValue().set(key, value);
return true;
} catch (Exception e) {
e.printStackTrace();
return false;
}
}
/**
* 普通缓存放入并设置时间
*
* @param key 键
* @param value 值
* @param time 时间(秒) time要大于0 如果time小于等于0 将设置无限期
* @return true成功 false 失败
*/
public boolean set(String key, Object value, long time) {
try {
if (time > 0) {
redisTemplate.opsForValue().set(key, value, time, TimeUnit.SECONDS);
} else {
set(key, value);
}
return true;
} catch (Exception e) {
e.printStackTrace();
return false;
}
}
/**
* 递增
*
* @param key 键
* @param delta 要增加几(大于0)
* @return
*/
public long incr(String key, long delta) {
if (delta < 0) {
throw new RuntimeException("递增因子必须大于0");
}
return redisTemplate.opsForValue().increment(key, delta);
}
/**
* 递减
*
* @param key 键
* @param delta 要减少几(小于0)
* @return
*/
public long decr(String key, long delta) {
if (delta < 0) {
throw new RuntimeException("递减因子必须大于0");
}
return redisTemplate.opsForValue().increment(key, -delta);
}
// ================================Map=================================
/**
* HashGet
*
* @param key 键 不能为null
* @param item 项 不能为null
* @return 值
*/
public Object hget(String key, String item) {
return redisTemplate.opsForHash().get(key, item);
}
/**
* 获取hashKey对应的所有键值
*
* @param key 键
* @return 对应的多个键值
*/
public Map<Object, Object> hmget(String key) {
return redisTemplate.opsForHash().entries(key);
}
/**
* HashSet
*
* @param key 键
* @param map 对应多个键值
* @return true 成功 false 失败
*/
public boolean hmset(String key, Map<String, Object> map) {
try {
redisTemplate.opsForHash().putAll(key, map);
return true;
} catch (Exception e) {
e.printStackTrace();
return false;
}
}
/**
* HashSet 并设置时间
*
* @param key 键
* @param map 对应多个键值
* @param time 时间(秒)
* @return true成功 false失败
*/
public boolean hmset(String key, Map<String, Object> map, long time) {
try {
redisTemplate.opsForHash().putAll(key, map);
if (time > 0) {
expire(key, time);
}
return true;
} catch (Exception e) {
e.printStackTrace();
return false;
}
}
/**
* 向一张hash表中放入数据,如果不存在将创建
*
* @param key 键
* @param item 项
* @param value 值
* @return true 成功 false失败
*/
public boolean hset(String key, String item, Object value) {
try {
redisTemplate.opsForHash().put(key, item, value);
return true;
} catch (Exception e) {
e.printStackTrace();
return false;
}
}
/**
* 向一张hash表中放入数据,如果不存在将创建
* 0
*
* @param key 键
* @param item 项
* @param value 值
* @param time 时间(秒) 注意:如果已存在的hash表有时间,这里将会替换原有的时间
* @return true 成功 false失败
*/
public boolean hset(String key, String item, Object value, long time) {
try {
redisTemplate.opsForHash().put(key, item, value);
if (time > 0) {
expire(key, time);
}
return true;
} catch (Exception e) {
e.printStackTrace();
return false;
}
}
/**
* 删除hash表中的值
*
* @param key 键 不能为null
* @param item 项 可以使多个 不能为null
*/
public void hdel(String key, Object... item) {
redisTemplate.opsForHash().delete(key, item);
}
/**
* 判断hash表中是否有该项的值
*
* @param key 键 不能为null
* @param item 项 不能为null
* @return true 存在 false不存在
*/
public boolean hHasKey(String key, String item) {
return redisTemplate.opsForHash().hasKey(key, item);
}
/**
* hash递增 如果不存在,就会创建一个 并把新增后的值返回
*
* @param key 键
* @param item 项
* @param by 要增加几(大于0)
* @return
*/
public double hincr(String key, String item, double by) {
return redisTemplate.opsForHash().increment(key, item, by);
}
/**
* hash递减
*
* @param key 键
* @param item 项
* @param by 要减少记(小于0)
* @return
*/
public double hdecr(String key, String item, double by) {
return redisTemplate.opsForHash().increment(key, item, -by);
}
// ============================set=============================
/**
* 根据key获取Set中的所有值
*
* @param key 键
* @return
*/
public Set<Object> sGet(String key) {
try {
没有合适的资源?快使用搜索试试~ 我知道了~
基于Java和Vue的健身服务系统设计源码仓库
共306个文件
java:169个
vue:38个
js:26个
1.该资源内容由用户上传,如若侵权请联系客服进行举报
2.虚拟产品一经售出概不退款(资源遇到问题,请及时私信上传者)
2.虚拟产品一经售出概不退款(资源遇到问题,请及时私信上传者)
版权申诉
0 下载量 69 浏览量
2024-10-04
13:55:18
上传
评论
收藏 8.66MB ZIP 举报
温馨提示
该项目为基于Java和Vue构建的全方位健身服务系统,源码仓库共包含306个文件,涵盖169个Java源代码文件、38个Vue组件文件、26个JavaScript文件、23个PNG图片文件、22个XML配置文件、7个JSON数据文件、4个Git忽略配置文件、2个YAML配置文件、2个HTML文件以及2个JPG图片文件。该系统采用模块化设计,旨在为用户提供便捷的健身服务体验,支持版本控制和代码管理。
资源推荐
资源详情
资源评论
收起资源包目录
基于Java和Vue的健身服务系统设计源码仓库 (306个子文件)
mvnw.cmd 7KB
base.css 2KB
main.css 492B
.env.development 215B
.gitignore 395B
.gitignore 395B
.gitignore 317B
.gitignore 244B
index.html 611B
index.html 455B
favicon.ico 4KB
maven-wrapper.jar 61KB
RedisUtil.java 14KB
RabbitConfig.java 9KB
GymSpringbootApplicationTests.java 8KB
Course.java 6KB
UserServiceImpl.java 6KB
User.java 6KB
SecurityConfig.java 5KB
Staff.java 5KB
UserController.java 5KB
Menu.java 5KB
Card.java 4KB
JwtAuthenticationFilter.java 4KB
Gym.java 4KB
CourseController.java 4KB
EquipmentController.java 4KB
Equipment.java 3KB
UserController.java 3KB
CardController.java 3KB
StaffController.java 3KB
CourseController.java 3KB
Remark.java 3KB
Role.java 3KB
Perm.java 3KB
JwtUtil.java 3KB
UserCourses.java 3KB
Trainer.java 3KB
CardPrice.java 3KB
CaptchaController.java 2KB
CourseServiceImpl.java 2KB
UserRole.java 2KB
RolePerm.java 2KB
RoleMenu.java 2KB
UserDetailsServiceImpl.java 2KB
EquipmentServiceImpl.java 2KB
StaffServiceImpl.java 2KB
DirectRabbitConfig.java 2KB
CardServiceImpl.java 2KB
CardController.java 2KB
CaptchaConfig.java 2KB
UserServiceImpl.java 2KB
MenuServiceImpl.java 2KB
LogUser.java 2KB
CourseServiceImpl.java 2KB
RedisConfig.java 2KB
Interceptor.java 2KB
TokenUtil.java 2KB
DirectConsumer2.java 1KB
TrainerController.java 1KB
CorsConfig.java 1KB
GymServiceImpl.java 1KB
CourseData.java 1KB
WebMvcConfig.java 1KB
ResultEnum.java 1KB
TrainerServiceImpl.java 1KB
CardData.java 1KB
FastJson2JsonRedisSerializer.java 1KB
EasyExcelConverter.java 1KB
Result.java 1KB
UserData.java 1KB
CourseDTO.java 1KB
StaffDTO.java 1KB
DirectConsumer.java 1KB
EasyExcelUtil.java 1KB
Course.java 1KB
StaffData.java 1KB
GymController.java 1KB
CardDTO.java 1KB
MenuVO.java 1KB
IntegerToEnumConverterFactory.java 1019B
StringToEnumConverterFactory.java 971B
AccessDeniedHandlerImpl.java 952B
CourseTypeEnum.java 920B
AuthenticationEntryPointImpl.java 918B
UserDTO.java 848B
RegexUtil.java 834B
MenuController.java 824B
EquipmentData.java 823B
CardDto.java 814B
StringToEnumConverter.java 797B
IntegerToEnumConverter.java 793B
UserService.java 785B
CourseService.java 779B
DruidDataSourceConfig.java 768B
SecurityRolesHandler.java 766B
CourseService.java 739B
UserVO.java 735B
CardTask.java 719B
CourseMapper.java 715B
共 306 条
- 1
- 2
- 3
- 4
资源评论
csbysj2020
- 粉丝: 2503
- 资源: 5461
上传资源 快速赚钱
- 我的内容管理 展开
- 我的资源 快来上传第一个资源
- 我的收益 登录查看自己的收益
- 我的积分 登录查看自己的积分
- 我的C币 登录后查看C币余额
- 我的收藏
- 我的下载
- 下载帮助
最新资源
- 气动与电动对比.pdf
- 统信UOS ARM架构 离线安装 Qt5.11.3
- STM32获取SHT3X温湿度芯片数据完整驱动代码
- Java两级缓存框架,可以让应用支持两级缓存框架ehcache+ redis 避免完全使用独立缓存系统所带来的网络IO开销问题
- 实验1.1.2-1.1.6.docx
- Kubeadm安装K8S单master节点测试环境集群
- NewLife.Redis 是一个Redis客户端组件,高性能Redis协议封装,支持.Net Core
- android-28/android.jar Failed to transform file 'android.jar' to
- YoloDotNet v2.1 是一个基于 C# 和 .NET 8 的实时物体检测框架,专为图像和视频中的物体检测而设计
- 使用微信云开发,实现链接激活微信小程序(微信内部和外部H5访问)
资源上传下载、课程学习等过程中有任何疑问或建议,欢迎提出宝贵意见哦~我们会及时处理!
点击此处反馈
安全验证
文档复制为VIP权益,开通VIP直接复制
信息提交成功