【问题标题】:how to get array value from redis cache key如何从redis缓存键中获取数组值
【发布时间】:2013-09-26 05:52:55
【问题描述】:

下面是我的 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。方法中的问题是什么,或者是否有任何其他方法可以做到这一点。

任何帮助表示赞赏。 谢谢

【问题讨论】:

    标签: php caching redis query-cache


    【解决方案1】:

    如果你想在 Redis 中存储一个与键对应的结果集,要么对字符串进行 json_encode,要么将数组结果作为 SET 存储在 Redis 中。

    【讨论】:

      【解决方案2】:

      据我所知,您必须将字符串传递给 Redis 的 set 函数。但是你传递的是一个数组。

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 2019-09-18
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 2015-05-17
        • 2017-02-15
        相关资源
        最近更新 更多