亚洲香蕉成人av网站在线观看_欧美精品成人91久久久久久久_久久久久久久久久久亚洲_热久久视久久精品18亚洲精品_国产精自产拍久久久久久_亚洲色图国产精品_91精品国产网站_中文字幕欧美日韩精品_国产精品久久久久久亚洲调教_国产精品久久一区_性夜试看影院91社区_97在线观看视频国产_68精品久久久久久欧美_欧美精品在线观看_国产精品一区二区久久精品_欧美老女人bb

首頁 > 數據庫 > Redis > 正文

redis緩存的簡單操作(get、put)

2020-10-28 21:35:33
字體:
來源:轉載
供稿:網友

本文介紹簡單的redis緩存操作,包括引入jedisjar包、配置redis、RedisDao需要的一些工具、向redis中放數據(put)、從redis中取數據(get)、訪問redis時的邏輯

一、引入jedis jar包

<!-- java訪問redis的jar包jedis --><dependency> <groupId>redis.clients</groupId> <artifactId>jedis</artifactId> <version>2.7.3</version></dependency><!-- protostuff序列化依賴 --><dependency> <groupId>com.dyuproject.protostuff</groupId> <artifactId>protostuff-core</artifactId> <version>1.0.8</version></dependency><dependency> <groupId>com.dyuproject.protostuff</groupId> <artifactId>protostuff-runtime</artifactId> <version>1.0.8</version></dependency>

注意:為什么要引入序列化依賴jar包protostuff?

1)從redis中取出的數據是序列化的,我們需要使用protostuff的反序列化操作,講序列化對象轉化成我們的需要的對象

2)向redis中放入數據時,我們需要先使用protostuff的序列化操作,將對象轉化成序列化對象,才能放入redis

二、在spring配置文件中注入redis,放入spring的ioc容器

<!-- 注入redis dao --><bean id="redisDao" class="org.demo.dao.cache.RedisDao">  <constructor-arg index="0" value="localhost"></constructor-arg>  <constructor-arg index="1" value="6379"></constructor-arg></bean>

注意:

1)這里的RedisDao路徑是我的包路徑,注意你在配置的時候應使用你自己的路徑

2)這里使用本地的redis服務localhost

3)redis服務的默認端口是6379

三、RedisDao需要的一些工具

//redis連接池 private final JedisPool jedisPool;//根據對象的字節碼文件,生成空對象 private RuntimeSchema<Object> schema = RuntimeSchema.createFrom(Object.class); //Object.class:獲取對象的字節碼  public RedisDao(String ip, int port){  jedisPool = new JedisPool(ip, port); }

注意:

1)RedisDao需要redis的連接池JedisPool,就好比JDBC的數據庫連接池一樣。我們在RedisDao的構造器中會初始化這個連接池

2)我們需要一個可以根據對象的字節碼文件生成空對象的工具 RuntimeSchema。你要使用什么對象,你就在Object的位置寫入你的對象(Object.class:獲取對象的字節碼文件)

3)連接池JedisPool的初始化需要兩個參數:ip、port

四、向redis中放數據(put)

//將對象緩存到redis public String putObject(Object obj){  //緩存邏輯:Object --> 序列化 --> byte[] --> 緩存到redis  try {   Jedis jedis = jedisPool.getResource(); //獲取redis的連接對象,相當于JDBC的connection   try{    String key = "Object:"+obj.getId();    //進行序列化    byte[] bytes = ProtostuffIOUtil.toByteArray(seckill, schema,       LinkedBuffer.allocate(LinkedBuffer.DEFAULT_BUFFER_SIZE)); //如果對象過大,會進行緩沖    //開始緩存    int timeout = 60*60; //設置超時時間 一小時,通過超時維護一致性    String result = jedis.setex(key.getBytes(), timeout, bytes);    return result;   }finally{    jedis.close();   }  } catch (Exception e) {   e.printStack();  }  return null; }

