Redis学習日記のSpring Boot 2.0+整合Redis(Redissionに基づく)
3924 ワード
海加爾金鷹——野の草のように一歳一枯栄
昨日はredisの簡単なインストールが完了しました。Redis学習日誌のLinuxのインストールは、今日はプロジェクトの中で簡単に統合して使います。
統合環境説明
JDK 1.8バージョンidea開発ツールspringbook t 2.10バージョン
なぜRedissionを選んだのですか?
springbook t 2.0以前のバージョンはデフォルトでJedisですが、2.0後にLettuceに変えました。java接続redisが一番多いのはJedis、Redisson、Lettuceの3つの方法を簡単に紹介します。Redisの3つのフレーム:Jedis、Redisson、Lettuceは最後にRedissionを選択しました。Redissonの目的は利用者のRedisに対する関心の分離を促進することです。
POMにJAR対応導入
Redission公式整合文書に基づいて導入と使用を行います。
試験クラスを作成してテストを行う
テストを行う前に、アリ雲サーバを使用していますので、安全グループの中に6379ポートを開放してください。そうしないと接続できません。
配置類を修正するRedission Configは以下の通りです。
締め括りをつける
1 Redisson Clientというクラスは重要です。データの読み取りはこのクラスを通して行われていることが見えます。2このように様々な序列化方式なので、序列化はピットかもしれません。後は注意が必要です。3公式文書の説明は詳しくて、大丈夫です。たくさん見てください。
参考資料
Redission公式文書springboot整合redisson
昨日はredisの簡単なインストールが完了しました。Redis学習日誌のLinuxのインストールは、今日はプロジェクトの中で簡単に統合して使います。
統合環境説明
JDK 1.8バージョンidea開発ツールspringbook t 2.10バージョン
なぜRedissionを選んだのですか?
springbook t 2.0以前のバージョンはデフォルトでJedisですが、2.0後にLettuceに変えました。java接続redisが一番多いのはJedis、Redisson、Lettuceの3つの方法を簡単に紹介します。Redisの3つのフレーム:Jedis、Redisson、Lettuceは最後にRedissionを選択しました。Redissonの目的は利用者のRedisに対する関心の分離を促進することです。
POMにJAR対応導入
Redission公式整合文書に基づいて導入と使用を行います。
org.redisson
redisson-spring-boot-starter
3.10.4
配置類RedissonConfigを作成します。package com.hjljy.blog.redission;
import org.redisson.Redisson;
import org.redisson.api.RedissonClient;
import org.redisson.config.Config;
import org.springframework.context.annotation.Bean;
import org.springframework.context.annotation.Configuration;
/**
* @Auther:
* @Date: 2019 03 12 17:47
* @Description:
*/
@Configuration
public class RedissonConfig {
@Bean
public RedissonClient getRedisson(){
Config config = new Config();
// redis
config.useSingleServer().
setAddress("redis://IP :6379").
setPassword(" ");
return Redisson.create(config);
}
}
ここでは基本的なパラメータだけを配置しています。redisの構成は様々です。構成パラメータもたくさんあります。詳細は公式のパラメータ配置説明(中国語)を参照してください。試験クラスを作成してテストを行う
テストを行う前に、アリ雲サーバを使用していますので、安全グループの中に6379ポートを開放してください。そうしないと接続できません。
@RunWith(SpringRunner.class)
@SpringBootTest(webEnvironment = SpringBootTest.WebEnvironment.RANDOM_PORT)
public class BlogApplicationTests {
@Resource
private RedissonClient redissonClient;
@Test
public void RedissionTest(){
RBucket key = redissonClient.getBucket("newday");
key.set(" ");
System.out.println(" :"+key.get());
//
RBucket keyObj = redissonClient.getBucket("myname");
String s = keyObj.get();
System.out.println(" :"+s);
}
}
テスト結果: :
[ ERROR] [2019-03-14 10:37:37] [redisson-netty-1-9] org.redisson.client.handler.CommandDecoder [204] - Unable to decode data. channel: [id: 0x704603a9, L:/192.168.0.147:10879 - R:47.94.139.213/47.94.139.213:6379], reply: ReplayingDecoderByteBuf(ridx=9, widx=9), command: (GET), params: [myname]
java.io.IOException: java.lang.NullPointerException
プロジェクトに新しく入れられたデータは取得できますが、昨日のレdis-cliで保存したデータは取得できません。エラーメッセージ:データを復号できませんでした。おそらくredis-cliのデータを保存するコードとredissionのコードが一致しないためです。最後にインターネットで多くの資料を探しました。プログレッシブ戦略というものを見つけました。大体の状況はredis-cliがデータを保存する時の序列化の策略はstringですが、redissionのデフォルトの序列化の策略はJackson JSONコードRedission公式サイトの配置パラメータの序列化の説明です。配置類を修正するRedission Configは以下の通りです。
@Bean
public RedissonClient getRedisson(){
Config config = new Config();
// redis
config.useSingleServer().
setAddress("redis://IP :6379").
setPassword(" ");
config.setCodec(new StringCodec());
return Redisson.create(config);
}
最後の結果は以下の通りです。 . ____ _ __ _ _
/\\ / ___'_ __ _ _(_)_ __ __ _ \ \ \ \
( ( )\___ | '_ | '_| | '_ \/ _` | \ \ \ \
\\/ ___)| |_)| | | | | || (_| | ) ) ) )
' |____| .__|_| |_|_| |_\__, | / / / /
=========|_|==============|___/=/_/_/_/
:: Spring Boot :: (v2.1.0.RELEASE)
:
:ycf
ここまで簡単に使ったら完成です。締め括りをつける
1 Redisson Clientというクラスは重要です。データの読み取りはこのクラスを通して行われていることが見えます。2このように様々な序列化方式なので、序列化はピットかもしれません。後は注意が必要です。3公式文書の説明は詳しくて、大丈夫です。たくさん見てください。
参考資料
Redission公式文書springboot整合redisson