redis键的管理

作者: 打伞的Fish | 来源:发表于2018-06-16 11:10 被阅读15次

    通过这篇文章你会知道如下:

    • 键过期时间如何设置成毫秒级?时间戳形式?
    • 如何显示键的剩余时间为毫秒级?
    • 如何通过通配符遍历键 ?
    • 如果是字符串的类型的键,set会将过期时间清除
    • 如何清除键的过期时间

    键的过期

    expire key seconds: 键在seconds秒后过期。
    expireat key timestamp: 键在秒级时间戳timestamp后过期。
    
    ttl与pttl区别
    毫秒级

    清除键的过期时间

    persist key
    

    对字符串类型的键set会清除设置的过期时间

    遍历键

    通过keys 后面可以接pattern,pattern使用的是glob风格的通配符
    *代表匹配任意字符。
    ?代表匹配一个字符。
    []代表匹配部分字符, 例如[1, 3]代表匹配1, 3, [1-10]代表匹配1到10
    的任意数字。
    ·\x用来做转义, 例如要匹配星号、 问号需要进行转义。


    glob语法

    删除以video开头的键

    redis-cli keys video* | xargs redis-cli del
    

    渐进式遍历键

    scan cursor [match pattern] [count number]
    
    • cursor是必需参数, 实际上cursor是一个游标, 第一次遍历从0开始, 每次scan遍历完都会返回当前游标的值, 直到游标值为0, 表示遍历结束。
    • match pattern是可选参数, 它的作用的是做模式的匹配, 这点和keys的模式匹配很像。
    • count number是可选参数, 它的作用是表明每次要遍历的键个数, 默认值是10, 此参数可以适当增大
    • 返回结果分为两个部分: 第一个部分6就是下次scan需要的cursor, 第二个部分是10个键
    • 不足
      渐进式遍历可以有效的解决keys命令可能产生的阻塞问题, 但是scan并非完美无瑕, 如果在scan的过程中如果有键的变化(增加、 删除、 修改) ,164那么遍历效果可能会碰到如下问题: 新增的键可能没有遍历到, 遍历出了重复的键等情况, 也就是说scan并不能保证完整的遍历出来所有的键, 这些是我们在开发时需要考虑的

    相关文章

      网友评论

        本文标题:redis键的管理

        本文链接:https://www.haomeiwen.com/subject/dwoveftx.html