pom.xml:
<dependency>
<groupId>redis.clients</groupId>
<artifactId>jedis</artifactId>
<version>2.9.0</version>
</dependency>
java测试代码:
//获取Jedis对象
Jedis jedis = new Jedis("192.168.72.146",6379);
//Jedis的方法就是redis的操作命令
//1. ping--测试连接
System.out.println(jedis.ping()); //PONG
//2. 清空数据库
System.out.println(jedis.flushDB());
//3. string类型的set
System.out.println(jedis.set("k1", "v1"));
//4. hash类型
Map map = new HashMap();
map.put("name","jarvis");
map.put("age","24");
System.out.println(jedis.hmset("user1", map));
map.put("age","25");
System.out.println(jedis.hmset("user1", map));
Map<String, String> map1 = jedis.hgetAll("user1");
System.out.println(map1); //{name=jarvis, age=25}
Set<String> user1 = jedis.hkeys("user1");
System.out.println(user1); //[name, age]
......
redis事务:
//获取Jedis对象
Jedis jedis = new Jedis("192.168.72.146",6379);
JSONObject jsonObject = new JSONObject();
jsonObject.put("name","jarvis");
jsonObject.put("age",24);
String userStr = JSONObject.toJSONString(jsonObject);
try {
//开启事务
Transaction multi = jedis.multi();
//操作
multi.flushDB();
multi.set("user",userStr);
multi.set("num","lala");
multi.incr("num"); //这里在redis服务端执行的时候会报错
multi.set("dog","wangcai");
//执行 exec这里才是真的执行一系列的命令队列
List<Object> exec = multi.exec();
System.out.println(exec);
}catch (Exception ex){
System.out.println("ex:"+ex.getMessage());
}finally {
//关闭连接
System.out.println(jedis.get("num"));
System.out.println(jedis.get("dog"));
jedis.close();
}
====out:
[OK, OK, OK, redis.clients.jedis.exceptions.JedisDataException: ERR value is not an integer or out of range, OK]
lala
wangcai //说明redis事务不保证原子性