0

以下は私のphpスクリプトです。データベースからデータを選択し、setコマンドを使用して結果セット配列をredisキャッシュに保存していますが、 getコマンドを使用して取得しようとすると正確にデータを取得できません

<?php
    $redis = new Redis();
    $redis->connect('127.0.0.1', 6379);

    mysql_connect("localhost", "test", "testing123") or die(mysql_error());
    mysql_select_db("test") or die(mysql_error());

    $query = "select id from example where name = 'new_data'";
    $querykey = "KEY" . md5($query);

    echo $querykey;
    $result = $redis->get($querykey);
    echo "<pre>";
    print_r($result);

    if (!$result) {
        $result = mysql_fetch_array(mysql_query("select id from example where name = 'new_data'")) or die('mysql error');
        print_r($result);
        $redis->set($querykey, $result);
        print "got result from mysql\n";
        return 0;
    }

    print "got result from redis\n";
    return 0;
?>

print_r($result) を実行すると、 Arrayのみが返されます。アプローチの問題は何ですか、またはこれを行う他の方法はありますか。

どんな助けでも感謝します。ありがとうございました

4

2 に答える 2

1

キーに対応する結果セットを Redis に保存する場合は、文字列を json_encode するか、配列の結果を SET として Redis に保存します。

于 2014-06-09T16:47:49.653 に答える
1

私の知る限り、Redis set 関数に文字列を渡す必要があります。しかし、配列を渡しています。

于 2014-01-22T13:18:00.710 に答える