基於Redis bitmap實現開關配置功能

來源:互聯網
上載者:User

標籤:

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操作來說,記憶體配置可能造成Redis伺服器被阻塞。
Warning: 當產生一個很長的字串時,Redis 需要分配記憶體空間,該操作有時候可能會
造成伺服器阻塞(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

基於Redis bitmap實現開關配置功能

相關文章

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.