spring boot整合Redis个人总结

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的使用方法

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值