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!