redis批量獲取多個string key的set命令

場景

記錄下開發中測試數據遇到的問題,開發環境想全量跑下數據驗證數據的正確性,但每個賬戶的token存貯在redis中string類型,格式如:set TOKEN_{account_id},一個個獲取要崩潰啊。我想獲取到所有的賬戶,設置到開發環境中比較費事。

操作

  • 先獲取線上的token
# 獲取到所有的token keys
scan 0 match TOKEN_* 1000

# 根據keys獲取所有的值
mget TOKEN_1 TOKEN_2 ...
  • 得到所有的set命令

    新建t.php文件

    <?php
    
    $keys = ["TOKEN_16875607","TOKEN_19099247","TOKEN_14209713","TOKEN_17104161","TOKEN_17278520","TOKEN_9085127"];
    $values = ["11d2d1fbd4b791578228987bd36e5813","a47cb64cd5b11b4ea3826b888d281440","180ce74f55136526667539aa57392554","3014cbf71a47e24d777017e3c8a7108e","da530dcb719b68d0c27006b269637580"];
    
    foreach ($keys as $k=>$v){
        if(!$values[$k]) continue;
        echo "SET {$v} {$values[$k]}\n";
    }
    

    執行php t.php >> t.txt 2>&1,從t.txt中複製set命令在開發環境redis客戶端執行。

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章