zoukankan      html  css  js  c++  java
  • Redis Bitmap

    Redis提供对字符串的按位操作,位图把字符串抽象成一个bool类型的数组,可以进行按位操作

    比如说我有一个字符串“a” 那他的位图如下

    (位) 7 6 5 4 3 2 1 0
    (值) ‭0 1 0 0 0 0 0 1

    Redis中对位提供的操作有以下几种

    • setbit key offset value
    • getbit key offset
      • 127.0.0.1:6379> set k1 2
        OK
        127.0.0.1:6379> getbit k1 1
        (integer) 0
        127.0.0.1:6379> setbit k1 1 1
        (integer) 0
        127.0.0.1:6379> get k1
        "r"
      bitcount  key  [start] [end]
      • 127.0.0.1:6379> bitcount k1 0 7
        (integer) 4
      bittop 命令对于所给定的k1 k2 按位操作存入 destkey中
      • bittop and destkey k1 k2 .... 求交集
      • bittop or destkey k1 k2 ...   并集
      • bittop xor destkey k1 k2 ..  亦或
      • bit not destkey k1  取非
    • bitpos key targetbit start end 寻找在start和end范围中第一个 位与 targetbit 相等的位置。
    127.0.0.1:6379> bitpos k1 1            //不写范围 默认全部范围
    (integer) 1
    

      

    可以用于上限超大的连续性的数字编号统计,在不牺牲查询速度的前提下,缩小存储空间。

    如用户id的统计,统计当天内访问网站的用。

  • 相关阅读:
    操作符的详解
    一切皆对象
    对象导论
    mysql
    bootstrap学习
    素数筛选法
    python的urllib库
    是做应用还是搞算法?
    金山词霸笔试题目笔记
    双十一,更是技术的战争~~
  • 原文地址:https://www.cnblogs.com/chafanbusi/p/10699749.html
Copyright © 2011-2022 走看看