SpringbootプロジェクトredisTemplate快速有効操作redis
5398 ワード
このredisTemplateを簡単に紹介しましょう.今のところ私も小さな塊にしか触れていませんが、プロジェクトでは実際にokを操作しています.
今回の共有では、springBootでredisTemplateを統合し、一時的に文字列のみを操作することを紹介します.
SpringはRedisTemplateオブジェクトをカプセル化してredisに対する様々な操作を行い,すべてのredisオリジナルapiをサポートする.
くだらないことは言わないで、直接コードを貼り始めました.
pom maven redis依存性の追加
1.springBootでのredisの構成
2.RedisConfig構成
一、k-value方式:
先にRedisTemplateを注入して、newの方式が呼び出すことができないことを覚えていて、さもなくば注入が失敗して、操作が失敗します
データをredisに保存
二、方法注釈方式:
コードはこれだけです
もし問題があるならば直ちに伝言を残してください、私は第1時間のフィードバックができて、私のqqを追加することができます:983469079
今回の共有では、springBootでredisTemplateを統合し、一時的に文字列のみを操作することを紹介します.
RedisTemplateの紹介
SpringはRedisTemplateオブジェクトをカプセル化してredisに対する様々な操作を行い,すべてのredisオリジナルapiをサポートする.
RedisTemplateでは、5つのデータ構造に対する操作が定義されています。
redisTemplate.opsForValue();//
redisTemplate.opsForHash();// hash
redisTemplate.opsForList();// list
redisTemplate.opsForSet();// set
redisTemplate.opsForZSet();// set
くだらないことは言わないで、直接コードを貼り始めました.
pom maven redis依存性の追加
org.springframework.boot
spring-boot-starter-data-redis
1.springBootでのredisの構成
spring:
session:
store-type: redis
redis:
database: 0
host: **.**.**.**
port: 6379
#password: **********
2.RedisConfig構成
import com.alibaba.fastjson.serializer.SerializerFeature;
import com.alibaba.fastjson.support.config.FastJsonConfig;
import com.alibaba.fastjson.support.spring.FastJsonRedisSerializer;
import org.springframework.beans.factory.annotation.Value;
import org.springframework.cache.CacheManager;
import org.springframework.cache.annotation.EnableCaching;
import org.springframework.cache.interceptor.KeyGenerator;
import org.springframework.cache.jcache.config.JCacheConfigurerSupport;
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.jedis.JedisConnectionFactory;
import org.springframework.data.redis.core.RedisTemplate;
import org.springframework.data.redis.core.StringRedisTemplate;
import java.util.HashMap;
import java.util.Map;
/**
* Created by wdd on 2019/3/18.
*
* @author wdd
*/
@Configuration
@EnableCaching
public class RedisConfig extends JCacheConfigurerSupport {
@Value("${spring.redis.host}")
private String host;
@Value("${spring.redis.port}")
private int port;
@Value("${spring.redis.database}")
private int database;
//@Value("${cache.redis.password}")
//private String password;
@Bean
@Override
public KeyGenerator keyGenerator() {
return (target, method, params) -> {
StringBuilder sb = new StringBuilder();
sb.append(target.getClass().getSimpleName()).append(".");
sb.append(method.getName()).append(".");
for (Object obj : params) {
if (obj != null) {
sb.append(obj.toString());
}
}
return sb.toString();
};
}
@SuppressWarnings("rawtypes")
@Bean
public CacheManager cacheManager(RedisTemplate redisTemplate) {
RedisCacheManager rcm = new RedisCacheManager(redisTemplate);
// s
//rcm.setDefaultExpiration(120);//
// 30
//rcm.setDefaultExpiration(2592000);
Map expires = new HashMap<>(2);
expires.put("CommonService", 2592000L * 2);
rcm.setExpires(expires);
return rcm;
}
@Bean
public RedisTemplate redisTemplate() {
JedisConnectionFactory factory = new JedisConnectionFactory();
factory.setHostName(host);
//factory.setPassword(password);
factory.setPort(port);
factory.setDatabase(database);
factory.afterPropertiesSet();
StringRedisTemplate template = new StringRedisTemplate(factory);
FastJsonRedisSerializer
実際の操作を開始し、ここでは2つの方式(1.注釈方法方式。2.k-value方式で記憶と取得)を紹介する。
一、k-value方式:
先にRedisTemplateを注入して、newの方式が呼び出すことができないことを覚えていて、さもなくば注入が失敗して、操作が失敗します
import org.springframework.data.redis.core.RedisTemplate;//
@Resource
private RedisTemplate redisTemplate;
データをredisに保存
// :key,value, , (TimeUnit , , , , )
//set void set(K key, V value, long timeout, TimeUnit unit);
//TimeUnit.DAYS
//TimeUnit.HOURS
//TimeUnit.MINUTES
//TimeUnit.SECONDS
//TimeUnit.MILLISECONDS
redisTemplate.opsForValue().set("registerMobiles:sendSms"+mobiles,code,3*60, TimeUnit.SECONDS);
//
Object verificationCodeRedis = redisTemplate.opsForValue().get("registerMobiles:sendSms"+mobiles);
// 180 ,180 ,180 null
二、方法注釈方式:
@CacheConfig(cacheNames = "CommonService")//Service ;
@Override
@Cacheable
public String influencePersons() {
// 。。。
// redis
return "";
}
コードはこれだけです
もし問題があるならば直ちに伝言を残してください、私は第1時間のフィードバックができて、私のqqを追加することができます:983469079