質問をすることでしか得られない、回答やアドバイスがある。

15分調べてもわからないことは、質問しよう!

新規登録して質問してみよう
ただいま回答率
85.35%
Redis

Redisは、オープンソースのkey-valueデータストアで、NoSQLに分類されます。すべてのデータをメモリ上に保存するため、処理が極めて高速です。

Linux

Linuxは、Unixをベースにして開発されたオペレーティングシステムです。日本では「リナックス」と呼ばれています。 主にWebサーバやDNSサーバ、イントラネットなどのサーバ用OSとして利用されています。 上位500のスーパーコンピュータの90%以上はLinuxを使用しています。 携帯端末用のプラットフォームAndroidは、Linuxカーネル上に構築されています。

Ubuntu

Ubuntuは、Debian GNU/Linuxを基盤としたフリーのオペレーティングシステムです。

Ruby on Rails

Ruby on Railsは、オープンソースのWebアプリケーションフレームワークです。「同じことを繰り返さない」というRailsの基本理念のもと、他のフレームワークより少ないコードで簡単に開発できるよう設計されています。

Q&A

解決済

1回答

2697閲覧

redis-serverが実行できません(Linux・Ubuntu環境)。

nakatievent

総合スコア38

Redis

Redisは、オープンソースのkey-valueデータストアで、NoSQLに分類されます。すべてのデータをメモリ上に保存するため、処理が極めて高速です。

Linux

Linuxは、Unixをベースにして開発されたオペレーティングシステムです。日本では「リナックス」と呼ばれています。 主にWebサーバやDNSサーバ、イントラネットなどのサーバ用OSとして利用されています。 上位500のスーパーコンピュータの90%以上はLinuxを使用しています。 携帯端末用のプラットフォームAndroidは、Linuxカーネル上に構築されています。

Ubuntu

Ubuntuは、Debian GNU/Linuxを基盤としたフリーのオペレーティングシステムです。

Ruby on Rails

Ruby on Railsは、オープンソースのWebアプリケーションフレームワークです。「同じことを繰り返さない」というRailsの基本理念のもと、他のフレームワークより少ないコードで簡単に開発できるよう設計されています。

0グッド

0クリップ

投稿2020/09/07 15:16

編集2020/09/08 13:41

Ruby on RailsRedisをインストールしたのですが、redis-serverを実行したところ

3435:C 07 Sep 22:45:59.975 # oO0OoO0OoO0Oo Redis is starting oO0OoO0OoO0Oo 3435:C 07 Sep 22:45:59.976 # Redis version=4.0.9, bits=64, commit=00000000, modified=0, pid=3435, just started 3435:C 07 Sep 22:45:59.977 # Warning: no config file specified, using the default config. In order to specify a config file use redis-server /path/to/redis.conf 3435:M 07 Sep 22:45:59.979 * Increased maximum number of open files to 10032 (it was originally set to 1024). _._ _.-``__ ''-._ _.-`` `. `_. ''-._ Redis 4.0.9 (00000000/0) 64 bit .-`` .-```. ```/ _.,_ ''-._ ( ' , .-` | `, ) Running in standalone mode |`-._`-...-` __...-.``-._|'` _.-'| Port: 6379 | `-._ `._ / _.-' | PID: 3435 `-._ `-._ `-./ _.-' _.-' |`-._`-._ `-.__.-' _.-'_.-'| | `-._`-._ _.-'_.-' | http://redis.io `-._ `-._`-.__.-'_.-' _.-' |`-._`-._ `-.__.-' _.-'_.-'| | `-._`-._ _.-'_.-' | `-._ `-._`-.__.-'_.-' _.-' `-._ `-.__.-' _.-' `-._ _.-' `-.__.-' 3435:M 07 Sep 22:45:59.988 # WARNING: The TCP backlog setting of 511 cannot be enforced because /proc/sys/net/core/somaxconn is set to the lower value of 128. 3435:M 07 Sep 22:45:59.989 # Server initialized 3435:M 07 Sep 22:45:59.989 # 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. 3435:M 07 Sep 22:45:59.990 * DB loaded from disk: 0.000 seconds 3435:M 07 Sep 22:45:59.990 * Ready to accept connections

