• 首页
  • vue
  • TypeScript
  • JavaScript
  • scss
  • css3
  • html5
  • php
  • MySQL
  • redis
  • jQuery
  • xdel 命令

    从指定流中移除指定的条目,并返回成功删除的条目的数量。在传递的ID不存在的情况下,返回的数量可能与传递的ID数量不同。

    语法

    XDEL key ID[ID ...]

    key:队列名称。ID:消息 ID

    返回值

    删除的条目数量。

    理解删除条目的底层细节

    通常,你可能将Redis流想象为一个仅附加的数据结构,但是Redis流是存在于内存中的,所以我们也可以删除条目。

    Redis流以一种使其内存高效的方式表示:使用基数树来索引包含线性数十个Stream条目的宏节点。通常,当你从Stream中删除一个条目的时候,条目并没有真正被驱逐,只是被标记为删除。最终,如果宏节点中的所有条目都被标记为删除,则会销毁整个节点,并回收内存。这意味着如果你从Stream里删除大量的条目,比如超过50%的条目,则每一个条目的内存占用可能会增加,因为Stream将会开始变得碎片化。然而,流的表现将保持不变。

    例子

    redis> XADD mystream * a 1
    1538561698944-0
    
    redis> XADD mystream * b 2
    1538561700640-0
    
    redis> XADD mystream * c 3
    1538561701744-0
    
    redis> XDEL mystream 1538561700640-0
    (integer) 1
    
    redis> XRANGE mystream - +
    1) 1) 1538561698944-0
       2) 1) "a"
          2) "1"
    2) 1) 1538561701744-0
       2) 1) "c"
          2) "3"
    

    上篇:xtrim 命令

    下篇:xlen 命令