一、Jedis使用
1.1、基本使用
引入依赖
<!-- jedis --> <dependency> <groupId>redis.clients</groupId> <artifactId>jedis</artifactId> <version>2.7.1</version><!--版本号可根据实际情况填写--> </dependency> <dependency> <groupId>org.apache.commons</groupId> <artifactId>commons-lang3</artifactId> <version>3.3.2</version> </dependency>
Jedis是一个高性能的开源Java客户端,是Redis官方推荐的Java开发工具,其封装了一系列的redis相关的执行命令可供我们进行使用。
class Test { public static void main(String[] args) { Jedis jedis = new Jedis("10.23.134.28", 6379); System.out.println(jedis); //测试在redis中五种数据类型的存与取 // testString(jedis); // testHash(jedis); // testList(jedis); // testSet(jedis); testSortedset(jedis); } /** * String存取 * * @param jedis jedis连接redis对象 */ public static void testString(Jedis jedis) { jedis.set("username", "changlu"); jedis.set("age", "18"); } /** * hash存取 * * @param jedis jedis连接redis对象 */ public static void testHash(Jedis jedis) { //存 jedis.hset("mytestHash", "username", "changlu"); jedis.hset("mytestHash", "age", "18"); //取值 Map<String, String> hash = jedis.hgetAll("mytestHash"); hash.forEach((key, value) -> { System.out.println("key:" + key + ",value=" + value); }); } /** * list存取 * * @param jedis jedis连接redis对象 */ public static void testList(Jedis jedis) { //存:往链表的左侧存储 Long pushLength = jedis.lpush("mytestlist", "listColumn1", "listColumn2"); System.out.println("存储的长度:"+pushLength); //取:实现队列,从右边取 Long mtl = jedis.llen("mytestlist"); for (int i = 0; i < mtl; i++) { System.out.println(jedis.rpop("mytestlist")); } } /** * set存取 * * @param jedis jedis连接redis对象 */ public static void testSet(Jedis jedis) { //存:对于重复的属性不会存储 Long addLength = jedis.sadd("mytestSet", "changlu", "liner","liner","changlu"); System.out.println("存储的长度:"+addLength); //取 Set<String> mytestSet = jedis.smembers("mytestSet"); Stream.of(mytestSet.toArray()).forEach(System.out::println); } /** * 有序列表Sortedset * @param jedis jedis连接redis对象 */ public static void testSortedset(Jedis jedis) { //存:对于重复的属性不会存储 jedis.zadd("mysortedset", 100, "warren"); jedis.zadd("mysortedset",20,"zhangsan"); jedis.zadd("mysortedset",50,"lisi"); //取:默认zrange是按照升序 Set<String> mysortedset1 = jedis.zrange("mysortedset", 0, -1); Stream.of(mysortedset1.toArray()).forEach(System.out::println); } }
①String测试
②Hash测试
③List测试
④Set测试
⑤SortedSet测试
1.2、事务
命令
java实现
public static void main(String[] args) { Jedis jedis = new Jedis("localhost",6379); System.out.println(jedis); JSONObject jsonObject = new JSONObject(); jsonObject.put("username","changlu"); jsonObject.put("password","123456"); String result = jsonObject.toJSONString(); jedis.set("changlu","nihao"); //创建事务,之后执行的一系列操作都要基于Transaction对象 Transaction multi = jedis.multi(); multi.flushDB(); try { multi.set("user1",result); multi.set("user2",result); int i = 1/0; multi.exec();//事务提交 }catch (Exception e){ multi.discard(); //放弃事务 e.printStackTrace(); }finally { System.out.println("获取数据:"); System.out.println(multi.get("user1")); System.out.println(multi.get("user2")); //关闭连接 jedis.close(); } }
二、JedisPool连接池获取
//从jedis连接池中获取一个连接 Jedis jedis = new JedisPool("localhost", 6379).getResource();