序文
Redisのサービスを構築する際に自身の出会いはいくつかの問題は、多くの人がどれだけ成功を構築することを教えてくれ、その過程で遭遇なし仕上げの問題が存在しない、すべての家主は、次を整理するために少し時間を過ごしました。
- Linux環境では、Redisのインストール
- インストール遭遇した問題と解決策
- インストールされたコードのRedisを使用する方法
- ユーザー名とパスワード
- アプリケーションプログラムの問題点
入門
Redisのキーと値のストレージシステムです。ハッシュ(ハッシュタイプ) - とMemcachedのは、同様に、それは文字列(文字列)、リスト(一覧)、SET(セット)、ZSET(順序集合ソートセット)を含む、比較的保存された値の型をサポートしています。これらのデータ型は、追加/削除して、交差点や労働組合、その差よりリッチな操作で、プッシュ/ポップをサポートされており、これらの操作はアトミックです。これに基づき、Redisのは、並べ替えの異なるさまざまな方法をサポートしています。memcachedのと同じように、効率性を確保するために、データはメモリにキャッシュされています。Redisの差は、定期的にディスクに書き込まれたデータで更新されたり、追加のログファイルを書き込む動作を変更するために、そしてこれに基づいてマスタースレーブ(マスタとスレーブ)の同期を実現します。
Redisのは、キーと値の高性能データベースです。Redisのは、このようなmemcachedのキー/値ストアの不足を補うため、それはいくつかの状況では、リレーショナルデータベースに非常に良い補数を再生することができます大きく、表示されます。これは、Java、C / C ++、C#の、PHPやJavaScript、Perlやオブジェクト-C、Pythonの、ルビー、アーランと他のクライアント、非常に使いやすいを提供します。
まず、Redisのインストール
1、インストールパッケージをダウンロードしてください
- CD / WWW / Redisの/
- wgetのhttp://download.redis.io/releases/redis-4.0.8.tar.gz
- Redisの-4.0.8.tar.gz -zxvf取り
- MVのRedis-4.0.8のRedisの
2、Redisのコンパイル
- CD / WWW / Redisの/ Redisの/
- MALLOC =のlibcを作ります
- PREFIX =は/ usr /作るローカル/ Redisのインストール
図3に示すように、プロファイルを準備
- CDは/ usr / ローカル/ Redisの
- mkdir CONF
- confにCD /
- 力redis_6379.conf
設定ファイルを次のように
- バインド127.0.0.1
- プロテクトモード なし
- ポート6379
- TCP-バックログ511
- タイムアウト0
- TCPキープアライブ300
- はいデーモン化
- 監督 なし
- pidファイル/www/redis/data/redis/6379/redis_6379.pid
- ログレベルの通知
- ログファイル 「/www/redis/data/redis/6379/log.log」
- データベース16
- 常にショーのロゴはい
- 900 1を保存
- 300 10を保存
- セーブ60 10000
- ストップwrites- オンbgsaveエラーはい
- はいrdbcompression
- はいrdbchecksum
- dbfilename dump.rdb
- DIR / WWW / Redisの/データ/ Redisの/ 6379 /
- スレーブ・サーブ・古くなったデータをはい
- slave- 読み取りのみはい
- REPL-ディスクレス同期 なし
- REPL-ディスクレス同期遅延5
- REPL-無効-TCP-NODELAY なし
- スレーブ優先度100
- lazyfree-レイジー立ち退き なし
- lazyfree-怠惰、有効期限が切れ ていません
- lazyfree-レイジーサーバデル なし
- スレーブ怠惰、フラッシュ なし
- appendonlyはい
- appendfilename "appendonly.aof"
- appendfsync everysec
- 無appendfsync-ない上、書き換え なし
- 自動AOF-書き換え割合100
- 自動AOF-rewrite- 最小- サイズ64メガバイト
- aof- 負荷切り捨てはい
- AOF-使用-RDB-プリアンブル なし
- lua- 制限時間5000
- slowlog-ログ遅く-10000
- slowlog- MAX-のみ128
- レイテンシー・モニターしきい値0
- ・鍵空間-イベントを通知 「」
- ハッシュ・MAX-ziplist-エントリ512
- ハッシュ・MAX-ziplist値64
4、サービスを開始
- ます。mkdir -p / WWW / Redisの/データ/ Redisの/ 6379 /
- CDの../bin/
- ./redis-server ../conf/redis_6379.conf
5、クライアントのリンクを使用して
- ./redis-cli
正常に起動するかどうかを判断し
6、
データを表示
- キー*
[設定]
- 設定のOneKeyテスト
値を取得します。
- OneKeyを取得
第二に、問題が発生し、インストールソリューション
一つの問題:
- WARNING:TCPバックログ設定 511のが原因では、/ proc / sys / net /コア/ SOMAXCONNが強制することはできません されて セット に 低い値 128の。
一時的な解決策:
- 511>は、/ proc / sys / net /コア/ SOMAXCONNエコー
恒久的な解決策
- 私たちは、/etc/sysctl.confの
その後、永久にこの警告を解消するにsysctl -pを実行している1024 = net.core.somaxconnを追加
質問2:
- WARNING overcommit_memory is set to 0! Background save may fail under low memory condition. To fix this issue add 'vm.overcommit_memory = 1' to /etc/sysctl.conf and then reboot or run the command 'sysctl vm.overcommit_memory=1' for this to take effect.
可以参考问题一的解决
问题三:
- WARNING you have Transparent Huge Pages (THP) support enabled in your kernel. This will create latency and memory usage issues with Redis. To fix this issue run the command 'echo never > /sys/kernel/mm/transparent_hugepage/enabled' as root, and add it to your /etc/rc.local in order to retain the setting after a reboot. Redis must be restarted after THP is disabled
执行命令echo never>/sys/kernel/mm/transparent hugepage/enabled
永久解决添加配置文件即可
- vi /etc/rc.local
三、怎么在代码中使用安装的redis呢
需要引用的jar包有
- commons-pool-1.6.jar
- jedis-2.9.0.jar
示例代码
- public static void main(String[] args) {
- //创建redis对象
- String ip = "";
- Jedis jedis=new Jedis(ip,6379);//链接redis
- //记录操作个数
- jedis.set("name", "小明");
- System.out.println("name已经赋值");
- String name = jedis.get("name");
- System.out.println("赋值后获取name的值为:"+name);
- jedis.del("name");
- System.out.println("name已经删除");
- String nameT = jedis.get("name");
- System.out.println("删除后获取name的值为:"+nameT);
- }
- //结果
- name已经赋值
- 赋值后获取name的值为:小明
- name已经删除
- 删除后获取name的值为:null
四、设置用户名和密码
1、在配置文件中redis_6379.conf直接添加requirepass 123456
2、通过命令添加
设置密码
- #设置密码
- config set requirepass 123456
查看密码
- config get requirepass
需要验证密码以后才可以查看
测试代码
- public static void main(String[] args) {
- //创建redis对象
- String ip = "";
- Jedis jedis=new Jedis(ip,6379);//链接redis
- jedis.auth("123456");
- //记录操作个数
- jedis.set("name", "小明");
- System.out.println("name已经赋值");
- String name = jedis.get("name");
- System.out.println("赋值后获取name的值为:"+name);
- jedis.del("name");
- System.out.println("name已经删除");
- 文字列nameT = jedis.get("名前");
- 。システムout.printlnを(「値を削除した後、名前を得る:」+ nameT)。
- }
- #結果
- 名前が割り当てられています
- 取得した後、割り当て名の値は次のとおりです。暁明
- 名前が削除されました
- 削除取得した後の名前値:nullの
第五に、アプリケーションで問題が発生しました
リンクが拒否または回問題アウトされます
デフォルトのIPアドレスとポート127.0.0.1:6379を設定するには、開始IP Redisのは、IPローカルサービスにのみリンクすることができます。ソリューション:
設定ファイルでは、このIPはコメントします
クラウドアリにセキュリティグループの設定
コンフィギュレーションファイルおよびセキュリティグループを変更した後、あなたはアリクラウドサービスによる外部ネットワークのIPとポートのRedisにアクセスすることができます。
しかし、その後、また、保護モードへのアクセスを拒否、問題を報告
ノープロパティプロテクトモードredis_6379.conf設定ファイルを変更するプロンプトに従って、サービスを再起動します
テストコードは、再び〜正しく接続します
[エディタ]