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

推薦する

CSS3 で作成した本のページめくり効果

結果:実装コード: html <!-- よろしければハートを付けてください! --> &...

MySQL MHA 操作ステータス監視の概要

目次1. プロジェクトの説明1.1 背景1.2 実装設計1.2.1 従来の方法1.2.2 最適化され...

jsはCanvasを使用して複数の画像を1つの実装コードにマージします

解決 関数 mergeImgs(リスト) { const imgDom = document.cre...

JavaScript axiosのインストールとパッケージ化のケースの詳細な説明

1. axiosプラグインをダウンロードする cnpm インストール axios -S 2. mai...

モバイルウェブページのサイズ調整を実装する方法

ようやく手元のプロジェクトが終了し、行方不明だった人たちが戻ってきました!プロジェクトを進める過程で...

MySQL 5.7.21 解凍バージョンのインストールと設定のグラフィックチュートリアル

この記事では、MySQL 5.7.21の解凍版をダウンロードしてインストールする詳細な手順を記録して...

MySQLクエリ文の実行プロセスを理解するための記事

序文要件を満たす特定のデータをデータベースから取得する必要があります。Select ABC FROM...

Docker+K8S+GitLab/SVN+Jenkins+Harbor をベースにした継続的インテグレーション配信環境の構築に関する詳細なチュートリアル

目次環境設定の概要1.K8Sとは何ですか? 2. K8S を使用する理由3. K8S を使用する利点...

Dockerはポートマッピングを設定しますが、ソリューションにアクセスできません

#docker ps チェック、すべてのポートがマップされています コンテナID イメージ コマンド...

MySQL 外部キー制約の例の説明

MySQL の外部キー制約は、2 つのテーブル間のリンクを確立するために使用されます。 1 つのテー...

React スキャフォールディングの構築方法を学ぶ

1. フロントエンドエンジニアリングの複雑さいくつかの小さなデモ プログラムを開発するだけであれば、...

Docker イメージのインポートとエクスポートのコード例

Dockerイメージのインポートとエクスポートこの記事では、移行、バックアップ、アップグレードなどの...

axios を使用してプロジェクト内の複数の繰り返しリクエストをフィルタリングする方法

目次1. はじめに:この場合、通常は 2 つのアプローチがあります。 2. CancelToken ...

IDEA は MySQL への接続時にエラーを報告します。サーバーが無効なタイムゾーンを返します。タブに移動して serverTimezone プロパティを設定してください。

これからの道は常に困難で、棘だらけです。歯を食いしばって、乗り越えられると信じてください。さあ、さあ...