問題タブ [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.
php - PHP セッションの認証キーを Redis に安全に保存する
サイトがセッション データを保存するために (リモートで) redis を使用しており、その redis ストアが認証キーによって保護されているとします。
したがって、php.ini では、phpredis を使用して、次のように設定します。
これをもう少し安全にする方法はありますか?phpinfo(); を実行するサーバー上のすべてのユーザー。認証文字列を見ることができます...
php - クラスターへの phpRedis の移行とコンシステント ハッシュ
現在、PhpRedis
拡張機能を使用しており、コードは のクラスを使用して記述されてRedis
いPhpRedis
ます。しかし、現在、redis クラスターに移行しています。
クラス Redis を使用して redis クラスターに接続することは可能ですか? それとも、コードを書き直してクラス RedisArray を使用する必要がありますか?
一貫性のあるハッシュも必要です。この{user}:1
ようなキーを追加したので、後でコンシステント ハッシュを実行できます。
主な問題は、クラスを使用して記述されたすべてのコードを取得し、Redis
それを に変更することRedisArray
です。
私はredisが初めてなので、アドバイスをお願いします
ありがとう
php - redis を使用してメッセージ キューを実装する際のエラー、BLPOP を使用する際のエラー
Redis を使用してメッセージ キューを構築しようとしています。クライアントが新しいデータを送信するたびに、リストに追加されます。
これがそのコードです
現在、新しく到着したデータをポップして処理する別のスクリプトslave.phpがあります。slave.php のコード
slave.php が Apache で開始および停止するように、Apache の起動スクリプトを変更しました。それはうまくいきます。しかし、数分待った後、brPop はリッスンを停止し、次のようなエラー メッセージが表示されます。
ドキュメントによると、リストが空の場合、別のクライアントがキーの 1 つに対して LPUSH または RPUSH 操作を実行するまで、BLPOP/BRPOP は接続をブロックします。しかし、これは私の場合には起こりません。私の場合、brpop が接続をブロックすると、新しいデータがリストに到着しても再度リッスンしません。
これを機能させるには、どのような変更を加える必要がありますか?
php - php redisを使用してredisのすべてのキーを取得するにはどうすればよいですか?
https://github.com/nicolasff/phpredis拡張機能を使用して redis にアクセスしています。PHP コードから redis のすべてのキーを取得したいと考えています。次のコードを試しました:
ただし、シェルで次のコマンドを実行すると、結果が得られます。
PHPスクリプトから次の方法でキーとデータを設定できます。
KEYS *
phpredis を使用して redis から取得するには?
redis - 連想配列をRedisに保存する方法は? セットまたはハッシュまたはリスト?
Redis で利用可能なすべての保存オプションについて少し混乱しています。私は単純なことをしたいのですが、それを過度に設計したくありません。私はと働いていphpredis
ますRedis v2.8.6
。
保存する必要があるこの単純な連想配列があります。また、キーでアイテムを取得し、すべてのアイテムをループできる必要があります。
だから今までやっていたのはhash
型を使うことでした。次のように配列を保存します。
そのように、次のように簡単にキーにアクセスできました。
しかし今、私はそれを行う方法がわからないすべての投稿をループする必要があり、現在の構造でそれを行うことができるかどうか. post_id
すべての投稿をループできるようにするために、すべてを別のリストに保存する必要があるかどうかわかりませんか?
だから私の質問は、投稿のリストを保存するためにどのデータ型を使用すればよいですか?
ありがとう、マキシム
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 メンバーが追加されたので、何が最善の解決策なのか疑問に思っています。
それは...ですか:
または多分:
または最後に:
それとも私がまだ知らない何か?これを行うための最良の、より速い方法は何ですか?
php - redis に大量のデータを保存しているときにメモリが不足する
PHP Redis ( Predis )でこのクエリを実行しようとしています。
このコードには長い時間がかかりますが、メモリ不足になることはありません。また、php.ini
ファイルを編集して!に変更memory_limit
しました。5000M
しかし、その変更の後、私はまだこのエラーが発生しています:
致命的なエラー:許容メモリ サイズ xxxxxxxxxxxx を使い果たしました。
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 スモール インスタンスを使用しています。
スマートな解決策を教えてください。
前もって感謝します。