前提: 實際上, redis只支持5種數據類型. 並沒有bitmap. 也就是bitmap是基於redis的字符串類型的. 而一個字符串類型最多存儲512M.
首先: 計算機的單位換算先了解下
8 bit = 1byte
1024 byte = 1kb
1024 kb = 1Mb
其次:
我們使用的bitmap指令SETBIT key offset value, 這個指令就是將第offset設置成0或1. 比如 SETBIT ss 1000 1 //就是將1000位置爲1. 1 bit就是1位, 所以我們只要將512M換算成bit, 那麼就知道bitmap支持的最大設置長度了. 計算如下
8 * 1024 * 1024 * 512 = 2^32 (所以這個結果就是這麼來的)
怎麼計算自己的bitmap會大概佔用多大的存儲空間呢?
舉個栗子: 今有一個bitmap最大長度1024, 需要佔用多大的空間?
解: 長度1024也就是他需要1024個位(bit), 或者單位爲byte就是需要 1024 / 8, 即需要128byte