zhb-cms借token保存看操作redis

一、redis的jar包配置:在pom中配置

<!-- Redis -->

<dependency>

<groupId>org.springframework.data</groupId>

<artifactId>spring-data-redis</artifactId>

<version>1.7.6.RELEASE</version>

</dependency>

二、redis工厂及redis的bean配置

RedisConnectionFactoryConfig工厂java文件

package com.zhb.cms.sdk.config;

 

import org.springframework.boot.context.properties.ConfigurationProperties;

import org.springframework.context.annotation.Bean;

import org.springframework.context.annotation.Configuration;

import org.springframework.data.redis.connection.RedisConnectionFactory;

import org.springframework.data.redis.connection.jedis.JedisConnectionFactory;

@Configuration

@ConfigurationProperties(prefix="spring.redis")//获取配置文件中的spring-redis配置

public class RedisConnectionFactoryConfig {

//定义配置中心中redis配置的参数

private String host;

private String userHost;

private int port;

private int userPort;

private int database;

private int userDatabase;

//定义用户中心的redis连接工厂bean

@Bean(name="userRedisConnectionFactory")

public RedisConnectionFactory userRedisConnectionFactory(){

JedisConnectionFactory jcf=new JedisConnectionFactory();

jcf.setHostName(userHost);

jcf.setDatabase(userDatabase);

jcf.setPort(userPort);

jcf.setUsePool(true);

return jcf;

}

//定义主数据的redis连接工厂bean

@Bean(name="redisConnectionFactory")

public RedisConnectionFactory custRedisConnectionFactory(){

JedisConnectionFactory jcf=new JedisConnectionFactory();

jcf.setHostName(host);

jcf.setDatabase(database);

jcf.setPort(port);

jcf.setUsePool(true);

return jcf;

}

public String getHost() {

return host;

}

public void setHost(String host) {

this.host = host;

}

public String getUserHost() {

return userHost;

}

public void setUserHost(String userHost) {

this.userHost = userHost;

}

public int getPort() {

return port;

}

public void setPort(int port) {

this.port = port;

}

public int getUserPort() {

return userPort;

}

public void setUserPort(int userPort) {

this.userPort = userPort;

}

public int getDatabase() {

return database;

}

public void setDatabase(int database) {

this.database = database;

}

public int getUserDatabase() {

return userDatabase;

}

public void setUserDatabase(int userDatabase) {

this.userDatabase = userDatabase;

}

}

基于redisTemplate的RedisConfig配置java文件

package com.zhb.cms.sdk.config;

 

import java.lang.reflect.Method;

 

import org.springframework.beans.factory.annotation.Autowired;

import org.springframework.beans.factory.annotation.Qualifier;

import org.springframework.boot.context.properties.ConfigurationProperties;

import org.springframework.cache.CacheManager;

import org.springframework.cache.interceptor.KeyGenerator;

import org.springframework.context.annotation.Bean;

import org.springframework.context.annotation.Configuration;

import org.springframework.data.redis.cache.RedisCacheManager;

import org.springframework.data.redis.connection.RedisConnectionFactory;

import org.springframework.data.redis.connection.jedis.JedisConnectionFactory;

import org.springframework.data.redis.connection.jredis.JredisConnectionFactory;

import org.springframework.data.redis.core.RedisTemplate;

import org.springframework.data.redis.core.StringRedisTemplate;

import org.springframework.data.redis.serializer.Jackson2JsonRedisSerializer;

 

import com.fasterxml.jackson.annotation.JsonAutoDetect.Visibility;

import com.fasterxml.jackson.annotation.PropertyAccessor;

import com.fasterxml.jackson.databind.ObjectMapper;

@Configuration

 

public class RedisConfig{

/**

* 注入redis连接工厂里面的(userRedisConnectionFactory)bean

*/

@Autowired

@Qualifier("userRedisConnectionFactory")

private RedisConnectionFactory userRedisConnectionFactory;

/**

* 注入redis连接工厂里面的(redisConnectionFactory)bean

*/

@Autowired

@Qualifier("redisConnectionFactory")

private RedisConnectionFactory redisConnectionFactory;

//主数据redisTemplate的配置

@Bean(name="redisTemplate")

public RedisTemplate<String, String> redisTemplate(){

StringRedisTemplate template=new StringRedisTemplate(redisConnectionFactory);

template.afterPropertiesSet();

return template;

}

//用户redisTemplate的配置

@Bean(name="userRedisTemplate")

public RedisTemplate<String, String> userRedisTemplate(){

StringRedisTemplate template=new StringRedisTemplate(userRedisConnectionFactory);

template.afterPropertiesSet();

return template;

}

}

三、操作redis

public boolean saveToken(OAuth2AccessToken token,String userCd,Object userToken,String typeCd){

ValueOperations<String, String> opsForValue = userRedisTemplate.opsForValue();//引用操作

//String encode = SecurityUtil.MD5(token.getValue());

System.out.println("redis的key:"+token+"_"+userCd);

Set<String> keys = userRedisTemplate.keys("*_" + userCd+"_"+typeCd);//配置keys键

userRedisTemplate.delete(keys);//操作删除redis的记录

opsForValue.set(token+"_"+userCd+"_"+typeCd, JSON.toJSONString(userToken,SerializerFeature.WriteMapNullValue));//设置新的redis记录

//设置缓存时间

if(token.getExpiration()!=null){

userRedisTemplate.expire(token+"_"+userCd+"_"+typeCd, token.getExpiration().getTime()-new Date().getTime(), TimeUnit.MILLISECONDS);//设置reids记录的延期

}else{

userRedisTemplate.expire(token+"_"+userCd+"_"+typeCd, this.lockLoginTime, TimeUnit.HOURS);

}

return true;

}

String validate = opsForValue.get("validateCode_"+userLoginVO.getValId());//获取redis记录的数据

 

转载于:https://my.oschina.net/rifa/blog/1587602

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值