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

推薦する

CSSアニメーションに基づくSVGボタンのサンプルコード

具体的なコードは次のとおりです。 <a href="#"> <...

MySQLチュートリアルではストアドプロシージャを徹底的に理解します

目次1. ストアドプロシージャに関連する概念2. ストアドプロシージャの使用1) ストアドプロシージ...

jsonファイルの書き方の詳細説明

目次JSONとはなぜこの技術なのでしょうか? JSONの使い方- データ形式- メモ- JSには2つ...

CSS3 で複数のカスタムフォントを導入する

今日、HTML に問題を発見しました。多くのデフォルト フォントが提供されていますが、「Bold」、...

Linux でのルーティングと仮想マシン ネットワークの設定に関する詳細なグラフィック説明

ルーティングとは何ですか?ルーティングとは、相互接続されたネットワークを介して送信元ステーションから...

Vue3のいくつかの利点についての簡単な説明

目次1. ソースコード1.1 モノレポ1.2 タイプスクリプト2. パフォーマンス2.1 ソースコー...

HTML における br と br/ の違い

スタックフローからの回答:単に<br>だけで十分です。その他の形式は、XHTML との互...

JSはユーザー登録インターフェース機能を実装します

この記事の例では、ユーザー登録インターフェース機能を実装するためのJSの具体的なコードを参考までに共...

HTML の基本的な使用法には、リンク、スタイルシート、span、div などが含まれます。

1. リンクハイパーテキスト リンクは HTML において非常に重要です。基本的な形式は次のとおりで...

IE6はmin-widthを実装している

まず第一に、この効果は古い話題であるはずだということはわかっています。今日ファイルを整理していたら、...

CSS グラデーション効果の概要 (線形グラデーションと放射状グラデーション)

線形グラデーション 背景画像: linear-gradient(方向、開始色、中間色1、中間色2、....

JavaScript でツリー構造を構築するための効率的なアルゴリズムについての簡単な説明

目次導入アイデアID配列インデックスのマッピング関係を確立するツリー構造の構築原理要約する導入組織階...

TypeScript の Enum が問題となる理由

目次どうしたの?いつ使うか列挙の数を制御するビット値コントロールインデックス非数値列挙結論はType...

MySQL パフォーマンス チューニングについて知っておくべき 15 個の重要な変数 (要約)

序文: MYSQL は最も人気のある WEB バックエンド データベースです。最近、NOSQL がま...

MySQLとOracleの違いを簡単に説明してください

1. Oracle は大規模データベースですが、MySQL は小規模から中規模のデータベースです。O...