博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
Redis的Java入门实践 (转)
阅读量:7056 次
发布时间:2019-06-28

本文共 2560 字,大约阅读时间需要 8 分钟。

hot3.png

  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执行后会进行一次日志备份。够用了,先到这里吧。  

转载于:https://my.oschina.net/adwangxiao/blog/104343

你可能感兴趣的文章
梯度提升决策树(GBDT)与XGBoost、LightGBM
查看>>
mcelog用法详解
查看>>
RHEL6基础二十一之压缩、打包
查看>>
MVVM 架构模式分析
查看>>
报错:1130-host ... is not allowed to connect to this
查看>>
silverlight
查看>>
Oracle DB数据异常关闭的情况
查看>>
SQL Server2005数据恢复总结
查看>>
为Django网站添加favicon.ico图标
查看>>
明天你还在
查看>>
查看表或行的注释
查看>>
我的友情链接
查看>>
[20180606]如何dump数据库里面的汉字.txt
查看>>
C#面向对象(四)虚方法实现多态
查看>>
day3-Nfs
查看>>
iptables
查看>>
谷歌技术"三宝"之BigTable(转)
查看>>
解析JavaScript中的字符串类型与字符编码支持
查看>>
二叉树的遍历
查看>>
openssl RSA密钥格式PKCS1和PKCS8相互转换
查看>>