Windows:
下载地址:Redis
Redis 支持 32 位和 64 位。这个需要根据你系统平台的实际情况选择,这里我们下载Redis-x64-xxx.zip压缩包到 C 盘,解压后,将文件夹重新命名为 Redis。
1.pom.xml
<!-- Redis -->
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-data-redis</artifactId>
</dependency>
<dependency>
<groupId>org.apache.commons</groupId>
<artifactId>commons-pool2</artifactId>
</dependency>
2.application
# Redis Setting
# 服务器IP
spring.redis.host=192.168.0.134
# 端口号
spring.redis.port=6379
# 数据库索引,默认为0
spring.redis.database=0
# 连接密码,默认为空
spring.redis.password=
# Redis连接池配置
# 连接池最大连接数,使用负值表示没有限制
spring.redis.lettuce.pool.max-active=8
# 连接池最大阻塞等待时间,使用负值表示没有限制
spring.redis.lettuce.pool.max-wait=-1ms
# 连接池中的最大空闲连接
spring.redis.lettuce.pool.max-idle=8
# 连接池中的最小空闲连接
spring.redis.lettuce.pool.min-idle=0
# 空闲链接检测线程检测周期;如果为负值,表示不运行检测线程;单位毫秒,默认为-1
spring.redis.lettuce.pool.time-between-eviction-runs=60000
# 关闭超时时间
spring.redis.lettuce.shutdown-timeout=3000ms
3.RedisUtil
package com.hzhl.client.view.utils;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.data.redis.core.StringRedisTemplate;
import org.springframework.stereotype.Component;
import java.util.Set;
import java.util.concurrent.TimeUnit;
/**
* Redis工具类
*
* @author 花学长
*/
@Component
public class RedisUtil {
@Autowired
private StringRedisTemplate redisTemplate;
// 天:DAYS 小时:HOURS 分:MINUTES 秒:SECONDS 毫秒:MILLISECONDS
/**
* 实现命令:TTL key,以秒为单位,返回给定 key的剩余生存时间(TTL, time to live)。
*
* @param key
* @return
*/
public long ttl(String key) {
return redisTemplate.getExpire(key);
}
/**
* 实现命令:expire 设置过期时间,单位:分
*
* @param key
* @param timeout
* @return
*/
public void expire(String key, long timeout) {
redisTemplate.expire(key, timeout, TimeUnit.MINUTES);
}
/**
* 实现命令:INCR key,增加key一次
*
* @param key
* @return
*/
public long incr(String key, long delta) {
return redisTemplate.opsForValue().increment(key, delta);
}
/**
* 实现命令:KEYS pattern,查找所有符合给定模式 pattern的 key
*/
public Set<String> keys(String pattern) {
return redisTemplate.keys(pattern);
}
/**
* 实现命令:ins key, key设置内容
*
* @param key
* @param value
*/
public void ins(String key, String value) {
redisTemplate.opsForValue().set(key,value);
}
/**
* 实现命令:inst key, key设置时间:分和内容
*
* @param key
* @param value
* @param time
* @return
*/
public void inst(String key, String value ,long time) {
redisTemplate.opsForValue().set(key,value,time,TimeUnit.MINUTES);
}
/**
* 实现命令:DEL key,删除一个key
*
* @param key
*/
public Boolean del(String key) {
return redisTemplate.delete(key);
}
/**
* 实现命令:UPD key, 更新内容
*
* @param key
* @param value
* @return
*/
public String upd(String key, String value) {
return redisTemplate.opsForValue().getAndSet(key, value);
}
/**
* 实现命令:GET key,返回 key所关联的字符串值。
*
* @param key
*/
public String get(String key) {
return redisTemplate.opsForValue().get(key);
}
}
4.TestController
@Autowired
private StringRedisTemplate stringRedisTemplate;
@Autowired
private RedisUtil redisUtil;
@RequestMapping("/redis")
public String redis() {
// 保存字符串
stringRedisTemplate.opsForValue().set("aaa", "111");
String string = stringRedisTemplate.opsForValue().get("aaa");
System.out.println(string);
redisUtil.insert("aaa", "111");
System.out.println(redisUtil.select("aaa"));
return "Redis";
}