注意:

1)緩存邏輯:Object --> 序列化操作 --> byte[] --> 寫入redis。也就是先把對象序列化,再寫入redis!

2)我們在操作redis之前必須先拿到redis的連接對象,從連接池拿

五、從redis中取數據(get)

 //從redis緩存中查詢 public Object getObject(long id){  //redis操作邏輯  try {   Jedis jedis = jedisPool.getResource(); //緩存連接對象,相當于數據庫連接對象connection   try {    String key = "Object:"+id;    //實體對象并沒有實現內部序列化操作    //緩存邏輯:getByte[] --> 反序列化 --> Object    byte[] bytes = jedis.get(key.getBytes()); //從jedis中獲取目標對象的序列化對象數組    if(bytes != null){     //反序列化邏輯     Object obj = schema.newMessage(); //通過schema生成一個新的空對象     ProtostuffIOUtil.mergeFrom(bytes, obj, schema); //進行反序列化操作     return obj;    }       } finally {    jedis.close();   }      } catch (Exception e) {        e.printStack();  }  return null; }

注意:

1)取數據邏輯:redis --> 得到byte[] --> 反序列化 --> Object

2)我們在放數據的時候,是以鍵值對的形式:id --> obj。我們在取數據的時候,就是根據id來取的

六、查詢redis時的邏輯

偽代碼:

get form redis_cache    //首先查詢redisif null       //如果沒有 get from db     //再從數據庫db查詢 if null      //如果仍然沒有  return null    //那么返回空 else       //否則  put into redis_cache  //現將數據放入redis  return obj    //再放回數據else        //如果從redis中查詢到了 return obj     //那么直接返回數據

以上就是本文的全部內容,希望對大家的學習有所幫助,也希望大家多多支持武林網。

