1000倍py 写数据进redis耗时对比

普通线程池
def test_rpush_redis(msg):
    pool = redis.ConnectionPool(host="127.0.0.1", port=6379, db=0, max_connections=10)
    redis.StrictRedis(connection_pool=pool).rpush("log-msg", msg)


for i in range(10):
    start_time = time.time()
   test_rpush_redis(msg)
    print(time.time() - start_time

平均写入1条/4s


image.png
采用信号量+批量方式
image.png
q = deque()
queue_signal = signal("queue_signal")
cycle_num = 0


@queue_signal.connect
def rpush_data(data_list):
    try:
        msg_key = "log-msg"
        pool = redis.ConnectionPool(host="127.0.0.1", port=6379, db=0, max_connections=10)
        r = redis.StrictRedis(connection_pool=pool)
        [r.rpush(msg_key, i) for i in data_list]
    except Exception as e:
        log('error', str(e))


def is_list_max(list_max=3000):

    if q.__len__() >= list_max:
        start_time = time.time()
        data_list = [q.pop() for i in range(list_max-1)]
        # print(data_list)
        # rpush_data(data_list)
        queue_signal.send(data_list)
        print(time.time() - start_time)
    # else:
    #     global cycle_num
    #     cycle_num += 1
        # print(cycle_num)

最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
【社区内容提示】社区部分内容疑似由AI辅助生成,浏览时请结合常识与多方信息审慎甄别。
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

相关阅读更多精彩内容

  • 八爪鱼采集器 2018-02-08星夜读书区 今天,星夜小编为大家讲解八爪鱼采集器是什么、八爪鱼采集器怎么用和八爪...
    最美有品阅读 2,831评论 0 2
  • 心跳之旅—💗—iOS用手机摄像头检测心率(PPG) http://mp.weixin.qq.com/s?__biz...
    LeafRead阅读 874评论 0 1
  • 睡了,晚安。 想你,还在。 爱你,永远。
    xiao钱钱阅读 183评论 0 0
  • 明明是十月,却像寒冬一样冷。 云层变厚,路边的法国梧桐在寒风中簌簌的落下金黄的叶子,静静落在路中央形态还是那么美好...
    田舍娘阅读 439评论 0 0
  • 越作的人越有人爱? 总是会看到有人说,越喜欢作死的人,就越有人疼爱。 越是懂事乖巧,别人就越不把你当成一回事。 可...
    微风之美阅读 495评论 0 1

友情链接更多精彩内容