問題タブ [phpredis]

For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.

0 投票する
3 に答える
1906 参照

php - PHP セッションの認証キーを Redis に安全に保存する

サイトがセッション データを保存するために (リモートで) redis を使用しており、その redis ストアが認証キーによって保護されているとします。

したがって、php.ini では、phpredis を使用して、次のように設定します。

これをもう少し安全にする方法はありますか?phpinfo(); を実行するサーバー上のすべてのユーザー。認証文字列を見ることができます...

0 投票する
1 に答える
2145 参照

php - クラスターへの phpRedis の移行とコンシステント ハッシュ

現在、PhpRedis拡張機能を使用しており、コードは のクラスを使用して記述されてRedisPhpRedisます。しかし、現在、redis クラスターに移行しています。

クラス Redis を使用して redis クラスターに接続することは可能ですか? それとも、コードを書き直してクラス RedisArray を使用する必要がありますか?

一貫性のあるハッシュも必要です。この{user}:1ようなキーを追加したので、後でコンシステント ハッシュを実行できます。

主な問題は、クラスを使用して記述されたすべてのコードを取得し、Redisそれを に変更することRedisArrayです。

私はredisが初めてなので、アドバイスをお願いします

ありがとう

0 投票する
3 に答える
2570 参照

php - redis を使用してメッセージ キューを実装する際のエラー、BLPOP を使用する際のエラー

Redis を使用してメッセージ キューを構築しようとしています。クライアントが新しいデータを送信するたびに、リストに追加されます。

これがそのコードです

現在、新しく到着したデータをポップして処理する別のスクリプトslave.phpがあります。slave.php のコード

slave.php が Apache で開始および停止するように、Apache の起動スクリプトを変更しました。それはうまくいきます。しかし、数分待った後、brPop はリッスンを停止し、次のようなエラー メッセージが表示されます。

ドキュメントによると、リストが空の場合、別のクライアントがキーの 1 つに対して LPUSH または RPUSH 操作を実行するまで、BLPOP/BRPOP は接続をブロックします。しかし、これは私の場合には起こりません。私の場合、brpop が接続をブロックすると、新しいデータがリストに到着しても再度リッスンしません。

これを機能させるには、どのような変更を加える必要がありますか?

0 投票する
3 に答える
34452 参照

php - php redisを使用してredisのすべてのキーを取得するにはどうすればよいですか?

https://github.com/nicolasff/phpredis拡張機能を使用して redis にアクセスしています。PHP コードから redis のすべてのキーを取得したいと考えています。次のコードを試しました:

ただし、シェルで次のコマンドを実行すると、結果が得られます。

PHPスクリプトから次の方法でキーとデータを設定できます。

KEYS *phpredis を使用して redis から取得するには?

0 投票する
3 に答える
46562 参照

redis - 連想配列をRedisに保存する方法は? セットまたはハッシュまたはリスト?

Redis で利用可能なすべての保存オプションについて少し混乱しています。私は単純なことをしたいのですが、それを過度に設計したくありません。私はと働いていphpredisますRedis v2.8.6

保存する必要があるこの単純な連想配列があります。また、キーでアイテムを取得し、すべてのアイテムをループできる必要があります。

だから今までやっていたのはhash型を使うことでした。次のように配列を保存します。

そのように、次のように簡単にキーにアクセスできました。

しかし今、私はそれを行う方法がわからないすべての投稿をループする必要があり、現在の構造でそれを行うことができるかどうか. post_idすべての投稿をループできるようにするために、すべてを別のリストに保存する必要があるかどうかわかりませんか?

だから私の質問は、投稿のリストを保存するためにどのデータ型を使用すればよいですか?

ありがとう、マキシム

0 投票する
2 に答える
4043 参照

redis - SET を SORT して完全な HASH を取得する方法

私はRedisが初めてで、今まで気に入っていると言わざるを得ません:)

より効率的な方法で解決する方法がわからない問題にぶつかっています。私はのを持っていSETますHASH。それぞれHASHが投稿について説明します。

を作成して保存するコードは次のHASHとおりです。

さて、以前は投稿のすべての属性を(json_encoded)のdataフィールドに格納していて、次のような情報を取得していました。HASH

それはうまく機能していました、私はすべての投稿情報を持っていました:)

しかし、Redis (同時更新) で投稿を更新するときに競合が発生したため、投稿のすべての属性を とは別にするfieldsことにしHASH、競合の問題を修正しました。

今、私が抱えている問題は、HASHからを取得することSETです。次のようにすべてのフィールドを指定する必要がありますか?

HASHまたは、内で直接フルを取得する別の方法はありSETますか?

聞いたことpipelineがありますが、それが私が探しているものであるかどうか、また使用できるかどうかはわかりませんphpredis

乾杯、マキシム


アップデート

私は自分自身を明確に説明したかどうか確信が持てません。セット ( ) にいくつかの要素がありpost_idます。の最初の 10 件の投稿を取得したいのですがSET、これは、オブジェクトを構築するために 10件hash(すべてのフィールドと値を含む) が必要であることを意味しpostます。

以前はすべてのオブジェクト情報をハッシュ ( data) の 1 つのフィールドに格納していましたが、現在はオブジェクトの属性ごとに 1 つのフィールドがあります。

前:

myHash:<id> data

今:

myHash:<id> id "1234" created "2010-01-01" author "John"

SORT次のように、トップ 10 の投稿を取得する (そして簡単にページ付けする) ために使用する前に、次のようにします。

ハッシュに X メンバーが追加されたので、何が最善の解決策なのか疑問に思っています。

それは...ですか:

または多分:

または最後に:

それとも私がまだ知らない何か?これを行うための最良の、より速い方法は何ですか?

0 投票する
1 に答える
1238 参照

php - redis に大量のデータを保存しているときにメモリが不足する

PHP Redis ( Predis )でこのクエリを実行しようとしています。

このコードには長い時間がかかりますが、メモリ不足になることはありません。また、php.iniファイルを編集して!に変更memory_limitしました。5000M

しかし、その変更の後、私はまだこのエラーが発生しています:

致命的なエラー:許容メモリ サイズ xxxxxxxxxxxx を使い果たしました。

0 投票する
1 に答える
2852 参照

php - redis-server が 5 分ごとにクラッシュする

mysql からデータを取得する phpredis を使用してハッシュ エントリを設定しています。アクセスを高速化するためにMySQLデータベースからredisに一部のデータを移行しているため、redisで行っているデータ/変更の量が多いため(4 GB)、5〜10分ごとにクラッシュします(変数)。

ログには次のように書かれています:

これにより、redisを何度も再起動します。これは非常に苦痛で、すでにvm.overcommitを1に設定しています。

Ubuntu 12.04 LTS で RAM 1.6 GB の AWS ec2 スモール インスタンスを使用しています。

スマートな解決策を教えてください。

前もって感謝します。