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执行后会进行一第二天志备份。够用了,先到这里吧。  
相关文章
相关标签/搜索