Redis批量生成數據的實現

Redis批量生成數據

從研究Redis開始,一直會有一些Redis鍵值數量或者鍵值大小的場景要求,顯然我們不可能一條一條記錄的插入,那不是人都要沒瞭,下面介紹兩種方法。

Redis自帶Debug方法

redis提供的debug命令可以自己研究下,裡面涉及到模擬redis異常場景如oom、宕機、命令執行失敗,redis重載rdb文件、aof文件,模擬redis命令耗時等等,我們可以通過DEBUG help查看詳情,如下所示

這裡需要用到的就是debug populate命令,使用如下所示

#### 後面數量代表創建多少個鍵值
127.0.0.1:6379> DEBUG POPULATE 1000
OK
127.0.0.1:6379> DBSIZE
(integer) 1000
127.0.0.1:6379>
127.0.0.1:6379> info memory
# Memory
used_memory:974368
used_memory_human:951.53K
used_memory_rss:5234688
used_memory_rss_human:4.99M

### 查看生成鍵值(生成時沒有指定默認以key做為前綴)
127.0.0.1:6379> keys *
     1) "key:32201"
     2) "key:59146"
     3) "key:10551"
     ......
127.0.0.1:6379> get key:796
"value:796"

Shell腳本

使用shell腳本前我們需要知道,不用進入redis的命令行我們一樣可以插入redis數據,如下所示

### 如果使用默認端口可以直接采用以下命令,如果不是默認端口或默認ip,需要重新指定如下
### redis-cli -c -h 127.0.0.1 -p 7000
[root@zzf993 bin]# ./redis-cli set name zhangsan
OK
### 到redis中查看
127.0.0.1:6379> keys *
1) "name"
127.0.0.1:6379>
127.0.0.1:6379> get name
"zhangsan"

有瞭上面的知識,我們造數據就輕而易舉瞭,我們采用shell腳本循環就可以解決問題

批量造1000個鍵值的key

#!/bin/bash
### 需要轉到redis-cli的目錄
cd /opt/redis/redis-6.0.6/bin/

for i in {1..10000}
do
  echo "key${i} ${i}"
  ### 如果采用默認端口而且在本機可以這樣做,不是默認端口或者本機需要指定
  ### redis-cli -c -h 127.0.0.1 -p 7000
  redis-cli set key${i} ${i}
done

造一個bigkey的測試數據

#!/bin/bash
### 需要轉到redis-cli的目錄
cd /opt/redis/redis-6.0.6/bin/

for i in {1..10000}
do
  echo "key${i} ${i}"
  redis-cli  hset obj  key${i} ${i}
done

使用shell腳本時需要註意,需要保證當前用戶有可執行權限,如果不太情況的可以直接賦予所有權限如下所示

到此這篇關於Redis批量生成數據的實現的文章就介紹到這瞭,更多相關Redis批量生成數據內容請搜索WalkonNet以前的文章或繼續瀏覽下面的相關文章希望大傢以後多多支持WalkonNet!

推薦閱讀: