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 での Object.create インスタンスの使用法の詳細な説明

1. Object.create() メソッドを使用して新しいオブジェクトを作成し、既存のオブジェク...

Linuxシステムはルートアカウントのリモートログインコマンドを禁止しています

ps: Linux システムで root アカウントのリモート ログインを無効にする方法は次のとおり...

Vueモバイル端末は左スライド編集と削除の全プロセスを実現します

序文プロジェクトのニーズに応じて、Vue-touch を使用して、vue モバイル端末の左スワイプ編...

MySQL 5.7 における部分テーブルのデュアルマスター同期の実装プロセスの詳細な説明

序文最近、私はある要件に遭遇しました。会社の業務上、2 つのデータベース間の一部のテーブルは、リアル...

ローカル Docker に Postgres 12 + pgadmin をインストールする方法 (Apple M1 をサポート)

目次導入Intel CPUをサポートApple M1のサポートテスト導入このプロジェクトでは最近、P...

Dockerコアとインストールの具体的な使い方

1. Docker とは何ですか? (1)DockerはLinuxコンテナ内でアプリケーションを実行...

Win7 での mysql5.5 インストール グラフィック チュートリアル

MySQL のインストールは比較的簡単なので、通常は次のステップに直接進み、注意が必要な点に集中する...

ウェブサイトのアクセス速度を向上させるための徹底的な最適化に関するヒント

<br />ウェブサイトのアクセス速度はウェブサイトのトラフィックに直接影響を及ぼし、ウ...

Iframe Web ページのナビゲーション ウィンドウに関する簡単な説明

Iframe Web ページのナビゲーション ウィンドウに関する簡単な説明 Iframe ウェブペー...

Maxwell を使用して MySQL データをリアルタイムで同期する方法

目次マクスウェルについてMaxwellの設定と使用1. Maxwellインストールパッケージをダウン...

nginx+php実行リクエストの動作原理の詳細な説明

PHPの仕組みまず、よく耳にするcgi、php-cgi、fastcgi、php-fpmの関係を理解し...

MySQL でコミットされていないトランザクション情報を見つける方法

少し前に、「ORACLE でコミットされていないトランザクションの SQL ステートメントを見つける...

Spring Boot Docker パッケージング ツールの概要

目次スプリングブートDocker spring-boot-maven-プラグインSpotify Ma...

Tomcat セキュリティ仕様 (Tomcat セキュリティ強化と仕様)

tomcat はオープンソースの Web サーバーです。Tomcat ベースの Web は実行効率...

docker を使用して Redis マスター/スレーブを構築する方法

1. Docker環境を構築する1. Dockerfileを作成する Centos:latest か...