Redis的Java入门实践 (转)
1 , Redis Hello World 的例子
这里用的包是Jedis。下载地址https://github.com/xetorthio/jedis/downloads
把jar包引入工程,打开redis的服务器(redis下载及安装见初步理解Redis及其安装配置)。开始打招呼的例子,以下
1 : Jedis jedis = new Jedis( "localhost" );
2 : jedis.set( "key" , "Hello World!" );
3 : String value = jedis.get( "key" );
4 : System.out.println(value);
分别测试下各类数据结构
System.out.println("==String==" );
Jedis jedis = new Jedis( "localhost" );
//String
jedis.set("key" , "Hello World!" );
String value = jedis.get("key" );
System.out.println(value);
//List
System.out.println("==List==" );
jedis.rpush("messages" , "Hello how are you?" );
jedis.rpush("messages" , "Fine thanks. I'm having fun with redis." );
jedis.rpush("messages" , "I should look into this NOSQL thing ASAP" );
List<String> values = jedis.lrange("messages" , 0 , - 1 );
System.out.println(values);
//Set
System.out.println("==Set==" );
jedis.sadd("myset" , "1" );
jedis.sadd("myset" , "2" );
jedis.sadd("myset" , "3" );
jedis.sadd("myset" , "4" );
Set<String> setValues = jedis.smembers("myset" );
System.out.println(setValues);
//Sorted Set
jedis.zadd("hackers" , 1940 , "Alan Kay" );
jedis.zadd("hackers" , 1953 , "Richard Stallman" );
jedis.zadd("hackers" , 1965 , "Yukihiro Matsumoto" );
jedis.zadd("hackers" , 1916 , "Claude Shannon" );
jedis.zadd("hackers" , 1969 , "Linus Torvalds" );
jedis.zadd("hackers" , 1912 , "Alan Turing" );
setValues = jedis.zrange("hackers" , 0 , - 1 );
System.out.println(setValues);
//Hash
System.out.println("==Hash==" );
Map<String, String> pairs = new HashMap<String, String>();
pairs.put("name" , "Akshi" );
pairs.put("age" , "2" );
pairs.put("sex" , "Female" );
jedis.hmset("kid" , pairs);
values = jedis.hmget("kid" , new String[]{ "name" , "age" , "sex" });
System.out.println(values);
setValues = jedis.hkeys("kid" );
System.out.println(setValues);
values = jedis.hvals("kid" );
System.out.println(values);
pairs = jedis.hgetAll("kid" );
System.out.println(pairs);
而后解决持久化的问题
redis是把全部的数据都放在内存的一种机制,须要常常同步到磁盘保证数据的持久化。数据全放在内存里,真的很担忧个人小机器啊~回头数据大了调台式机上把,再大了就。。。
这个题目比较大些,之后能够单独写几篇,如今急着用,入门么,解决问题先。主要是两种机制,快照(Snapshotting)和AOF(Append- only file)。AOF每次写操做都会写日志,服务器当机的时候从那些日志文件里恢复。不过日志文件会特别大,个人机器确定承受不起。快照是默认的方式,默认是每小时更新一次,手动调用save, shutdown, slave这些命令也会写日志。测试下save。
先用客户端查询一下刚才代码插入的东西。
image
东西仍是在内存里的。而后把服务器关了。从新开启,仍是有结果。
image
验证是否是由于时间过过久了自动保存了,用java代码新插入一个值。继续关服务器和重启等操做。
image
没有值。证实以前的值存在确实是由于自动保存了,接着从新插入(这个若是覆盖是个什么状况呢:貌似直接无情地覆盖了),而后执行下保存。以后关闭,重启。
jedis.set("newkey" , "Hello New New World!" );
String value = jedis.get("newkey" );
System.out.println(value);
jedis.save();
image
能够看到newkey的值了,并且是覆盖后的。save执行后会进行一第二天志备份。够用了,先到这里吧。
欢迎关注本站公众号,获取更多信息