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

首頁 > 數據庫 > Redis > 正文

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

2020-03-17 12:36:12
字體:
來源:轉載
供稿:網友

本文介紹簡單的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     //那么直接返回數據

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


注:相關教程知識閱讀請移步到Redis頻道。
發表評論 共有條評論
用戶名: 密碼:
驗證碼: 匿名發表
亚洲香蕉成人av网站在线观看_欧美精品成人91久久久久久久_久久久久久久久久久亚洲_热久久视久久精品18亚洲精品_国产精自产拍久久久久久_亚洲色图国产精品_91精品国产网站_中文字幕欧美日韩精品_国产精品久久久久久亚洲调教_国产精品久久一区_性夜试看影院91社区_97在线观看视频国产_68精品久久久久久欧美_欧美精品在线观看_国产精品一区二区久久精品_欧美老女人bb
久久精品91久久久久久再现| 国产成人avxxxxx在线看| 最好看的2019的中文字幕视频| 亚洲人成伊人成综合网久久久| 欧美做爰性生交视频| 国产一区二区在线免费视频| 日本一区二三区好的精华液| 成人精品福利视频| 日韩激情在线视频| 久久97精品久久久久久久不卡| 亚洲成人激情在线| 亚洲a级在线播放观看| 国产精品高潮呻吟久久av无限| 亚洲欧洲在线看| 欧美一区二三区| 亚洲欧美国产制服动漫| 国产视频欧美视频| 欧美成人国产va精品日本一级| 51精品国产黑色丝袜高跟鞋| 亚洲最大成人在线| 久久久亚洲国产天美传媒修理工| 久久久久久久久久久人体| 亚洲国产免费av| 国产欧美久久久久久| 久久亚洲精品视频| 国产99久久精品一区二区永久免费| 91在线观看免费网站| 久久久久久国产精品美女| 高清欧美电影在线| 成人写真视频福利网| 欧美激情在线狂野欧美精品| 日本精品久久久久影院| 亚洲无亚洲人成网站77777| 日本伊人精品一区二区三区介绍| 在线观看国产欧美| 揄拍成人国产精品视频| 欧美日韩国产页| 992tv成人免费影院| 日韩中文字幕在线视频| 国内自拍欧美激情| 国产一区二区黑人欧美xxxx| 成人444kkkk在线观看| 中文字幕亚洲一区二区三区| 欧美另类暴力丝袜| 日韩精品免费在线视频| 亚洲精品日韩久久久| 国产成人高潮免费观看精品| 中文字幕久久精品| 中文字幕视频一区二区在线有码| 国产999精品久久久| 亚洲风情亚aⅴ在线发布| 亚洲韩国日本中文字幕| 亚洲精品福利在线观看| 国产精品亚洲欧美导航| 国产成人精品电影久久久| 亚洲香蕉伊综合在人在线视看| 色婷婷**av毛片一区| 日韩高清电影免费观看完整版| 国产噜噜噜噜噜久久久久久久久| 日韩一区二区精品视频| 国产午夜精品免费一区二区三区| 国产精品视频男人的天堂| 欧美精品video| 亚洲桃花岛网站| 一区二区亚洲欧洲国产日韩| 77777亚洲午夜久久多人| 中文字幕久久精品| 国产精欧美一区二区三区| 国产精品久久久久久久久久久久久| 91精品国产91久久久久久久久| 亚洲精品久久久久久久久| 欧美一区在线直播| 68精品国产免费久久久久久婷婷| 久久精品中文字幕免费mv| 午夜免费在线观看精品视频| 97精品伊人久久久大香线蕉| 亚洲男人天堂九九视频| 成人观看高清在线观看免费| 性欧美办公室18xxxxhd| 日韩综合视频在线观看| 国产精品高潮呻吟视频| 欧美高清不卡在线| 精品动漫一区二区| 国产97色在线|日韩| 亚洲国产天堂网精品网站| 成人久久久久久久| 亚洲国产精品免费| 国产v综合v亚洲欧美久久| 亚洲视频网站在线观看| 欧美一级电影免费在线观看| 亚洲91精品在线| 中国日韩欧美久久久久久久久| 91高清视频免费| 亚洲人成亚洲人成在线观看| 国产精品视频久久| 91大神在线播放精品| 一夜七次郎国产精品亚洲| 亚洲丝袜av一区| 欧美激情xxxxx| 欧洲一区二区视频| 日韩中文在线视频| 91av在线免费观看视频| 国产在线高清精品| 久久精品这里热有精品| 国产不卡一区二区在线播放| 欧美日韩亚洲精品一区二区三区| 6080yy精品一区二区三区| 日韩国产精品亚洲а∨天堂免| 日韩av成人在线观看| 狠狠综合久久av一区二区小说| 亚洲欧美国产精品| 国产不卡一区二区在线播放| www.国产一区| 亚洲人成电影在线| 亚洲美女av在线播放| 亚洲国产欧美一区二区三区久久| 亚洲一区二区三区在线免费观看| 91午夜在线播放| 欧美天堂在线观看| 国产精品极品尤物在线观看| 色婷婷综合成人av| 在线视频免费一区二区| 欧美日韩在线第一页| 亚洲欧美日韩网| 国产精品久久久久久超碰| 精品久久久久久电影| 国产999精品久久久影片官网| 91大神在线播放精品| 欧美亚洲国产视频小说| 国产精品678| 亚洲天堂影视av| 26uuu国产精品视频| 国产精品国产亚洲伊人久久| 精品美女久久久久久免费| 777777777亚洲妇女| 国产一区二区三区在线观看视频| 成人免费直播live| 亚洲色图欧美制服丝袜另类第一页| 一本色道久久88综合亚洲精品ⅰ| 91伊人影院在线播放| 亚洲最大成人免费视频| 欧美成人精品在线视频| 亚洲资源在线看| 亚洲自拍高清视频网站| 国产精品久久久久影院日本| 777国产偷窥盗摄精品视频| 亚洲国产另类久久精品| 91精品视频在线看| 91sao在线观看国产| 欧美中文字幕视频在线观看| 97国产成人精品视频| 高跟丝袜一区二区三区| 国产日产亚洲精品| 亚洲自拍中文字幕| 少妇久久久久久| 综合欧美国产视频二区| 欧美精品第一页在线播放| 国产日韩欧美中文| 中文字幕日韩欧美在线视频| 91九色国产社区在线观看| 一本色道久久综合狠狠躁篇怎么玩| 色噜噜狠狠狠综合曰曰曰| 狠狠久久五月精品中文字幕| 中日韩美女免费视频网址在线观看|