Redis的Java入門實踐 (轉)

  1. 1, Redis Hello World 的例子  
  2.   
  3. 這裏用的包是Jedis。下載地址https://github.com/xetorthio/jedis/downloads  
  4.   
  5. 把jar包引入工程,打開redis的服務器(redis下載及安裝見初步理解Redis及其安裝配置)。開始打招呼的例子,以下  
  6.   
  7.    1:  Jedis jedis = new Jedis("localhost");  
  8.   
  9.    2:  jedis.set("key""Hello World!");  
  10.   
  11.    3:  String value = jedis.get("key");  
  12.   
  13.    4:  System.out.println(value);  
  14.   
  15. 分別測試下各類數據結構  
  16.   
  17.         System.out.println("==String==");  
  18.   
  19.         Jedis jedis = new Jedis("localhost");  
  20.   
  21.         //String  
  22.   
  23.         jedis.set("key""Hello World!");  
  24.   
  25.         String value = jedis.get("key");  
  26.   
  27.         System.out.println(value);  
  28.   
  29.           
  30.   
  31.         //List  
  32.   
  33.         System.out.println("==List==");  
  34.   
  35.         jedis.rpush("messages""Hello how are you?");  
  36.   
  37.         jedis.rpush("messages""Fine thanks. I'm having fun with redis.");  
  38.   
  39.         jedis.rpush("messages""I should look into this NOSQL thing ASAP");  
  40.   
  41.         List<String> values = jedis.lrange("messages"0, -1);  
  42.   
  43.         System.out.println(values);  
  44.   
  45.           
  46.   
  47.         //Set  
  48.   
  49.         System.out.println("==Set==");  
  50.   
  51.         jedis.sadd("myset""1");  
  52.   
  53.         jedis.sadd("myset""2");  
  54.   
  55.         jedis.sadd("myset""3");  
  56.   
  57.         jedis.sadd("myset""4");  
  58.   
  59.         Set<String> setValues = jedis.smembers("myset");  
  60.   
  61.         System.out.println(setValues);  
  62.   
  63.           
  64.   
  65.         //Sorted Set  
  66.   
  67.         jedis.zadd("hackers"1940"Alan Kay");  
  68.   
  69.         jedis.zadd("hackers"1953"Richard Stallman");  
  70.   
  71.         jedis.zadd("hackers"1965"Yukihiro Matsumoto");  
  72.   
  73.         jedis.zadd("hackers"1916"Claude Shannon");  
  74.   
  75.         jedis.zadd("hackers"1969"Linus Torvalds");  
  76.   
  77.         jedis.zadd("hackers"1912"Alan Turing");  
  78.   
  79.         setValues = jedis.zrange("hackers"0, -1);  
  80.   
  81.         System.out.println(setValues);  
  82.   
  83.           
  84.   
  85.         //Hash  
  86.   
  87.         System.out.println("==Hash==");  
  88.   
  89.         Map<String, String> pairs = new HashMap<String, String>();  
  90.   
  91.         pairs.put("name""Akshi");  
  92.   
  93.         pairs.put("age""2");  
  94.   
  95.         pairs.put("sex""Female");  
  96.   
  97.         jedis.hmset("kid", pairs);  
  98.   
  99.         values = jedis.hmget("kid"new String[]{"name""age""sex"});  
  100.   
  101.         System.out.println(values);  
  102.   
  103.           
  104.   
  105.         setValues = jedis.hkeys("kid");  
  106.   
  107.         System.out.println(setValues);  
  108.   
  109.         values = jedis.hvals("kid");  
  110.   
  111.         System.out.println(values);  
  112.   
  113.         pairs = jedis.hgetAll("kid");  
  114.   
  115.         System.out.println(pairs);  
  116.   
  117. 而後解決持久化的問題  
  118.   
  119. redis是把全部的數據都放在內存的一種機制,須要常常同步到磁盤保證數據的持久化。數據全放在內存裏,真的很擔憂個人小機器啊~回頭數據大了調臺式機上把,再大了就。。。  
  120.   
  121. 這個題目比較大些,之後能夠單獨寫幾篇,如今急着用,入門麼,解決問題先。主要是兩種機制,快照(Snapshotting)和AOF(Append- only file)。AOF每次寫操做都會寫日誌,服務器當機的時候從那些日誌文件裏恢復。不過日誌文件會特別大,個人機器確定承受不起。快照是默認的方式,默認是每小時更新一次,手動調用save, shutdown, slave這些命令也會寫日誌。測試下save。  
  122.   
  123. 先用客戶端查詢一下剛纔代碼插入的東西。  
  124.   
  125. image  
  126.   
  127. 東西仍是在內存裏的。而後把服務器關了。從新開啓,仍是有結果。  
  128.   
  129. image  
  130.   
  131. 驗證是否是由於時間過過久了自動保存了,用java代碼新插入一個值。繼續關服務器和重啓等操做。  
  132.   
  133. image  
  134.   
  135. 沒有值。證實以前的值存在確實是由於自動保存了,接着從新插入(這個若是覆蓋是個什麼狀況呢:貌似直接無情地覆蓋了),而後執行下保存。以後關閉,重啓。  
  136.   
  137. jedis.set("newkey""Hello New New World!");  
  138. String value = jedis.get("newkey");  
  139. System.out.println(value);  
  140. jedis.save();  
  141.   
  142. image  
  143.   
  144. 能夠看到newkey的值了,並且是覆蓋後的。save執行後會進行一第二天志備份。夠用了,先到這裏吧。  
相關文章
相關標籤/搜索