package com.cgr.lesson.service;
import com.cgr.lesson.exception.BusinessException;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.data.redis.core.RedisTemplate;
import org.springframework.stereotype.Service;
import java.util.*;
import java.util.concurrent.TimeUnit;
/**
* @ Author :cgr
* @ Date :Created in 12:11 2020-04-30
* @ Description:redisTemplate 工具类
* @ Modified By:
*/
@Service
public class RedisService {
@Autowired
private RedisTemplate<String, Object> redisTemplate;
/** -------------------key相关操作--------------------- */
/**
* 是否存在key
*
* @param key
* @return java.lang.Boolean
* @throws
* @Author:
* @UpdateUser:
* @Version: 0.0.1
*/
public Boolean hasKey(String key) {
if (null == key) {
return false;
}
return redisTemplate.hasKey(key);
}
/**
* 删除key
*
* @param key
* @return Boolean 成功返回true 失败返回false
* @throws
* @Author:
* @UpdateUser:
* @Version: 0.0.1
*/
public Boolean delete(String key) {
if (null == key) {
return false;
}
return redisTemplate.delete(key);
}
/**
* 批量删除key
*
* @param keys
* @return Long 返回成功删除key的数量
* @throws
* @Author:
* @CreateDate: 2019/8/27 20:27
* @UpdateUser:
* @UpdateDate: 2019/8/27 20:27
* @Version: 0.0.1
*/
public Long delete(Collection<String> keys) {
return redisTemplate.delete(keys);
}
/**
* 设置过期时间
*
* @param key
* @param timeout
* @param unit
* @return java.lang.Boolean
* @throws
* @Author:
* @UpdateUser:
* @Version: 0.0.1
*/
public Boolean expire(String key, long timeout, TimeUnit unit) {
if (null == key || null == unit) {
return false;
}
return redisTemplate.expire(key, timeout, unit);
}
/**
* 查找匹配的key
*
* @param pattern
* @return java.util.Set<java.lang.String>
* @throws
* @Author:
* @UpdateUser:
* @Version: 0.0.1
*/
public Set<String> keys(String pattern) {
if (null == pattern) {
return null;
}
return redisTemplate.keys(pattern);
}
/**
* 移除 key 的过期时间,key 将持久保持
*
* @param key
* @return java.lang.Boolean
* @throws
* @Author:
* @UpdateUser:
* @Version: 0.0.1
*/
public Boolean persist(String key) {
if (null == key) {
return false;
}
return redisTemplate.persist(key);
}
/**
* 返回 key 的剩余的过期时间
*
* @param key
* @param unit
* @return java.lang.Long 当 key 不存在时,返回 -2 。当 key 存在但没有设置剩余生存时间时,返回 -1 。否则,以秒为单位,返回 key的剩余生存时间
* @throws
* @Author:
* @UpdateUser:
* @Version: 0.0.1
*/
public Long getExpire(String key, TimeUnit unit) {
if (null == key || null == unit) {
throw new BusinessException(4001004, "key or TomeUnit 不能为空");
}
return redisTemplate.getExpire(key, unit);
}
//*************String相关数据类型***************************
/**
* 设置指定 key 的值
*
* @param key
* @param value
* @return void
* @throws
* @Author:
* @UpdateUser:
* @Version: 0.0.1
*/
public void set(String key, Object value) {
if (null == key || null == value) {
return;
}
redisTemplate.opsForValue().set(key, value);
}
/**
* 设置key 的值 并设置过期时间
*
* @param key
* @param value
* @param time
* @param unit
* @return void
* @throws
* @Author:
* @UpdateUser:
* @Version: 0.0.1
*/
public void set(String key, Object value, long time, TimeUnit unit) {
if (null == key || null == value || null == unit) {
return;
}
redisTemplate.opsForValue().set(key, value, time, unit);
}
/**
* 设置key 的值 并设置过期时间
* key存在 不做操作返回false
* key不存在设置值返回true
*
* @param key
* @param value
* @param time
* @param unit
* @return java.lang.Boolean
* @throws
* @Author:
* @UpdateUser:
* @Version: 0.0.1
*/
public Boolean setifAbsen(String key, Object value, long time, TimeUnit unit) {
if (null == key || null == value || null == unit) {
throw new BusinessException(4001004, "kkey、value、unit都不能为空");
}
return redisTemplate.opsForValue().setIfAbsent(key, value, time, unit);
}
/**
* 获取指定Key的Value。如果与该Key关联的Value不是string类型,Redis将抛出异常,
* 因为GET命令只能用于获取string Value,如果该Key不存在,返回null
*
* @param key
* @return java.lang.Object
* @throws
* @Author:
* @UpdateUser:
* @Version: 0.0.1
*/
public Object get(String key) {
if (null == key) {
return null;
}
return redisTemplate.opsForValue().get(key);
}
/**
* 很明显先get再set就说先获取key值对应的value然后再set 新的value 值。
*
* @param key
* @param value
* @return java.lang.Object
* @throws
* @Author:
* @UpdateUser:
* @Version: 0.0.1
*/
public Object getSet(String key, Object value) {
if (null == key) {
return null;
}
return redisTemplate.opsForValue().getAndSet(key, value);
}
/**
* 通过批量的key获取批量的value
*
* @param keys
* @return java.util.List<java.lang.Object>
* @throws
* @Author:
* @UpdateUser:
* @Version: 0.0.1
*/
public List<Object> mget(Collection<String> keys) {
if (null == keys) {
return Collections.emptyList();
}
return redisTemplate.opsForValue().multiGet(keys);
}
/**
* 将指定Key的Value原子性的增加increment。如果该Key不存在,其初始值为0,在incrby之后其值为increment。
* 如果Value的值不能转换为整型值,如Hi,该操作将执行失败并抛出相应异常。操作成功则返回增加后的value值。
*
* @param key
* @param increment
* @return long
* @throws
* @Author:
* @UpdateUser:
* @Version: 0.0.1
*/
public long incrby(String key, long increment) {
if (null == key) {
throw new BusinessException(4001004, "key不能为空");
}
return redisTemplate.opsForValue().increment(key, increment);
}
/**
* 将指定Key的Value原子性的减少decrement。如果该Key不存在,其初始值为0,
* 在decrby之后其值为-decrement。如果Value的值不能转换为整型值,
* 如Hi,该操作将执行失败并抛出相应的异常。操作成功则返回减少后的value值。
*
* @param key
* @param decrement
* @return java.lang.Long
* @throws
* @Author:
* @UpdateUser:
* @Version: 0.0.1
*/
public Long decrby(String key, long decrement) {
if (null == key) {
throw new BusinessException(4001004, "key不能为空");
}
return redisTemplate.opsForValue().decrement(key, decrement);
}
/**
* 如果该Key已经存在,APPEND命令将参数Value的数据追加到已存在Value的末尾。如果该Key不存在,
* APPEND命令将会创建一个新的Key/Value。返回追加后Value的字符串长度。
*
没有合适的资源?快使用搜索试试~ 我知道了~
温馨提示
基于Java开发的智能养老院管理系统源码(期末课程大作业).zip 基于Java开发的智能养老院管理系统源码(期末课程大作业).zip 基于Java开发的智能养老院管理系统源码(期末课程大作业).zip 基于Java开发的智能养老院管理系统源码(期末课程大作业).zip基于Java开发的智能养老院管理系统源码(期末课程大作业).zip基于Java开发的智能养老院管理系统源码(期末课程大作业).zip 【备注】 主要针对计算机相关专业的正在做毕设的学生和需要项目实战的Java、JavaScript、小程序开发学习者。 也可作为课程设计、期末大作业。包含:项目源码、项目说明等,该项目可以直接作为毕设、课程设计使用。 也可以用来学习参考借鉴!
资源推荐
资源详情
资源评论
收起资源包目录
基于Java开发的智能养老院管理系统源码(期末课程大作业).zip (257个子文件)
mvnw.cmd 6KB
.gitignore 333B
wisdomfor-aged.log.2020-05-23.0.gz 213KB
wisdomfor-aged.log.2020-06-15.0.gz 89KB
wisdomfor-aged.log.2020-05-24.0.gz 85KB
wisdomfor-aged.log.2020-05-29.0.gz 85KB
wisdomfor-aged.log.2020-05-30.0.gz 77KB
wisdomfor-aged.log.2020-06-02.0.gz 68KB
wisdomfor-aged.log.2020-06-20.0.gz 65KB
wisdomfor-aged.log.2020-05-26.0.gz 63KB
wisdomfor-aged.log.2020-05-25.0.gz 63KB
wisdomfor-aged.log.2020-05-19.0.gz 58KB
wisdomfor-aged.log.2020-06-10.0.gz 57KB
wisdomfor-aged.log.2020-05-17.0.gz 45KB
wisdomfor-aged.log.2020-05-12.0.gz 43KB
wisdomfor-aged.log.2020-05-14.0.gz 38KB
wisdomfor-aged.log.2020-06-09.0.gz 37KB
wisdomfor-aged.log.2020-05-28.0.gz 15KB
wisdomfor-aged.log.2020-06-19.0.gz 12KB
wisdomfor-aged.log.2020-06-01.0.gz 11KB
wisdomfor-aged.log.2020-05-22.0.gz 10KB
wisdomfor-aged.log.2020-06-08.0.gz 9KB
wisdomfor-aged.log.2020-06-05.0.gz 7KB
wisdomfor-aged.log.2020-05-27.0.gz 6KB
wisdomfor-aged.log.2020-05-11.0.gz 3KB
wisdomfor-aged.log.2020-05-13.0.gz 1KB
maven-wrapper.jar 50KB
RedisService.java 31KB
PermissionServiceImpl.java 14KB
UserServiceImpl.java 13KB
RoleServiceImpl.java 8KB
JwtTokenUtil.java 8KB
DeptServiceImpl.java 8KB
UserController.java 7KB
RedisCache.java 6KB
ShiroConfig.java 5KB
MavenWrapperDownloader.java 5KB
CareSettingDetail.java 4KB
DataResult.java 4KB
SysLogAspect.java 4KB
CareSettingServiceImpl.java 4KB
PeoplePackage.java 4KB
PermissionController.java 4KB
PeopleBaseInfoController.java 4KB
CustomRealm.java 4KB
PeopleBaseInfoServiceImpl.java 3KB
FoodDishesServiceImpl.java 3KB
CustomHashedCredentialsMatcher.java 3KB
CustomAccessControlerFilter.java 3KB
PeoplePackageServiceImpl.java 3KB
BaseResponseCode.java 3KB
RolePermissionServiceImpl.java 3KB
FoodDishesController.java 3KB
CareSettingController.java 3KB
PeoplePackageController.java 3KB
SwaggerConfig.java 3KB
RoleController.java 3KB
PeoplePastHistoryController.java 3KB
SysLog.java 3KB
DeptController.java 3KB
PeopleAssessThreeServiceImpl.java 3KB
PeopleAssessController.java 3KB
PeopleLivingController.java 3KB
RestExceptionHandler.java 3KB
PeoplePastHistoryServiceImpl.java 2KB
FoodRecipes.java 2KB
PasswordEncoder.java 2KB
PeopleLivingServiceImpl.java 2KB
PeopleBaseInfoUpdateReqVO.java 2KB
PeopleAssessFirstServiceImpl.java 2KB
HomeServiceImpl.java 2KB
UserRoleServiceImpl.java 2KB
PeopleAssessServiceImpl.java 2KB
PeopleBaseInfoReqVO.java 2KB
PeopleAssessFourServiceImpl.java 2KB
FoodDishesRespVO.java 2KB
PeopleAssessSecondServiceImpl.java 2KB
Constant.java 2KB
PeopleAssessFirstAddReqVO.java 2KB
UserService.java 2KB
PeopleAssessFirstController.java 2KB
PeopleAssessThreeController.java 2KB
PeopleAssessSecondController.java 2KB
FoodRecipesServiceImpl.java 2KB
PeopleAssessFourController.java 2KB
PeopleInfoRespVO.java 2KB
PeopleAssessFiveController.java 2KB
DictController.java 2KB
IPUtils.java 2KB
PeoplePastHistoryAddReqVO.java 2KB
CodeUtil.java 2KB
DictServiceImpl.java 2KB
FoodRecipesController.java 2KB
LogController.java 2KB
PeoplePastHistoryUpdateReqVO.java 1KB
SysUserRole.java 1KB
TestController.java 1KB
PermissionAddReqVO.java 1KB
HomeController.java 1KB
PeopleAssessFiveServiceImpl.java 1KB
共 257 条
- 1
- 2
- 3
资源评论
Make程序设计
- 粉丝: 5747
- 资源: 3570
上传资源 快速赚钱
- 我的内容管理 展开
- 我的资源 快来上传第一个资源
- 我的收益 登录查看自己的收益
- 我的积分 登录查看自己的积分
- 我的C币 登录后查看C币余额
- 我的收藏
- 我的下载
- 下载帮助
安全验证
文档复制为VIP权益,开通VIP直接复制
信息提交成功