SpringBoot 統合 Redis のアノテーションは何ですか?
redis の概要:
Redis是当前比较热门的NOSQL系统之一,它是一个开源的使用ANSI c语言编写的key-value存储系统 (区别于MySQL的二维表格的形式存储。)。和Memcache类似,但很大程度补偿了Memcache的不 足。和Memcache一样,Redis数据都是缓存在计算机内存中,不同的是,Memcache只能将数据缓存到 内存中,无法自动定期写入硬盘,这就表示,一断电或重启,内存清空,数据丢失。所以Memcache的 应用场景适用于缓存无需持久化的数据。而Redis不同的是它会周期性的把更新的数据写入磁盘或者把修 改操作写入追加的记录文件,实现数据的持久化。 Redis的特点: 1,Redis读取的速度是110000次/s,写的速度是81000次/s; 2,原子 。Redis的所有操作都是原子性的,同时Redis还支持对几个操作全并后的原子性执行。 3,支持多种数据结构:string(字符串);list(列表);hash(哈希),set(集合);zset(有序集合) 4,持久化,集群部署 5,支持过期时间,支持事务,消息订阅
依存関係の紹介:
<!-- redis --> <dependency> <groupId>org.springframework.boot</groupId> <artifactId>spring-boot-starter-data-redis</artifactId> </dependency> <!-- spring2.X集成redis所需common-pool2--> <dependency> <groupId>org.apache.commons</groupId> <artifactId>commons-pool2</artifactId> <version>2.6.0</version> </dependency>
application.properties ファイルの書き込み
#redi配置 spring.redis.host=ip地址 spring.redis.port=端口号 spring.redis.database=0 spring.redis.password=密码 spring.redis.lettuce.pool.max-active=20 spring.redis.lettuce.pool.max-wait=1 #最大阻塞等待时间(负数表示没有限制) spring.redis.lettuce.pool.max-idle=5 spring.redis.lettuce.pool.min-idle=0 # 关闭超时时间 spring.redis.lettuce.shutdown-timeout=100
構成の書き込みclass :
@EnableCaching @Configuration public class RedisConfig extends CachingConfigurerSupport { @Bean public RedisTemplate<String, Object> redisTemplate(RedisConnectionFactory factory) { RedisTemplate<String, Object> template = new RedisTemplate<>(); RedisSerializer<String> redisSerializer = new StringRedisSerializer(); Jackson2JsonRedisSerializer jackson2JsonRedisSerializer = new Jackson2JsonRedisSerializer(Object.class); ObjectMapper om = new ObjectMapper(); om.setVisibility(PropertyAccessor.ALL, JsonAutoDetect.Visibility.ANY); om.enableDefaultTyping(ObjectMapper.DefaultTyping.NON_FINAL); jackson2JsonRedisSerializer.setObjectMapper(om); template.setConnectionFactory(factory); //key序列化方式 template.setKeySerializer(redisSerializer); //value序列化 template.setValueSerializer(jackson2JsonRedisSerializer); //value hashmap序列化 template.setHashValueSerializer(jackson2JsonRedisSerializer); return template; } @Bean public CacheManager cacheManager(RedisConnectionFactory factory) { RedisSerializer<String> redisSerializer = new StringRedisSerializer(); Jackson2JsonRedisSerializer jackson2JsonRedisSerializer = new Jackson2JsonRedisSerializer(Object.class); //解决查询缓存转换异常的问题 ObjectMapper om = new ObjectMapper(); om.setVisibility(PropertyAccessor.ALL, JsonAutoDetect.Visibility.ANY); om.enableDefaultTyping(ObjectMapper.DefaultTyping.NON_FINAL); jackson2JsonRedisSerializer.setObjectMapper(om); // 配置序列化(解决乱码的问题),过期时间600秒 RedisCacheConfiguration config = RedisCacheConfiguration.defaultCacheConfig() .entryTtl(Duration.ofSeconds(600)) .serializeKeysWith(RedisSerializationContext.SerializationPair.fromSerializer(redi sSerializer)) .serializeValuesWith(RedisSerializationContext.SerializationPair.fromSerializer(ja ckson2JsonRedisSerializer)) .disableCachingNullValues(); RedisCacheManager cacheManager = RedisCacheManager.builder(factory) .cacheDefaults(config) .build(); return cacheManager; } }
Springbootのredisアノテーション紹介
(1) キャッシュ @Cacheable
メソッドに従って返された結果をキャッシュします。キャッシュが存在する場合は、キャッシュ データを直接読み取ってリターンし、キャッシュが存在しない場合はメソッドを実行し、返された結果をキャッシュに格納します。通常、クエリ メソッドで使用されます。
ソース コードを表示します。属性値は次のとおりです。
(2) キャッシュ @CachePut
にはこのアノテーションが付いています。メソッドは実行されるたびに呼び出され、結果は指定されたキャッシュに保存されます。データベースに再度クエリを実行する代わりに、応答のキャッシュからデータを直接読み取ることも別のアプローチです。通常、新しいメソッドを追加するために使用されます。
#ソースコードを表示、属性値は以下のとおりです
不能连接redis: (1)关闭liunx防火墙 (2)找到redis配置文件: 修改 protected-mode yes 改为 protected-mode no 注释掉: bind 127.0.0.1
@Cacheable(value = "banner", key = "'selectIndexList'")
@Override
public List<CrmBanner> selectIndexList() {
List<CrmBanner> list = baseMapper.selectList(new
QueryWrapper<CrmBanner>().orderByDesc("sort"));
return list;
}
@CacheEvict(value = "banner", allEntries=true)
@Override
public void removeBannerById(String id) {
baseMapper.deleteById(id);
}
ログイン後にコピー
@Cacheable(value = "banner", key = "'selectIndexList'") @Override public List<CrmBanner> selectIndexList() { List<CrmBanner> list = baseMapper.selectList(new QueryWrapper<CrmBanner>().orderByDesc("sort")); return list; } @CacheEvict(value = "banner", allEntries=true) @Override public void removeBannerById(String id) { baseMapper.deleteById(id); }
redis:
クエリの使用法: @Cacheable アノテーション
削除の変更: @CacheEvict アノテーションを使用します
追加 : @CachePut アノテーションを使用します
以上がSpringBoot 統合 Redis のアノテーションは何ですか?の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

ホットAIツール

Undresser.AI Undress
リアルなヌード写真を作成する AI 搭載アプリ

AI Clothes Remover
写真から衣服を削除するオンライン AI ツール。

Undress AI Tool
脱衣画像を無料で

Clothoff.io
AI衣類リムーバー

AI Hentai Generator
AIヘンタイを無料で生成します。

人気の記事

ホットツール

メモ帳++7.3.1
使いやすく無料のコードエディター

SublimeText3 中国語版
中国語版、とても使いやすい

ゼンドスタジオ 13.0.1
強力な PHP 統合開発環境

ドリームウィーバー CS6
ビジュアル Web 開発ツール

SublimeText3 Mac版
神レベルのコード編集ソフト(SublimeText3)

ホットトピック









Redisクラスターモードは、シャードを介してRedisインスタンスを複数のサーバーに展開し、スケーラビリティと可用性を向上させます。構造の手順は次のとおりです。異なるポートで奇妙なRedisインスタンスを作成します。 3つのセンチネルインスタンスを作成し、Redisインスタンスを監視し、フェールオーバーを監視します。 Sentinel構成ファイルを構成し、Redisインスタンス情報とフェールオーバー設定の監視を追加します。 Redisインスタンス構成ファイルを構成し、クラスターモードを有効にし、クラスター情報ファイルパスを指定します。各Redisインスタンスの情報を含むnodes.confファイルを作成します。クラスターを起動し、CREATEコマンドを実行してクラスターを作成し、レプリカの数を指定します。クラスターにログインしてクラスター情報コマンドを実行して、クラスターステータスを確認します。作る

Redis Clusterは、Redisインスタンスの水平拡張を可能にする分散展開モデルであり、ノード間通信、ハッシュスロット部門キースペース、ノード選挙、マスター奴隷レプリケーション、コマンドリダイレクトを通じて実装されます。ハッシュスロット:キースペースをハッシュスロットに分割して、キーの責任ノードを決定します。ノード選挙:少なくとも3つのマスターノードが必要であり、選挙メカニズムを通じて1つのアクティブマスターノードのみが保証されます。マスタースレーブレプリケーション:マスターノードはリクエストの書き込みを担当し、スレーブノードはリクエストとデータレプリケーションを読む責任があります。コマンドリダイレクト:クライアントはキーを担当するノードに接続し、ノードは誤ったリクエストをリダイレクトします。トラブルシューティング:障害検出、オフラインのマーク、および再

Redisは、キーの一意性を確保するために5つの戦略を使用します。1。名前空間分離。 2。ハッシュデータ構造。 3.データ構造を設定します。 4。文字列キーの特殊文字。 5。LUAスクリプト検証。特定の戦略の選択は、データ組織、パフォーマンス、およびスケーラビリティ要件に依存します。

Redisはハッシュテーブルを使用してデータを保存し、文字列、リスト、ハッシュテーブル、コレクション、注文コレクションなどのデータ構造をサポートします。 Redisは、スナップショット(RDB)を介してデータを維持し、書き込み専用(AOF)メカニズムを追加します。 Redisは、マスタースレーブレプリケーションを使用して、データの可用性を向上させます。 Redisは、シングルスレッドイベントループを使用して接続とコマンドを処理して、データの原子性と一貫性を確保します。 Redisは、キーの有効期限を設定し、怠zyな削除メカニズムを使用して有効期限キーを削除します。

Redisバージョン番号を表示するには、次の3つの方法を使用できます。(1)情報コマンドを入力し、(2) - versionオプションでサーバーを起動し、(3)構成ファイルを表示します。

Redisのすべてのキーを表示するには、3つの方法があります。キーコマンドを使用して、指定されたパターンに一致するすべてのキーを返します。スキャンコマンドを使用してキーを繰り返し、キーのセットを返します。情報コマンドを使用して、キーの総数を取得します。

Redis Orderedセット(ZSET)は、並べ替えられた要素を保存し、関連するスコアでソートするために使用されます。 zsetを使用する手順には次のものがあります。1。zsetを作成します。 2。メンバーを追加します。 3.メンバースコアを取得します。 4。ランキングを取得します。 5.ランキング範囲のメンバーを取得します。 6.メンバーを削除します。 7.要素の数を取得します。 8。スコア範囲のメンバーの数を取得します。

Redisコマンドラインツール(Redis-Cli)を使用して、次の手順を使用してRedisを管理および操作します。サーバーに接続し、アドレスとポートを指定します。コマンド名とパラメーターを使用して、コマンドをサーバーに送信します。ヘルプコマンドを使用して、特定のコマンドのヘルプ情報を表示します。 QUITコマンドを使用して、コマンドラインツールを終了します。
