Redis實踐 -位元影像

來源:互聯網
上載者:User

標籤:import   str   地址   port   for   client   ota   字串   bitmap   

主要是記錄一下Redis的setbit的用法。

  • 一個字串,我們如何用Redis的setBit儲存下來。
import org.junit.Test;import redis.clients.jedis.Jedis;import redis.clients.jedis.JedisPool;import redis.clients.jedis.JedisPoolConfig;import java.util.BitSet;public class BitMapTest {    private static final String REDIS_PATH="127.0.0.1"; //ip地址    private static final int REDIS_PORT=6379; //連接埠號碼    private static final String REDIS_AUTH="iostream";    private static final JedisPool jedisPool;    static {        //配置JedisPool        JedisPoolConfig config=new JedisPoolConfig();        config.setMaxTotal(10);        final int timeout=2000;        jedisPool=new JedisPool(config,REDIS_PATH,REDIS_PORT,timeout,REDIS_AUTH);    }    private static int pos=0; //pos是記錄下一個字元是從哪個開始的 假設第一個字元h第一個bit的pos是0,那麼第二個字元e的第一個bit的pos是8,累加上去的。    private static void solve(String binStr,Jedis jedis){        //因為我們用Integer.toBinaryString會省略高位的0        //所以我們需要把0先補上        StringBuilder sb=new StringBuilder();        if(binStr.length()<8){            for(int i=0;i<8-binStr.length();++i){                sb.append(0);            }            sb.append(binStr);        }        binStr=sb.toString();        for(int i=0;i<8;++i){            if(binStr.charAt(i)==‘0‘){                jedis.setbit("test",pos+i,false);            }else {                jedis.setbit("test",pos+i,true);            }        }        pos+=8;    }    public static void main(String[] args) {        Jedis jedis=jedisPool.getResource();        String s="hello";        try {            for (int i = 0; i < s.length(); i++) {                String binStr=Integer.toBinaryString(s.charAt(i));                  //將取ASCII編的值並轉化成二進位 一個char是兩個位元組(byte) 1byte=4bit 一個char有8bit 所以上限是127.                //byte和bit的區別要記得                solve(binStr,jedis);            }            System.out.println(jedis.get("test"));        }finally {            jedis.close();        }    }}

Redis實踐 -位元影像

相關文章

聯繫我們

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