redis in python:setbit函數的簡單介紹__函數

來源:互聯網
上載者:User

setbit函數的功能是對 key 所儲存的字串值,設定或清除指定位移量上的位(bit)。

在Redis中,儲存的字串是以二級制的形式進行儲存的。比如字串“AA”的二進位形式為01000001 01000001,一共16位,每個字母用8位二進位表示。

setbit(name, offset, value):offset是從最高位算起的,最高位為第0位,比如A的ascii碼為65,二進位為01000001,第0位的值為0,第7位的值為1。

所以如果想把“A”變成“B”就是把二進位01000001變成二進位01000010,做法是把第6位設定為1,第7位設定為0.

代碼如下:

>>> import redis>>> r = redis.Redis()>>> r.set('xie', 'A')True>>> r.setbit('xie', 6, 1)0>>> r.setbit('xie', 7, 0)1>>> r.get('xie')b'B'>>>


把“AA”變成“BB”就是把二進位 0 1000001 01000001變成01000010 0100010,做法是把第6位設定為1,第7位設定為0,把第14位設定為1, 第15位設定為0。

代碼如下:

>>> r.set('xie', 'AA')True>>> r.setbit('xie', 6, 1)0>>> r.setbit('xie', 7, 0)1>>> r.get('xie')b'BA'>>> r.setbit('xie', 14, 1)0>>> r.setbit('xie', 15, 0)1>>> r.get('xie')b'BB'>>>


聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在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.