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腳本之前,我們需要知道即使不進入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批量產生數據的詳細內容。更多資訊請關注PHP中文網其他相關文章!