RedisのはRedisの程度前に、基本的に統一されたスキームをキャッシュする、のRedisと、フレームワークをキャッシュする当社の幅広い前に現れ、歌Geがチュートリアルのシリーズがあり、ない知らRedisの小さなパートナーは、このチュートリアルを参照することができます。
次のように多くの使用のJavaオペレーティングRedisのプログラムは、Jedisは、Jedisに加えて、他の多くのソリューションがありますが、より多くの人気のAプログラムです。
これらのプログラムに加えて、春データのRedisそのプログラムのかなりの数の使用もあります。
接続プール、接続情報と、キーと値の直列化スキーム:伝統的なSSMでは、春データのRedisを設定するには、自分自身を開発する必要性は、この構成では、より多くのは、configure三つの主要なものを複雑にしています。
春ブーツでは、デフォルトでは、開発者は、このようなJedisとして、あなた自身のおなじみのために変更することができ、Redisのは春データのRedis、レタスを使用して接続プールの基礎となるデフォルトで統合されています。
春データのRedis Redisのは、動作テンプレートRedisTemplateのために非常に便利を提供します。春データこれは良いことだ、春データRedisの中の特定の使用状況春ブーツで、次の我々の外観です。
オプション1:春データのRedis
プロジェクトを作成します。
Redisのの導入に依存して、プロジェクトを作成します。
作成したら、最終的な完全な依存のpom.xmlは次のようにして、あなたは、手動で導入commos-POOL2依存する必要があります。
<dependencies>
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-data-redis</artifactId>
</dependency>
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-web</artifactId>
</dependency>
<dependency>
<groupId>org.apache.commons</groupId>
<artifactId>commons-pool2</artifactId>
</dependency>
</dependencies>
ここでは主に春データのRedis +接続プールを紹介します。
Redisの構成情報
次に、構成情報Redisの情報は、他のプール情報に接続され、二つの側面、基本情報のRedisのいずれかを含みます。
spring.redis.database=0
spring.redis.password=123
spring.redis.port=6379
spring.redis.host=192.168.66.128
spring.redis.lettuce.pool.min-idle=5
spring.redis.lettuce.pool.max-idle=10
spring.redis.lettuce.pool.max-active=8
spring.redis.lettuce.pool.max-wait=1ms
spring.redis.lettuce.shutdown-timeout=100ms
自動設定
プロジェクト内の開発者は、春データのRedisを導入し、Redisの基本的な情報を装備する場合は、この時点では、自動化された設定が有効になります。
私たちは、Redisの自動設定クラスに春ブーツから識別することができます。
@Configuration
@ConditionalOnClass(RedisOperations.class)
@EnableConfigurationProperties(RedisProperties.class)
@Import({ LettuceConnectionConfiguration.class, JedisConnectionConfiguration.class })
public class RedisAutoConfiguration {
@Bean
@ConditionalOnMissingBean(name = "redisTemplate")
public RedisTemplate<Object, Object> redisTemplate(
RedisConnectionFactory redisConnectionFactory) throws UnknownHostException {
RedisTemplate<Object, Object> template = new RedisTemplate<>();
template.setConnectionFactory(redisConnectionFactory);
return template;
}
@Bean
@ConditionalOnMissingBean
public StringRedisTemplate stringRedisTemplate(
RedisConnectionFactory redisConnectionFactory) throws UnknownHostException {
StringRedisTemplate template = new StringRedisTemplate();
template.setConnectionFactory(redisConnectionFactory);
return template;
}
}
この自動設定のクラスはよく理解されています。
- まず、設定がRedisOperationsの存在下で有効になりながら、これは、マークされたクラス構成である(すなわち、プロジェクトが春データのRedisで導入されました)
- そして、属性設定さapplication.propertiesをインポート
- そして、接続プール情報(存在する場合)に導入
- 最後に、StringRedisTemplateがRedisTemplateサブクラスである2豆、RedisTemplateとStringRedisTemplateは、2つの方法が基本的に同じであり、主な違いは、データ操作の異なるタイプに反映され、RedisTemplateは、一般的な2つの目的でありますこれらの保存されたキーと値の対象とすることができ、一般的な2つのStringRedisTemplateを意味するStringRedisTemplateキーと値は文字列だけすることができた者を意味する文字列です。開発者は、関連するビーンを提供していない場合は、2つの設定が有効になり、それが有効になりません。
使用
次は、サービスRedisTemplate StringRedisTemplate中または使用中に直接注入することができます。
@Service
public class HelloService {
@Autowired
RedisTemplate redisTemplate;
public void hello() {
ValueOperations ops = redisTemplate.opsForValue();
ops.set("k1", "v1");
Object k1 = ops.get("k1");
System.out.println(k1);
}
}
Redisの中にデータ操作は、一般的に言えば、二つに分けること:
- RedisTemplateでの操作キー、および関連する方法については
- 操作の特定のデータ型のため、関連する方法は、対応するデータ・タイプを取得する必要があり、操作方法に対応するデータ型がopsForXXXあります
この方法は、次のように行くのRedisにデータを格納するために呼び出すことができます。
K1前の文字は、使用RedisTemplate、シリアライズ後のキーのRedisTemplate結果に起因しています。
RedisTemplateでは、鍵方式は、デフォルトのシーケンスJdkSerializationRedisSerializerです。
StringRedisTemplateでは、デフォルトのキーシーケンス方式はStringRedisTemplate場合ので、デフォルトのプレフィックスキーフロントケースがあるだろう、StringRedisSerializerです。
次のようにしかし、開発者自身が、シーケンスRedisTemplateスキームを変更することができます。
@Service
public class HelloService {
@Autowired
RedisTemplate redisTemplate;
public void hello() {
redisTemplate.setKeySerializer(new StringRedisSerializer());
ValueOperations ops = redisTemplate.opsForValue();
ops.set("k1", "v1");
Object k1 = ops.get("k1");
System.out.println(k1);
}
}
もちろん、直接StringRedisTemplate使用することができます。
@Service
public class HelloService {
@Autowired
StringRedisTemplate stringRedisTemplate;
public void hello2() {
ValueOperations ops = stringRedisTemplate.opsForValue();
ops.set("k2", "v2");
Object k1 = ops.get("k2");
System.out.println(k1);
}
}
また、ノート、自動春ブート設定のみのconfigure Redisのスタンドアロンことができ、Redisのクラスタならば、すべてはRedisのクラスタの操作方法について、独自の手動設定が必要と、ソングのGeその後、あなたと後で共有します。
オプション2:春のキャッシュ
:Redisのは春のキャッシュ、川や湖の春のキャッシュキャッシュ統一ファサードの形で運営され、特別な資料で説明する前に、このようなプログラムは、パートナーができる小さな会場ソングのGeを持っていたブーツ春、Redisのキャッシュがあることを行うことができますがと!。
オプション3:元の時代に戻ります
第三の選択肢はので、ここで、操作上の問題が、サポートされていますが、この操作ソングGeの前に提示記事があり、Redisのを操作するJedisまたは他のクライアントツールを直接使用、このプログラムはまた、春のブートでサポートされていますそれらを繰り返すことはしません、あなたが参照できるJedisの使用を。
概要
皆のための李Songgeは三つのプログラムをまとめたRedisの操作、春ブーツは、実際には、いくつかの広く使われている直接Jedisまだ比較的小さなを使用して最初の二つは、基本的に春ブーツの誰もが直接そう見たことがありません。
さて、私たちはここで停止し、質疑応答メッセージを残してくださいがあります。
関連例はGitHubのにアップロードされた、小さなお友達は、ダウンロードに歓迎されていますhttps://github.com/lenve/javaboy-code-samples