一般为了方便管理 redis 缓存,我们通过 : 来分隔不同的 key 来进行存储缓存,这样方便查看。
例如:
game:upload_role:1000
game:member_info:2000
game:member_info:state_info:3000
上面的这种结构在 Redis Desktop Manager 中就会显示如下:
我们可以通过 keys 命令来获取 redis 里的所有 key。但这些 key 是没有层次的,如何生成?
只能通过 : 分隔符来处理各 key 的上下层关系。
代码如下:
function relationCache($keys, &$index, &$index_tree)
{
$result = [];
if ($keys) {
foreach ($keys as $key) {
$arr = explode(':', $key);
$len = count($arr);
for ($ix = 0; $ix < $len; $ix++) {
$cur_key = implode(':', array_slice($arr, 0, $ix + 1));