zoukankan      html  css  js  c++  java
  • 基于Redis bitmap实现开关配置功能

    作者:zhanhailiang 日期:2014-12-21
    

    bitmap api

    SETBIT key offset value
    对key所储存的字符串值,设置或清除指定偏移量上的位(bit)。
    位的设置或清除取决于value參数,能够是0也能够是1。
    当key不存在时,自己主动生成一个新的字符串值。
    字符串会进行伸展(grown)以确保它能够将value保存在指定的偏移量上。
    当字符串值进行伸展时,空白位置以0填充。
    offset參数必须大于或等于0,小于2^32(bit映射被限制在512MB之内)。
    返回值: 指定偏移量原来储存的位。
    Warning: 对使用大的offset的SETBIT操作来说,内存分配可能造成Redisserver被堵塞。
    Warning: 当生成一个非常长的字符串时,Redis 须要分配内存空间,该操作有时候可能会
    造成server堵塞(block)。在2010年的Macbook Pro上,设置偏移量为536870911(512MB内
    存分配),耗费约300毫秒,设置偏移量为134217728(128MB内存分配),耗费约80毫秒,
    设置偏移量33554432(32MB内存分配),耗费约30毫秒,设置偏移量为8388608(8MB内存分配),
    耗费约8毫秒。

    GETBIT key offset
    对key 所储存的字符串值,获取指定偏移量上的位(bit)。
    当offset比字符串值的长度大,或者key不存在时,返回0。
    返回值:字符串值指定偏移量上的位(bit)。

    需求场景

    在非常多业务场景中,我们都须要针对非常多功能实现配置,比方下面场景:

    1. 新增某个功能, 希望有开关能够控制是否开启该功能;
    2. 游戏上线某个新功能,希望引导用户去打开该功能,须要诱导用户,比方打开该功能,能够获取XX奖励,此时须要标记位来记录领奖记录;

    代码实现

    https://github.com/billfeller/billfeller.github.io/blob/master/code/IBit.php

  • 相关阅读:
    2020-01月-02月
    Work needing Technologies
    gcc和 gdb工具(转)
    pyenv and grunt-contrib-testem
    Statistics Books
    HTML5学习--SVG全攻略(基础篇)
    一个完整的学院网站实现过程
    JavaScript 常用单词整理
    一张图教会CSS3倒影
    Python大数据处理案例
  • 原文地址:https://www.cnblogs.com/gcczhongduan/p/4199519.html
Copyright © 2011-2022 走看看