如何使用redis-cli填充Redis数据库,填充的数据是数百MB大小的虚假数据?

12

我正在研究redis监控方面的内容。到目前为止,我已经确定了以下用于监控redis的指标:

  • 内存使用量
  • 吞吐量
  • 延迟
  • 连接数
  • 复制

对于这个我是个新手,我试图通过redis-cli用虚假数据填充redis:

for i in `seq 10000000`; do redis-cli SET users:app "{id: '$i', name: 'name$i', address: 'address$i' }" ; done

但它无法满足快速填充redis数据库的需求...

此外,我需要一些关于延迟和吞吐量监控方面的帮助。我知道它们的意思,但是不知道如何衡量它们... 我在redis-cli info的输出中没有看到任何相关信息。

感谢您的支持和指导 :D


延迟和吞吐量取决于您正在运行的命令以及从哪里运行它们 - 您是尝试合成负载压力还是检查真实应用程序?对于负载压力测试,请使用redis-benchmark(Redis项目的一部分)或memtier_benchmark(来源:https://github.com/redislabs/memtier_benchmark)。 - Itamar Haber
4个回答

12

使用未记录的DEBUG POPULATE命令。

DEBUG POPULATE count [prefix] [size]:创建名为key:<num>count个字符串键。如果指定了前缀,则使用该前缀代替key前缀。

值以value:<num>开头,如果需要,可以用空字符填充直到达到给定的size(如果已指定)。

> DEBUG POPULATE 5 test 1000000
OK
> KEYS *
1) "test:3"
2) "test:1"
3) "test:4"
4) "test:2"
5) "test:0"
> STRLEN test:0
(integer) 1000000
> STRLEN test:4
(integer) 1000000
> GETRANGE test:1 0 10
"value:1\x00\x00\x00\x00"

似乎这个命令不支持 Redis 集群。 - chris
你看到了什么问题? - LeoMurillo
这个命令可以运行,但不会遵守maxmemory设置,所以需要小心使用。 - undefined

1
要实现“快速填充”,请按照批量插入文档中的说明操作 - 主要是在预先准备好的数据文件上使用--pipe指令。

1

在@leomurillo之后

我成功地使这个命令工作,没有最后一个参数,而且我找不到这个未记录的命令的文档 :) 127.0.0.1:6379> DEBUG POPULATE 10000000 PHPREDIS_SESSION OK (15.61s) 127.0.0.1:6379> dbsize (integer) 10000334


0

使用Python

redis-dummy-data-generator.py,生成了10000个键值对

#!/usr/bin/python
for i in range(10000):
  print 'set name'+str(i),'helloworld'

运行生成器脚本并将输出存储在redis_commands.txt文件中

python redis-dummy-data-generator.py > redis_commands.txt

将生成的虚拟数据加载到redis服务器中

redis-cli -a mypassword -h localhost -p 6379 < redis_commands.txt


网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接