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

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

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

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

Redis

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

Spring

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

Q&A

解決済

1回答

361閲覧

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

uk_yamayam

総合スコア11

Java

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

Redis

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

Spring

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

0グッド

0クリップ

投稿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

1private RedisSet<String> following(String uid) { 2 return new DefaultRedisSet<String>(KeyUtils.following(uid), template); 3} 4 5public Collection<String> commonFollowers(String uid, String targetUid) { 6 RedisSet<String> tempSet = following(uid). 7 intersectAndStore(following(targetUid), 8 KeyUtils.commonFollowers(uid, targetUid)); 9 10 tempSet.expire(5, TimeUnit.SECONDS); 11 12 return covertUidsToNames(tempSet.getKey()); 13}

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

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

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

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

Java

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

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

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

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

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

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

guest

回答1

0

ベストアンサー

Retwis-J とか Redis は分かりませんが、ご提示のコード片を見て分かることは

followingというオブジェクトを定義している
commonFollowersというオブジェクトを定義している

オブジェクトではありません。メソッドです。

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

「可読性のため改行しているだけ」です。

tempSet.expire に関しましては、 tempSet の型である RedisSet のドキュメント を参照、 KeyUtils に関しましては、 import しているクラスを確認の上でそのドキュメントを参照してください。

KeyUtils はサンプル用のコードかもしれません。→ org.springframework.data.redis.samples.retwisj.redis.KeyUtils.java

投稿2022/10/02 05:04

編集2022/10/02 05:24
jimbe

総合スコア12648

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

uk_yamayam

2022/10/09 01:37

明快なご説明ありがとうございました。 理解できました。 KeyUtilsのクラスがどこで定義されているか見つけられなかったのですが、 ご回答いただいた通りサンプル用にコードで定義されたクラスのようでした。大変助かりました。
guest

あなたの回答

tips

太字

斜体

打ち消し線

見出し

引用テキストの挿入

コードの挿入

リンクの挿入

リストの挿入

番号リストの挿入

表の挿入

水平線の挿入

プレビュー

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

ただいまの回答率
85.48%

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

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

質問する

関連した質問