V2EX = way to explore
V2EX 是一个关于分享和探索的地方
现在注册
已注册用户请  登录
Nicolay
V2EX  ›  PHP

这段 PHP 操作 redis 批量插入 zset 的代码的原理是什么?比 循环插入的效率要高吗?

  •  
  •   Nicolay · 2019-11-13 20:21:07 +08:00 · 5082 次点击
    这是一个创建于 1866 天前的主题,其中的信息可能已经有所发展或是发生改变。
    call_user_func_array(array($this->redis, 'sadd'), array('key', 0, 'we', 2, 'me', 3, 'td', 8, 'go'));
    8 条回复    2019-11-14 17:25:03 +08:00
    des
        1
    des  
       2019-11-13 21:13:48 +08:00 via Android
    请先搜索文档,关键词 redis sadd
    Nicolay
        2
    Nicolay  
    OP
       2019-11-13 21:28:23 +08:00
    @des 好的。
    Elethomdog
        3
    Elethomdog  
       2019-11-13 22:49:39 +08:00
    多此一举,其实就是 $this->redis->sadd('key', 0, 'we', 2, 'me', 3, 'td', 8, 'go')
    des
        4
    des  
       2019-11-13 22:58:00 +08:00 via Android
    @Elethomdog 这样调用是为了可变参数吧
    815979670
        5
    815979670  
       2019-11-13 22:59:38 +08:00
    我插入一个 42 万的数组 foreach 插入 12 秒 批量插入 1 秒 2 秒的时间 具体原理也没怎么深追 我插入的是哈希类型
    zuokanyunqishi
        6
    zuokanyunqishi  
       2019-11-13 23:37:18 +08:00 via Android
    因为 sadd 是在一次连接里添加到 redis 服务器的吧
    cullen911
        7
    cullen911  
       2019-11-13 23:38:21 +08:00
    当然要快,这是循环操作 n 次 和 把元素放到数组里面操作一次的区别, 数量大的差别很大
    zxc12300123
        8
    zxc12300123  
       2019-11-14 17:25:03 +08:00
    1 次连接和 n 次连接的区别?
    关于   ·   帮助文档   ·   博客   ·   API   ·   FAQ   ·   实用小工具   ·   952 人在线   最高记录 6679   ·     Select Language
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.5 · 22ms · UTC 19:25 · PVG 03:25 · LAX 11:25 · JFK 14:25
    Developed with CodeLauncher
    ♥ Do have faith in what you're doing.