というエラーメッセージが出た。上のエラーの一部を翻訳すると、

3435:M 07 Sep 22:45:59.989#警告overcommit_memoryが0に設定されています!メモリ不足の状態でバックグラウンド保存が失敗する場合があります。この問題を修正するには、/ etc / sysctl.confに「vm.overcommit_memory = 1」を追加してから再起動するか、コマンド「sysctl vm.overcommit_memory = 1」を実行してこれを有効にします。

ということだったので、

  • /etc/sysctl.confに「vm.overcommit_memory = 1」を追加
  • コマンド「sysctl vm.overcommit_memory = 1」を実行してこれを有効

のどちらかを実行すれば良いと思い、sysctl vm.overcommit_memory = 1を実行したところsysctl: permission denied on key 'vm.overcommit_memory'というメッセージが出た。

要は拒否されたという意味だったので、/etc/sysctl.confに「vm.overcommit_memory = 1」を追加を実行しようと思い「Redisを使う時は見積の二倍の容量必要だよね、という話」の「原因と解決策」を参考に解決しようと思ったのですが、/etc/sysctl.confがどこにあるのか分かりません。

Railsのディレクトリやファイルを調べても/etc/sysctl.confがないのでmkdir /etc/sysctl.confでディレクトリを作ろうと思ったのですが、mkdir: cannot create directory ‘/etc/sysctl.conf’: File existsと出ます。

「そのファイルは存在している」という意味ですが、「Ctrl + P」で検索してもそんなファイルはないので困っています。

どうすれば良いでしょうか?

気になる質問をクリップする

クリップした質問は、後からいつでもMYページで確認できます。

またクリップした質問に回答があった際、通知やメールを受け取ることができます。

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

YakumoSaki

2020/09/07 16:25 編集

Windowsのタグがついていますが、Linuxの話をしているように見えます。 Linuxであれば、ディストリビューション(Ubuntuとか、CentOSとか)を質問文に追記ください。 redisの出しているメッセージですが、警告ですので開発環境では無視しても問題は起きません。 本番環境だったら対応すべきですが…(念の為) 最後に、推測の回答ですが `sudo sysctl vm.overcommit_memory=1` を試してみてください。(先頭に sudo を追加しているのと、= の前後にスペースを入れないようにしてください)
nakatievent

2020/09/08 03:18

回答ありがとうございます! 今は仕事中なので、夜にやってみます!
nakatievent

2020/09/08 13:49 編集

YakumoSakiさん `sudo sysctl vm.overcommit_memory=1`を実行したところ、`vm.overcommit_memory = 1`となり`redis-server`を実行することができました! あと、LinuxとかUbuntuとか素人なので質問のタイトルに入れましたがこれで大丈夫そうでしょうか?(>_<) ベストアンサーにしたいので、再度回答という形で↑の回答を書いていただけると助かります!
guest

回答1

0

ベストアンサー

sudo sysctl vm.overcommit_memory=1 を試してみてください。

※ちなみにですが、 sudo vi /etc/sysctl.conf とすればsysctl.confを編集できると思います。
sysctl.confを編集しないと再起動したときに反映されませんのでご注意ください。

投稿2020/09/08 17:18

YakumoSaki

総合スコア2027

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

nakatievent

2020/09/08 23:51

なるほどです! 補足までいただきありがとうございました(^^♪ また何かありましたら宜しくお願いします。
guest

あなたの回答

tips

太字

斜体

打ち消し線

見出し

引用テキストの挿入

コードの挿入

リンクの挿入

リストの挿入

番号リストの挿入

表の挿入

水平線の挿入

プレビュー

15分調べてもわからないことは
teratailで質問しよう!

ただいまの回答率
85.35%

質問をまとめることで
思考を整理して素早く解決

テンプレート機能で
簡単に質問をまとめる

質問する

関連した質問