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アプレットのサイレントログインとカスタムログイン状態の維持の詳細な説明

推薦する

ネイティブ js を使用してライブ バレット スクリーンのスクロール効果をシミュレートします。

目次1. 基本原則2. 特定のコード要約する1. 基本原則まず、生放送エリアを10の部分に分割し(個...

Ubuntuで顔認識ログインを実装するための完全な手順

1. Howdyをインストール: howdyプロジェクトアドレス sudo add-apt-repo...

MySQL データベースの基本的な SQL ステートメントの概要

この記事では、例を使用して、Mysql データベースの基本的な SQL ステートメントについて説明し...

純粋なCSSでは、子要素が親要素の幅制限を突破できる。

文章のスタイルでは、このような状況がよく見られます コードは次のとおりです <div styl...

CSS3 transition-delay属性のデフォルト値が単位なしの0であり無効である問題を解決します

今日は、CSS3 の transition-delay 属性のデフォルト値 0 に単位がないのは無効...

docker view container log コマンドの実装

なぜログを読む必要があるのでしょうか?たとえば、コンテナの起動に失敗したがプロンプトが表示されない場...

Div はフラッシュを覆います。フラッシュ透過方式により、フラッシュ上に DIV レイヤーを配置できます。

2つのタイプがあります: (異なるブラウザ) 1. IEブラウザで利用可能コードをコピーコードは次の...

MySQL 5.7 のユニオンオール使用法のブラックテクノロジーを 5 分で学ぶ

MySQL 5.6 での union all のパフォーマンスパート 1:MySQL 5.6.25 ...

Dockerリンクはコンテナの相互接続を実現します

目次1.1. IP経由のコンテナ間のネットワークアクセス1.2. コンテナ名またはコンテナIDによる...

MySQLデータベースインデックスの詳細な説明

目次1. MySQLインデックスの紹介2. MySQLの5種類のインデックスの詳しい説明1. 総合索...

JSはカリキュラムタイムテーブルアプレット(スーパーカリキュラムタイムテーブルを模倣)を実装し、カスタムバックグラウンド機能を追加します

概要:市販されているいくつかのタイムテーブルソフトウェアから教訓を得ました。機能が複雑すぎるため、タ...

HTMLタグのtarget属性の使用法

1: <a> タグを使用してページにリンクする場合、target 属性の役割は誰もが知っ...

包括的なウェブサイト評価ソリューション

<br />「XXXのウェブサイトを見てみませんか?」といった質問をされることもあります...

vscode を使用したリモート Linux 開発の実装

過去に別れを告げるvscode にリモート SSH が導入される前は、Linux サーバー開発者の多...

ふるい抽選を実施するミニプログラム

この記事の例では、ふるい抽選を実装するためのミニプログラムの具体的なコードを参考までに共有しています...