mirror of https://gitee.com/y_project/RuoYi.git
集成Redis,并封装常用方法
parent
db8f960b0d
commit
b438c7c1ad
38
pom.xml
38
pom.xml
|
@ -1,6 +1,7 @@
|
||||||
<?xml version="1.0" encoding="UTF-8"?>
|
<?xml version="1.0" encoding="UTF-8"?>
|
||||||
<project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
|
<project xmlns="http://maven.apache.org/POM/4.0.0"
|
||||||
xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd">
|
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
|
||||||
|
xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd">
|
||||||
<modelVersion>4.0.0</modelVersion>
|
<modelVersion>4.0.0</modelVersion>
|
||||||
|
|
||||||
<groupId>com.ruoyi</groupId>
|
<groupId>com.ruoyi</groupId>
|
||||||
|
@ -44,14 +45,8 @@
|
||||||
<dependency>
|
<dependency>
|
||||||
<groupId>org.springframework.boot</groupId>
|
<groupId>org.springframework.boot</groupId>
|
||||||
<artifactId>spring-boot-starter</artifactId>
|
<artifactId>spring-boot-starter</artifactId>
|
||||||
<!--
|
<!-- <exclusions> <exclusion> <artifactId>spring-boot-starter-tomcat</artifactId>
|
||||||
<exclusions>
|
<groupId>org.springframework.boot</groupId> </exclusion> </exclusions> -->
|
||||||
<exclusion>
|
|
||||||
<artifactId>spring-boot-starter-tomcat</artifactId>
|
|
||||||
<groupId>org.springframework.boot</groupId>
|
|
||||||
</exclusion>
|
|
||||||
</exclusions>
|
|
||||||
-->
|
|
||||||
</dependency>
|
</dependency>
|
||||||
|
|
||||||
<!-- SpringBoot 测试 -->
|
<!-- SpringBoot 测试 -->
|
||||||
|
@ -114,10 +109,10 @@
|
||||||
|
|
||||||
<!--阿里数据库连接池 -->
|
<!--阿里数据库连接池 -->
|
||||||
<dependency>
|
<dependency>
|
||||||
<groupId>com.alibaba</groupId>
|
<groupId>com.alibaba</groupId>
|
||||||
<artifactId>druid-spring-boot-starter</artifactId>
|
<artifactId>druid-spring-boot-starter</artifactId>
|
||||||
<version>${druid.version}</version>
|
<version>${druid.version}</version>
|
||||||
</dependency>
|
</dependency>
|
||||||
|
|
||||||
<!--常用工具类 -->
|
<!--常用工具类 -->
|
||||||
<dependency>
|
<dependency>
|
||||||
|
@ -181,7 +176,7 @@
|
||||||
<version>${bitwalker.version}</version>
|
<version>${bitwalker.version}</version>
|
||||||
</dependency>
|
</dependency>
|
||||||
|
|
||||||
<!--Spring框架基本的核心工具-->
|
<!--Spring框架基本的核心工具 -->
|
||||||
<dependency>
|
<dependency>
|
||||||
<groupId>org.springframework</groupId>
|
<groupId>org.springframework</groupId>
|
||||||
<artifactId>spring-context-support</artifactId>
|
<artifactId>spring-context-support</artifactId>
|
||||||
|
@ -219,14 +214,14 @@
|
||||||
</exclusions>
|
</exclusions>
|
||||||
</dependency>
|
</dependency>
|
||||||
|
|
||||||
<!-- swagger2-->
|
<!-- swagger2 -->
|
||||||
<dependency>
|
<dependency>
|
||||||
<groupId>io.springfox</groupId>
|
<groupId>io.springfox</groupId>
|
||||||
<artifactId>springfox-swagger2</artifactId>
|
<artifactId>springfox-swagger2</artifactId>
|
||||||
<version>${swagger.version}</version>
|
<version>${swagger.version}</version>
|
||||||
</dependency>
|
</dependency>
|
||||||
|
|
||||||
<!-- swagger2-UI-->
|
<!-- swagger2-UI -->
|
||||||
<dependency>
|
<dependency>
|
||||||
<groupId>io.springfox</groupId>
|
<groupId>io.springfox</groupId>
|
||||||
<artifactId>springfox-swagger-ui</artifactId>
|
<artifactId>springfox-swagger-ui</artifactId>
|
||||||
|
@ -239,7 +234,7 @@
|
||||||
<artifactId>jsoup</artifactId>
|
<artifactId>jsoup</artifactId>
|
||||||
<version>${jsoup.version}</version>
|
<version>${jsoup.version}</version>
|
||||||
</dependency>
|
</dependency>
|
||||||
|
|
||||||
<!-- excel工具 -->
|
<!-- excel工具 -->
|
||||||
<dependency>
|
<dependency>
|
||||||
<groupId>org.apache.poi</groupId>
|
<groupId>org.apache.poi</groupId>
|
||||||
|
@ -247,6 +242,13 @@
|
||||||
<version>3.9</version>
|
<version>3.9</version>
|
||||||
</dependency>
|
</dependency>
|
||||||
|
|
||||||
|
<!-- spring整合redis -->
|
||||||
|
<dependency>
|
||||||
|
<groupId>org.springframework.boot</groupId>
|
||||||
|
<artifactId>spring-boot-starter-redis</artifactId>
|
||||||
|
<version>1.4.7.RELEASE</version>
|
||||||
|
</dependency>
|
||||||
|
|
||||||
</dependencies>
|
</dependencies>
|
||||||
|
|
||||||
<build>
|
<build>
|
||||||
|
|
|
@ -0,0 +1,41 @@
|
||||||
|
package com.ruoyi.project.tool.redis;
|
||||||
|
|
||||||
|
|
||||||
|
import org.springframework.cache.annotation.CachingConfigurerSupport;
|
||||||
|
import org.springframework.cache.annotation.EnableCaching;
|
||||||
|
import org.springframework.context.annotation.Bean;
|
||||||
|
import org.springframework.context.annotation.Configuration;
|
||||||
|
import org.springframework.data.redis.connection.RedisConnectionFactory;
|
||||||
|
import org.springframework.data.redis.core.RedisTemplate;
|
||||||
|
import org.springframework.data.redis.serializer.Jackson2JsonRedisSerializer;
|
||||||
|
import org.springframework.data.redis.serializer.StringRedisSerializer;
|
||||||
|
|
||||||
|
import com.fasterxml.jackson.databind.ObjectMapper;
|
||||||
|
/**
|
||||||
|
* Redis配置类
|
||||||
|
* @author wangchl
|
||||||
|
*
|
||||||
|
*/
|
||||||
|
@Configuration
|
||||||
|
@EnableCaching
|
||||||
|
public class RedisConfig extends CachingConfigurerSupport{
|
||||||
|
@Bean
|
||||||
|
public RedisTemplate<Object, Object> redisTemplate(RedisConnectionFactory connectionFactory) {
|
||||||
|
RedisTemplate<Object, Object> template = new RedisTemplate<>();
|
||||||
|
template.setConnectionFactory(connectionFactory);
|
||||||
|
|
||||||
|
//使用Jackson2JsonRedisSerializer来序列化和反序列化redis的value值
|
||||||
|
Jackson2JsonRedisSerializer serializer = new Jackson2JsonRedisSerializer(Object.class);
|
||||||
|
|
||||||
|
ObjectMapper mapper = new ObjectMapper();
|
||||||
|
mapper.enableDefaultTyping(ObjectMapper.DefaultTyping.NON_FINAL);
|
||||||
|
serializer.setObjectMapper(mapper);
|
||||||
|
|
||||||
|
template.setValueSerializer(serializer);
|
||||||
|
//使用StringRedisSerializer来序列化和反序列化redis的key值
|
||||||
|
template.setKeySerializer(new StringRedisSerializer());
|
||||||
|
template.afterPropertiesSet();
|
||||||
|
return template;
|
||||||
|
}
|
||||||
|
|
||||||
|
}
|
|
@ -0,0 +1,30 @@
|
||||||
|
package com.ruoyi.project.tool.redis;
|
||||||
|
|
||||||
|
import org.springframework.beans.factory.annotation.Autowired;
|
||||||
|
import org.springframework.stereotype.Controller;
|
||||||
|
import org.springframework.web.bind.annotation.GetMapping;
|
||||||
|
import org.springframework.web.bind.annotation.RequestMapping;
|
||||||
|
|
||||||
|
|
||||||
|
/**
|
||||||
|
* 测试类
|
||||||
|
* @author Administrator
|
||||||
|
*
|
||||||
|
*/
|
||||||
|
@Controller
|
||||||
|
@RequestMapping(value="/redis")
|
||||||
|
public class RedisTestController {
|
||||||
|
|
||||||
|
@Autowired
|
||||||
|
private RedisUtils redisUtils;
|
||||||
|
|
||||||
|
@GetMapping("/test")
|
||||||
|
public void findUser() {
|
||||||
|
Integer id = 123456;
|
||||||
|
|
||||||
|
redisUtils.set("121233", id);
|
||||||
|
System.out.println(redisUtils.get("121233"));
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
|
}
|
|
@ -0,0 +1,194 @@
|
||||||
|
package com.ruoyi.project.tool.redis;
|
||||||
|
|
||||||
|
import java.io.Serializable;
|
||||||
|
import java.util.List;
|
||||||
|
import java.util.Set;
|
||||||
|
import java.util.concurrent.TimeUnit;
|
||||||
|
|
||||||
|
import org.springframework.beans.factory.annotation.Autowired;
|
||||||
|
import org.springframework.data.redis.core.HashOperations;
|
||||||
|
import org.springframework.data.redis.core.ListOperations;
|
||||||
|
import org.springframework.data.redis.core.RedisTemplate;
|
||||||
|
import org.springframework.data.redis.core.SetOperations;
|
||||||
|
import org.springframework.data.redis.core.ValueOperations;
|
||||||
|
import org.springframework.data.redis.core.ZSetOperations;
|
||||||
|
import org.springframework.stereotype.Service;
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Redis工具类
|
||||||
|
* @author wangchl
|
||||||
|
*
|
||||||
|
*/
|
||||||
|
@Service
|
||||||
|
public class RedisUtils {
|
||||||
|
@Autowired
|
||||||
|
private RedisTemplate redisTemplate;
|
||||||
|
/**
|
||||||
|
* 写入缓存
|
||||||
|
* @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;
|
||||||
|
}
|
||||||
|
/**
|
||||||
|
* 写入缓存设置时效时间
|
||||||
|
* @param key
|
||||||
|
* @param value
|
||||||
|
* @return
|
||||||
|
*/
|
||||||
|
public boolean set(final String key, Object value, Long expireTime) {
|
||||||
|
boolean result = false;
|
||||||
|
try {
|
||||||
|
ValueOperations<Serializable, Object> operations = redisTemplate.opsForValue();
|
||||||
|
operations.set(key, value);
|
||||||
|
redisTemplate.expire(key, expireTime, 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;
|
||||||
|
}
|
||||||
|
/**
|
||||||
|
* 哈希 添加
|
||||||
|
* @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);
|
||||||
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* 哈希获取数据
|
||||||
|
* @param key
|
||||||
|
* @param hashKey
|
||||||
|
* @return
|
||||||
|
*/
|
||||||
|
public Object hmGet(String key, Object hashKey){
|
||||||
|
HashOperations<String, Object, Object> hash = redisTemplate.opsForHash();
|
||||||
|
return hash.get(key,hashKey);
|
||||||
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* 列表添加
|
||||||
|
* @param k
|
||||||
|
* @param v
|
||||||
|
*/
|
||||||
|
public void lPush(String k,Object v){
|
||||||
|
ListOperations<String, Object> list = redisTemplate.opsForList();
|
||||||
|
list.rightPush(k,v);
|
||||||
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* 列表获取
|
||||||
|
* @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);
|
||||||
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* 集合添加
|
||||||
|
* @param key
|
||||||
|
* @param value
|
||||||
|
*/
|
||||||
|
public void add(String key,Object value){
|
||||||
|
SetOperations<String, Object> set = redisTemplate.opsForSet();
|
||||||
|
set.add(key,value);
|
||||||
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* 集合获取
|
||||||
|
* @param key
|
||||||
|
* @return
|
||||||
|
*/
|
||||||
|
public Set<Object> setMembers(String key){
|
||||||
|
SetOperations<String, Object> set = redisTemplate.opsForSet();
|
||||||
|
return set.members(key);
|
||||||
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* 有序集合添加
|
||||||
|
* @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);
|
||||||
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* 有序集合获取
|
||||||
|
* @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);
|
||||||
|
}
|
||||||
|
}
|
|
@ -100,4 +100,13 @@ gen:
|
||||||
# 自动去除表前缀,默认是true
|
# 自动去除表前缀,默认是true
|
||||||
autoRemovePre: true
|
autoRemovePre: true
|
||||||
# 表前缀(类名不会包含表前缀)
|
# 表前缀(类名不会包含表前缀)
|
||||||
tablePrefix: sys_
|
tablePrefix: sys_
|
||||||
|
redis:
|
||||||
|
host: 127.0.0.1
|
||||||
|
port: 6379
|
||||||
|
timeout: 20000
|
||||||
|
pool:
|
||||||
|
max-active: 8
|
||||||
|
min-idle: 0
|
||||||
|
max-idle: 8
|
||||||
|
max-wait: -1
|
Loading…
Reference in New Issue