请问 Python 操作 Redis 写入数据每秒 5W 算正常么?

2021-10-06 22:01:50 +08:00
 Phishion

代码如下,使用了 pipeline,10W 数据执行下来要 2s,这个算是正常速度么?请问还有啥跑更快的办法么?


from datetime import datetime
from redis import StrictRedis
redis = StrictRedis(host='redis', port=6379, db=0)

def test_redis(count):
    pipeline = redis.pipeline()
    process_start = datetime.now().timestamp()
    for value in range(1, count):
        user_key = 'user:id:' + str(value)
        pipeline.set(user_key, 'bar')
    pipeline.execute()
    process_elapsed = round(datetime.now().timestamp() - process_start, 2)
    print("\nDone ({}s).\n".format(process_elapsed))
    
test_redis(100000)
2226 次点击
所在节点    程序员
8 条回复
srx1982
2021-10-06 23:02:13 +08:00
换个解释器试试
superrichman
2021-10-06 23:02:25 +08:00
Done (0.96s).
你可能需要内存超频 /doge
Phishion
2021-10-06 23:10:59 +08:00
@superrichman 感谢测试,我用的 VPS, 只能给啥用啥,你这个是挺快的
youngce
2021-10-06 23:22:24 +08:00
1.24s

来自普通办公笔记本
Phishion
2021-10-06 23:43:38 +08:00
@youngce 谢谢测试,可能是某云的 VPS 内存性能实在不行,也可能是我 Redis 跑在 Docker 上的原因(我没测试是不是有关联)
notyss
2021-10-07 05:36:19 +08:00
你是想测试 redis 还是 python 还是 python 的 redis library
zhchyu999
2021-10-07 10:18:18 +08:00
测试下 redis 的 redis-benchmark 测试下 redis 的性能,看看瓶颈在哪里
Phishion
2021-10-07 11:18:15 +08:00
@notyss 我就想测试一下在项目中实际的写入速度,脱离 Python 没啥意义

这是一个专为移动设备优化的页面(即为了让你能够在 Google 搜索结果里秒开这个页面),如果你希望参与 V2EX 社区的讨论,你可以继续到 V2EX 上打开本讨论主题的完整版本。

https://www.v2ex.com/t/806138

V2EX 是创意工作者们的社区,是一个分享自己正在做的有趣事物、交流想法,可以遇见新朋友甚至新机会的地方。

V2EX is a community of developers, designers and creative people.

© 2021 V2EX