私は、全体の間違った方法で物事について行くかもしれない、私は物事を自分で難しくしている疑いがあります。それは私が基礎を学び、私がどのように働くと思うかの結果を達成しようとしていると言われています。Laravelのループオーバーコレクションとレディスを使用してキーを保存
私は4,000万レコードを含むMySQLにかなりのサイズのデータベースを持っています。私はまだRedisののフル要旨とインポート方法を知っていると私は、基本的な方法を考え、正しいデータ構造を有するないので
:laravel eloquent
を使用して
クエリのMySQL、結果をループとにredis set
を呼び出します値をキーに格納します。
ここにあるのは、データベースは郵便番号と住所が妥当で、各郵便番号には多くの住所が含まれています。ここでは、
$addresses = UkAddresses::where('postcode', 'N10AB')->get();
$contCount = count($addresses);
for ($x = 0; $x < $contCount; $x++) {
$postcode = $addresses[$x]['postcode'];
$redis = Redis::connection();
$redis->set('postcodes.' . $postcode, json_encode(array(
'postcode' => $postcode,
'addresses' => array(
$addresses[$x]['address']
)
)
)
);
$response = $redis->get('postcodes.'.$postcode);
$response = json_decode($response);
}
すべてはそれだけでその郵便番号のための単一のアドレスを挿入から離れて正常に動作します私はget postcode.N10AB
{"postcode":"N10AB","addresses":["N10AB, Arena Enterprises UK Ltd, Flat 37, Selkirk House, Bemerton Estate, London "]}
私の推測を使用した場合のサンプルインサートである:ここで
は、これまでの私のコードですLaravelから返された配列をループするときに私のループに何か問題がありますか?それが結果の1つだけがRedisに渡された理由ですか?ここは、私がループしてRedisに挿入しようとしているMySQLから返された配列です。
[0]
postcode "N10AB"
address "N1 0AB, Arena Enterprises UK Ltd, Flat 37, Selkirk House, Bemerton Estate, London "
[1]
postcode "N10AB"
address "N1 0AB, Dumas Services, Flat 10, Selkirk House, Bemerton Estate, London "
最初に 'first'がnullを返すことがあります。nullの場合は、郵便番号にアクセスしようとします。変数として郵便番号を入力すると、結果セットから郵便番号を抽出するポイントは何ですか? –