發表評論 共有條評論
用戶名: 密碼:
驗證碼: 匿名發表
亚洲香蕉成人av网站在线观看_欧美精品成人91久久久久久久_久久久久久久久久久亚洲_热久久视久久精品18亚洲精品_国产精自产拍久久久久久_亚洲色图国产精品_91精品国产网站_中文字幕欧美日韩精品_国产精品久久久久久亚洲调教_国产精品久久一区_性夜试看影院91社区_97在线观看视频国产_68精品久久久久久欧美_欧美精品在线观看_国产精品一区二区久久精品_欧美老女人bb
日本不卡视频在线播放| 亚洲女人天堂av| 在线视频一区二区| 国产va免费精品高清在线观看| 欧美性猛交99久久久久99按摩| 欧美电影免费观看大全| 亚洲欧美国产视频| 欧美成人午夜免费视在线看片| 狠狠躁天天躁日日躁欧美| 欧美激情欧美狂野欧美精品| 欧美成人四级hd版| 欧美日韩中文字幕在线视频| 国产欧美日韩免费| 精品久久久久久久久久ntr影视| 中文字幕在线看视频国产欧美在线看完整| 国产精品久久久久高潮| 国产亚洲视频中文字幕视频| 国产精品www| 久久精品青青大伊人av| 亚洲嫩模很污视频| 国产福利视频一区| 日韩免费在线播放| 伊人成人开心激情综合网| 一区国产精品视频| 在线观看日韩专区| 欧美亚洲成人精品| 中文字幕日韩有码| 一本色道久久综合狠狠躁篇怎么玩| 亚洲图中文字幕| 91国偷自产一区二区三区的观看方式| 亚洲第五色综合网| 中文日韩在线视频| 中文字幕一精品亚洲无线一区| 精品久久久久久| 97久久久免费福利网址| 国产精品极品美女在线观看免费| 欧美视频在线视频| 国产日韩中文在线| 国产91色在线|| xxxxx成人.com| 91日本在线观看| 日韩成人在线播放| 国产精品免费视频xxxx| 亚洲免费一级电影| 91精品久久久久久久久久久| www.久久草.com| 亚洲欧美中文日韩在线v日本| 成人午夜激情网| 国产一区二区精品丝袜| 日韩精品丝袜在线| 国产亚洲精品美女久久久| 91精品国产沙发| 亚洲人成在线一二| 亚洲精品av在线播放| 久久久久久高潮国产精品视| 一本大道香蕉久在线播放29| 91精品国产网站| 久久久久久高潮国产精品视| 久久久999成人| 最近2019中文字幕一页二页| 国产精品国产福利国产秒拍| 久久成人亚洲精品| 午夜精品久久久久久99热| 亚洲国产天堂网精品网站| 在线成人免费网站| 欧美电影在线播放| 色偷偷av一区二区三区乱| 国产精品成av人在线视午夜片| 亚洲一区二区久久久久久| 国产精品亚洲第一区| 久久精品国产v日韩v亚洲| 97精品视频在线| 国产精品成av人在线视午夜片| 亚洲国产欧美在线成人app| 日韩久久午夜影院| 国产91在线播放精品91| www欧美日韩| 亚洲综合一区二区不卡| 亚洲变态欧美另类捆绑| 97在线视频免费看| 日韩成人激情影院| 国产精品日韩在线观看| 欧美夫妻性生活视频| 国产精品欧美日韩| 欧美日韩国内自拍| 久久久国产一区| 亚洲欧美国产一区二区三区| 91av在线播放| 久久韩国免费视频| 秋霞成人午夜鲁丝一区二区三区| 亚洲第一在线视频| 亚洲美女视频网| 欧美日韩在线第一页| 国产欧美一区二区三区久久| 91久久久久久| 国产不卡在线观看| 中文字幕亚洲欧美日韩2019| 日韩免费精品视频| 欧美激情伊人电影| 午夜精品三级视频福利| 亚洲欧美精品在线| 久久久精品欧美| 欧美极品在线播放| 亚洲天堂av女优| 色系列之999| 夜夜嗨av一区二区三区四区| 亚洲aⅴ日韩av电影在线观看| 亚洲欧美日韩中文视频| 成人h猎奇视频网站| 亚洲国产精品久久久久秋霞不卡| 97涩涩爰在线观看亚洲| 精品福利在线视频| 亚洲大胆人体av| 日本精品久久久久影院| 亚洲免费视频在线观看| 久久av资源网站| 国产精品久久久久久久久久久久久| 日韩中文视频免费在线观看| 久久精品国产v日韩v亚洲| 欧美激情视频一区| 欧美激情第一页xxx| 日韩成人av在线播放| 亚洲国产欧美一区| 日韩毛片在线观看| 国产精品自拍网| 亚洲一区制服诱惑| 狠狠色狠狠色综合日日小说| 亚洲毛片在线看| 亚洲少妇激情视频| 日韩精品视频中文在线观看| 日韩av日韩在线观看| 国产精品日韩在线| 亚洲毛片一区二区| 日韩h在线观看| 国内精品400部情侣激情| 人妖精品videosex性欧美| 国产成人精品视频| 91免费视频国产| 欧美激情视频免费观看| 成人疯狂猛交xxx| 不用播放器成人网| 日韩一区av在线| 国产精品嫩草视频| 欧美性生交大片免费| 一二美女精品欧洲| 国产一区二区三区在线播放免费观看| 最新中文字幕亚洲| 久久九九精品99国产精品| 亚洲欧美国产精品va在线观看| 久久久久久久av| 国产一区二区三区在线播放免费观看| 97在线观看视频国产| 亚洲激情成人网| 精品福利免费观看| 日韩激情在线视频| 国产亚洲精品美女久久久| 欧美性xxxxhd| 欧美人交a欧美精品| 国产精品海角社区在线观看| 狠狠躁天天躁日日躁欧美| 国产亚洲精品日韩| 成人亚洲激情网| 美女视频黄免费的亚洲男人天堂| 91九色国产社区在线观看|