Linux で Redis のリモート接続を実装する方法

Linux で Redis のリモート接続を実装する方法

LinuxにRedisをインストールしたら、Javaを使って接続します。Javaコードは次のとおりです。

パッケージ com.wzj.demo.test;
 
redis.clients.jedis.Jedis をインポートします。
 
/**
 ※2018/3/29にwzjによって作成されました。
 */
パブリッククラス RedisJava
{
  パブリック静的void main(String[] args)
  {
    //ローカル Redis サービスに接続します Jedis jedis = new Jedis("192.168.3.45");
    System.out.println("接続に成功しました");
 
    //Redis 文字列データを設定します jedis.set("runoobkey", "www.runoob.com");
 
    // 保存されたデータを取得して出力します System.out.println("Redis に保存されている文字列は: " + jedis.get("runoobkey"));
  }
}

次のエラーを報告します:

スレッド「main」で例外が発生しました redis.clients.jedis.exceptions.JedisConnectionException: java.net.SocketException: 接続がリセットされました
	redis.clients.util.RedisInputStream.ensureFill(RedisInputStream.java:202) で
	redis.clients.util.RedisInputStream.readByte(RedisInputStream.java:40) で
	redis.clients.jedis.Protocol.process(Protocol.java:151) で
	redis.clients.jedis.Protocol.read(Protocol.java:215) で
	redis.clients.jedis.Connection.readProtocolWithCheckingBroken(Connection.java:340) で
	redis.clients.jedis.Connection.getStatusCodeReply(Connection.java:239) で
	redis.clients.jedis.Jedis.set(Jedis.java:121) で
	com.wzj.demo.test.RedisJava.main(RedisJava.java:17) で
	sun.reflect.NativeMethodAccessorImpl.invoke0(ネイティブ メソッド)
	sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:62) で
	sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43) で
	java.lang.reflect.Method.invoke(Method.java:498) で
	com.intellij.rt.execution.application.AppMain.main(AppMain.java:147) で
原因: java.net.SocketException: 接続がリセットされました
	java.net.SocketInputStream.read(SocketInputStream.java:209) で
	java.net.SocketInputStream.read(SocketInputStream.java:141) で
	java.net.SocketInputStream.read(SocketInputStream.java:127) で
	redis.clients.util.RedisInputStream.ensureFill(RedisInputStream.java:196) で
	... 12件以上

Telnet 192.168.3.45 6379 を使用して、ポートがブロックされていることを確認します。

オンラインで検索して分析した結果、理由は次の通りです。Redis はデフォルトでローカル接続のみを許可し、他のマシンからの接続は許可しません。次の変更が必要です。

(1)redis.confファイルを変更し、bind 127.0.0.1 ::1の行をコメントアウトします。

(2)redis.confファイルを変更し、protected-modeをnoに設定する

(3)起動時にredis.confファイルを指定して./src/redis-server redis.confコマンドを実行する必要がある。

セットアップ後、テストを再起動して、Java コードが正常に接続できることを確認します。

Linux で Redis のリモート接続を許可する方法については、上記の記事が皆さんにお伝えできるすべてです。この記事が皆さんの参考になれば幸いです。また、123WORDPRESS.COM を応援していただければ幸いです。

以下もご興味があるかもしれません:
  • リモートホストがRedisサーバーにアクセスできるようにする方法
  • Redisリモートログイン接続の詳細な説明
  • Redis 3.2 でリモート アクセスを有効にする詳細な手順
  • Linux プラットフォームに Redis と Redis 拡張機能をインストールする方法

<<:  mysql8.0.11 winx64 手動インストールと設定チュートリアル

>>:  WeChatアプレットのサイレントログインとカスタムログイン状態の維持の詳細な説明

推薦する

MACでMYSQLデータベースのパスワードを忘れた場合の解決策

Mac オペレーティングシステムで MYSQL データベースのパスワードを忘れた場合の簡単な解決策1...

IDEA が MySQL データベースに接続できない問題の 6 つの解決策

この記事では、IDEA が MySQL データベースに接続できない問題に対する 6 つの解決策を主に...

Vueはタブ切り替えを実装します

この記事では、タブ切り替えを実装するためのVueの具体的なコードを例として紹介します。具体的な内容は...

ブラインドの特殊効果を実現するネイティブJS

この記事では、ネイティブ JS で実装されたブラインドの特殊効果を紹介します。効果は次のとおりです。...

Ubuntu 18.04 に Anaconda3 をインストールするための詳細なチュートリアル

Anaconda は、conda、Python、およびそれらの依存関係など、180 を超える科学パッ...

MySQL データベースの集計クエリと結合クエリ操作

目次1. クエリ結果を挿入する2. 集計クエリ2.1 はじめに2.2 集計関数2.3 group b...

JavaScriptでよく使われる配列重複排除実戦ソースコード

アレイの重複排除は、通常、就職面接中に遭遇し、アレイの重複排除方法のコードを手動で記述することが求め...

カンマで区切られたmysqlの分割関数の実装

1: 文字列を区切るためのストアドプロシージャを定義する 区切り文字 $$ `mess`$$ を使う...

HTML の順序付きリスト、順序なしリスト、定義リストに関する簡単な説明

順序付きリストXML/HTML コードコンテンツをクリップボードにコピー<オルタイプ= &qu...

Vueのフロントエンドとバックエンドのデータのやり取りと表示を理解する方法

目次1. 技術概要2. 技術的な詳細1. インターフェースからバックエンドデータを取得する2. フロ...

Nginx リバース プロキシ springboot jar パッケージ プロセス分析

Springboot プロジェクトをサーバーにデプロイする方法としては、war パッケージにパッケー...

Mysql 複数データベースのバックアップ コード例

この記事は主にMysqlの複数データベースのバックアップのコード例を紹介します。この記事ではサンプル...

Vueにおけるキーの役割と原理の詳細な説明

目次1. 結論から始めましょう2. キーの役割2.1 例2.2 上記の例を修正する2.3 例を再度修...

CSS3 レーダースキャンマップのサンプルコード

CSS3 を使用して、クールなレーダースキャン画像を実現します。 コード上で直接: // インデック...

マウスのドラッグ効果を実現するJavaScript

この記事では、マウスドラッグ効果を実現するためのJavaScriptの具体的なコードを参考までに紹介...