SpringBoot整合Redis
个人总结,有不对的地方还请大佬指出批评,只限于windows使用。(附上我的用处,由于之前没有接触过Redis,最近用Redis来存储登录信息,进行权限认证。)
下载安装Redis
Redis下载地址:https://github.com/MicrosoftArchive/redis/tags
百度网盘提取:https://pan.baidu.com/s/1X9XX8aGnxrTyxztoWOx_Sw
提取码:an0h
Redis安装步骤
没有特殊要求的,点击下一步,有复选框的选中一路next就安装成功了!
引入pom依赖
<dependency>
<groupId>org.springframework.data</groupId>
<artifactId>spring-data-redis</artifactId>
<version>2.1.4.RELEASE</version>
</dependency>
配置文件中
#redis配置
#Linux主机地址
spring.redis.host=127.0.0.1
#端口
spring.redis.port=6379
#超时时间,ms
spring.redis.timeout=36000
#使用的数据库索引
spring.redis.database=0
#连接池的最大连接数
spring.redis.jedis.pool.max-active=10
#链接的最大等待时间ms
spring.redis.jedis.pool.max-wait=3000
#连接池中的最大的等待数量
spring.redis.jedis.pool.max-idle=10
创建TokenModel实体类
package com.zjhs.hstx.utils.tokenAuth;
import com.zjhs.hstx.biz.admin.bean.TAdmin;
public class TokenModel {
private TAdmin admin;
private String token;
public TokenModel(String token,TAdmin admin) {
this.admin = admin;
this.token = token;
}
public Object getUserId() {
return admin;
}
public void setAdmin(TAdmin admin) {
this.admin = admin;
}
public String getToken() {
return token;
}
public void setToken(String token) {
this.token = token;
}
@Override
public String toString() {
return "TokenModel [userId=" + admin + ", token=" + token + "]";
}
}
创建TokenHelper接口
package com.zjhs.hstx.utils.tokenAuth;
import com.zjhs.hstx.biz.admin.bean.TAdmin;
public interface TokenHelper {
/**
* 根据用户信息生成token
* @param admin
* @return
*/
TokenModel create(TAdmin admin);
}
创建RedisTokenHelp
package com.zjhs.hstx.utils.tokenAuth;
import java.util.UUID;
import com.google.gson.Gson;
import com.zjhs.hstx.biz.admin.bean.TAdmin;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Component;
@Component
public class RedisTokenHelp implements TokenHelper {
@Autowired
private RedisClient redisClient;
@Override
public TokenModel create(TAdmin admin) {
String token = UUID.randomUUID().toString().replace("-", "");
TokenModel mode = new TokenModel(token,admin);
String value = new Gson().toJson(admin);
redisClient.set(token, admin == null ? null : value, RedisClient.TOKEN_EXPIRES_SECOND);
return mode;
}
}
创建RedisClient类
package com.zjhs.hstx.utils.tokenAuth;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.data.redis.core.StringRedisTemplate;
import org.springframework.stereotype.Component;
import java.util.concurrent.TimeUnit;
@Component
public class RedisClient {
public static final long TOKEN_EXPIRES_SECOND = 1800;
private StringRedisTemplate redisTpl;
@Autowired
public RedisClient(StringRedisTemplate redisTpl) {
this.redisTpl = redisTpl;
}
/**
* 向redis中设值
* @param key 使用 a:b:id的形式在使用rdm进行查看redis情况时会看到分层文件夹的展示形式,便于管理
* @param value
* @return
*/
public boolean set(String key, String value) {
boolean result = false;
try {
redisTpl.opsForValue().set(key, value);
result = true;
} catch (Exception e) {
e.printStackTrace();
}
return result;
}
/**
* 向redis中设置,同时设置过期时间
* @param key
* @param value
* @param time
* @return
*/
public boolean set(String key, String value, long time) {
boolean result = false;
try {
redisTpl.opsForValue().set(key, value);
expire(key, time);
result = true;
} catch (Exception e) {
e.printStackTrace();
}
return result;
}
/**
* 获取redis中的值
* @param key
* @return
*/
public String get(String key) {
String result = null;
try {
result = redisTpl.opsForValue().get(key);
} catch (Exception e) {
e.printStackTrace();
}
return result;
}
/**
* 设置key的过期时间
* @param key
* @param time
* @return
*/
public boolean expire(String key, long time) {
boolean result = false;
try {
if(time > 0) {
redisTpl.expire(key, time, TimeUnit.SECONDS);
result = true;
}
} catch (Exception e) {
e.printStackTrace();
}
return result;
}
/**
* 根据key删除对应value
* @param key
* @return
*/
public boolean remove(String key) {
boolean result = false;
try {
redisTpl.delete(key);
result = true;
} catch (Exception e) {
e.printStackTrace();
}
return result;
}
}
登录成功,将用户信息和生成的token保存到redis
redis是以(key,value)进行存储的,token用作key,用户信息用value。
调用create(用户信息)就能将用户信息存到redis中,取得时候,直接调用RedisClient类中的get方法,传入key的值就可以将用户信息取出。
redis可视化工具
百度网盘下载链接:https://pan.baidu.com/s/1WEagZ9WAqHQnDRU4GZH4Rw
提取码:fzj9
-------------------------------------->下篇记录可视化工具redis-desktop的使用方法