質問をすることでしか得られない、回答やアドバイスがある。

15分調べてもわからないことは、質問しよう!

新規登録して質問してみよう
ただいま回答率
86.12%
Java

Javaは、1995年にサン・マイクロシステムズが開発したプログラミング言語です。表記法はC言語に似ていますが、既存のプログラミング言語の短所を踏まえていちから設計されており、最初からオブジェクト指向性を備えてデザインされています。セキュリティ面が強力であることや、ネットワーク環境での利用に向いていることが特徴です。Javaで作られたソフトウェアは基本的にいかなるプラットフォームでも作動します。

Redis

Redisは、オープンソースのkey-valueデータストアで、NoSQLに分類されます。すべてのデータをメモリ上に保存するため、処理が極めて高速です。

Spring

Spring Framework は、Javaプラットフォーム向けのオープンソースアプリケーションフレームワークです。 Java Platform上に、 Web ベースのアプリケーションを設計するための拡張機能が数多く用意されています。

解決済

Retwis-Jの共通フォロワーを探す処理の読み下しについて教えてください

uk_yamayam
uk_yamayam

総合スコア11

Java

Javaは、1995年にサン・マイクロシステムズが開発したプログラミング言語です。表記法はC言語に似ていますが、既存のプログラミング言語の短所を踏まえていちから設計されており、最初からオブジェクト指向性を備えてデザインされています。セキュリティ面が強力であることや、ネットワーク環境での利用に向いていることが特徴です。Javaで作られたソフトウェアは基本的にいかなるプラットフォームでも作動します。

Redis

Redisは、オープンソースのkey-valueデータストアで、NoSQLに分類されます。すべてのデータをメモリ上に保存するため、処理が極めて高速です。

Spring

Spring Framework は、Javaプラットフォーム向けのオープンソースアプリケーションフレームワークです。 Java Platform上に、 Web ベースのアプリケーションを設計するための拡張機能が数多く用意されています。

1回答

0リアクション

0クリップ

167閲覧

投稿2022/10/02 00:40

編集2022/10/09 01:34

前提

プログラミング初心者で、javaとSpring Frameworkを学習しております。TwitterのようなサンプルアプリであるRetwis-Jを元にRedisがどのようなデータ構造を持つのかを説明するDocで1.4.2 Persistenceに出てきた、コードが読み下せず、どのような処理をしているのかどこを参照すれば理解に至れそうなのか教えていただきたいです。
(追記)リンクが抜けておりました、失礼しました。
https://docs.spring.io/spring-data/data-keyvalue/examples/retwisj/current/#retwisj:design:persistence

お伺いしたいこと

・下記コードを理解したいです

Java

private RedisSet<String> following(String uid) { return new DefaultRedisSet<String>(KeyUtils.following(uid), template); } public Collection<String> commonFollowers(String uid, String targetUid) { RedisSet<String> tempSet = following(uid). intersectAndStore(following(targetUid), KeyUtils.commonFollowers(uid, targetUid)); tempSet.expire(5, TimeUnit.SECONDS); return covertUidsToNames(tempSet.getKey()); }

・理解していること(理解していると思っていること)

  • followingというオブジェクトを定義している
  • commonFollowersというオブジェクトを定義している
  • tempSet.expireは時間かかりすぎないようにタイムアウトを起こさせるためのメソッド

・具体的に分からないポイントは

  • ”KeyUtils”が何なのか、その配下のメソッドが具体的にどういう処理を行うものなのか分からない
  • commonFollowersのメソッドの改行がどこなのか分からない(下記のような1行を可読性のため改行しているだけで、実質はtempSetに、following.intersectAndStoreのメソッドの実行結果を代入しているだけ?)

Java

tempSet = following(uid).intersectAndStore(following(targetUid),KeyUtils.commonFollowers(uid, targetUid));

以上よろしくお願い致します。

以下のような質問にはリアクションをつけましょう

  • 質問内容が明確
  • 自分も答えを知りたい
  • 質問者以外のユーザにも役立つ

リアクションが多い質問は、TOPページの「注目」タブのフィードに表示されやすくなります。

気になる質問をクリップする

クリップした質問は、後からいつでもマイページで確認できます。

またクリップした質問に回答があった際、通知やメールを受け取ることができます。

下記のような質問は推奨されていません。

  • 間違っている
  • 質問になっていない投稿
  • スパムや攻撃的な表現を用いた投稿

適切な質問に修正を依頼しましょう。

まだ回答がついていません

会員登録して回答してみよう

アカウントをお持ちの方は

15分調べてもわからないことは
teratailで質問しよう!

ただいまの回答率
86.12%

質問をまとめることで
思考を整理して素早く解決

テンプレート機能で
簡単に質問をまとめる

質問する

関連した質問

同じタグがついた質問を見る

Java

Javaは、1995年にサン・マイクロシステムズが開発したプログラミング言語です。表記法はC言語に似ていますが、既存のプログラミング言語の短所を踏まえていちから設計されており、最初からオブジェクト指向性を備えてデザインされています。セキュリティ面が強力であることや、ネットワーク環境での利用に向いていることが特徴です。Javaで作られたソフトウェアは基本的にいかなるプラットフォームでも作動します。

Redis

Redisは、オープンソースのkey-valueデータストアで、NoSQLに分類されます。すべてのデータをメモリ上に保存するため、処理が極めて高速です。

Spring

Spring Framework は、Javaプラットフォーム向けのオープンソースアプリケーションフレームワークです。 Java Platform上に、 Web ベースのアプリケーションを設計するための拡張機能が数多く用意されています。