zoukankan      html  css  js  c++  java
  • Redis学习存档(2)——通过Java使用Redis:Jedis

    一、创建项目,引入jedis jar包

    可在百度搜索maven repository

    进入后搜索jedis,复制依赖包到pom.xml文件中

    <project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
      xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd">
      <modelVersion>4.0.0</modelVersion>
    
      <groupId>com.maven.redis</groupId>
      <artifactId>Redis</artifactId>
      <version>0.0.1-SNAPSHOT</version>
      <packaging>jar</packaging>
    
      <properties>
          <!-- 字符编码UTF-8 -->
        <project.build.sourceEncoding>UTF-8</project.build.sourceEncoding>
        <!-- junit版本 -->
        <junit.version>4.9</junit.version>
        <!-- jedis版本 -->
        <jedis.version>2.9.0</jedis.version>
      </properties>
    
      <dependencies>
          <!-- junit架包 -->
        <dependency>
          <groupId>junit</groupId>
          <artifactId>junit</artifactId>
          <version>${junit.version}</version>
          <scope>test</scope>
        </dependency>
        <!-- jedis -->
        <dependency>
            <groupId>redis.clients</groupId>
            <artifactId>jedis</artifactId>
            <version>${jedis.version}</version>
        </dependency>
      </dependencies>
      
    </project>
    pom.xml

    二、连接到Redis

    package com.maven.redis;
    
    import org.junit.Test;
    
    import redis.clients.jedis.Jedis;
    
    public class RedisTest {
        
        @Test
        public void testConnect(){//连接
            //创建jedis对象 ip+端口号
            Jedis jedis = new Jedis("192.168.214.140", 6379);
            //ping一下
            String result = jedis.ping();
            //输出ping结果
            System.out.println(result);
            //关闭连接
            jedis.close();
        }
    
    }

    结果如下图

    三、操作String类型的数据

    package com.maven.redis;
    
    import org.junit.Test;
    
    import redis.clients.jedis.Jedis;
    
    public class RedisTest {
        
        @Test
        public void testString(){//String
            //创建jedis对象 ip+端口号
            Jedis jedis = new Jedis("192.168.214.140", 6379);
            //存入
            jedis.set("one", "1");
            //读取
            System.out.println("存入:" + jedis.get("one"));
            //更改
            jedis.set("one", "111");
            System.out.println("更改:" + jedis.get("one"));
            //删除
            jedis.del("one");
            System.out.println("删除:" + jedis.get("one"));
            //关闭连接
            jedis.close();
        }
    
    }

    结果如下图

    四、操作List类型的数据

    package com.maven.redis;
    
    import org.junit.Test;
    
    import redis.clients.jedis.Jedis;
    
    public class RedisTest {
        
        @Test
        public void testList(){//List
            //创建jedis对象 ip+端口号
            Jedis jedis = new Jedis("192.168.214.140", 6379);
            //存入
            //从右边插入
            jedis.rpush("mylist", "java", "c", "python", "java");
            /*    等价于
                jedis.rpush("mylist", "java");
                jedis.rpush("mylist", "c");
                jedis.rpush("mylist", "python");
                jedis.rpush("mylist", "java");
            */
            System.out.println("第一次存入:" + jedis.lrange("mylist", 0, -1));
            //从左边插入
            jedis.lpush("mylist", "delphi");
            System.out.println("第二次存入:" + jedis.lrange("mylist", 0, -1));
            //更改index=2的元素
            jedis.lset("mylist", 2, "c++");
            System.out.println("更改index=2的元素:" + jedis.lrange("mylist", 0, -1));
            //删除所有java元素
            jedis.lrem("mylist", 0, "java");
            System.out.println("删除所有java元素:" + jedis.lrange("mylist", 0, -1));
            //删除List中第一个元素
            jedis.lpop("mylist");//rpop即为删除最后一个元素
            System.out.println("删除第一个元素:" + jedis.lrange("mylist", 0, -1));
            //删除List
            jedis.del("mylist");
            System.out.println("删除List:" + jedis.lrange("mylist", 0, -1));
            //关闭连接
            jedis.close();
        }
    
    }

    结果如下图

    五、操作Set类型的数据

    package com.maven.redis;
    
    import org.junit.Test;
    
    import redis.clients.jedis.Jedis;
    
    public class RedisTest {
        
        @Test
        public void testSet(){//Set
            //创建jedis对象 ip+端口号
            Jedis jedis = new Jedis("192.168.214.140", 6379);
            //存入
            jedis.sadd("myset", "java", "c", "python", "delphi");
            //读取
            System.out.println("存入:" + jedis.smembers("myset"));
            //判读c++是否存在Set中
            System.out.print("是否存在c++:");
            if(jedis.sismember("myset", "c++")){
                System.out.println("have c++");
            } else {
                System.out.println("no c++");
            }
            //删除delphi元素
            jedis.srem("myset", "delphi");
            System.out.println("删除:" + jedis.smembers("myset"));
            //存入一个新Set
            jedis.sadd("newset", "c++", "c#", "c", ".net");
            //取两集合的并集
            System.out.println("并集:" + jedis.sunion("myset", "newset"));
            //取两集合的交集
            System.out.println("交集:" + jedis.sinter("myset", "newset"));
            //删除Set
            jedis.del("myset");
            jedis.del("newset");
            System.out.println("删除set:" + jedis.smembers("myset"));
            //关闭连接
            jedis.close();
        }
    
    }

    结果如下图

    六、操作Sorted Set类型的数据

    package com.maven.redis;
    
    import java.util.HashMap;
    import java.util.Map;
    
    import org.junit.Test;
    
    import redis.clients.jedis.Jedis;
    
    public class RedisTest {
        
        @Test
        public void testSortedSet(){//Sorted Set
            //创建jedis对象 ip+端口号
            Jedis jedis = new Jedis("192.168.214.140", 6379);
            //存入
            Map<String, Double> map = new HashMap<String, Double>();
            map.put("c", 2.0);
            map.put("java", 1.0);
            map.put("python", 3.0);
            jedis.zadd("sorted", map);
            //读取
            System.out.println(jedis.zrange("sorted", 0, -1));
            //删除c元素
            jedis.zrem("sorted", "c");
            System.out.println(jedis.zrange("sorted", 0, -1));
            //删除Sorted Set
            jedis.del("sorted");
            System.out.println(jedis.zrange("sorted", 0, -1));
            //关闭连接
            jedis.close();
        }
    
    }

    结果如下图

    七、操作hashes类型的数据

    package com.maven.redis;
    
    import java.util.HashMap;
    import java.util.Map;
    import java.util.Map.Entry;
    import java.util.Set;
    
    import org.junit.Test;
    
    import redis.clients.jedis.Jedis;
    
    public class RedisTest {
        
        @Test
        public void testHashes(){
            //创建jedis对象 ip+端口号
            Jedis jedis = new Jedis("192.168.214.140", 6379);
            //存入
            jedis.hset("myhash", "name", "张三");
            jedis.hset("myhash", "age", "18");
            //读取
            //方式一
            Map<String, String> hash = jedis.hgetAll("myhash");
            Set<Entry<String, String>> entry = hash.entrySet();
            for (Entry<String, String> e : entry) {
                System.out.println(e.getKey() + "===" + e.getValue());
            }
            //方式二
            System.out.println("name===" + jedis.hget("myhash", "name"));
            System.out.println("age===" + jedis.hget("myhash", "age"));
            //更改age字段值
            jedis.hset("myhash", "age", "20");
            System.out.println("age===" + jedis.hget("myhash", "age"));
            //删除age字段
            jedis.hdel("myhash", "age");
            System.out.println("age===" + jedis.hget("myhash", "age"));
            //删除hashes
            jedis.del("myhash");
            System.out.println("name===" + jedis.hget("myhash", "name"));
            //关闭连接
            jedis.close();
        }
    
    }

    结果如下图

  • 相关阅读:
    IOS中CocoaPods安装与使用
    解决 CocoaPods管理第三方库报错的问题
    Github上的600多个iOS开源类库
    VFL 可视化格式语言自动布局基础
    (转)WWDC2014之App Extensions学习笔记
    (转)iOS并发编程笔记,包含GCD,Operation Queues,Run Loops,如何在后台绘制UI,后台I/O处理,最佳安全实践避免互斥锁死锁优先级反转等,以及如何使用GCD监视进程文件文件夹,并发测试的方案等
    (转)轻松学习Objective-C消息转发
    IOS 获取IDFA以及判断是否越狱
    iOS 获取Wifi的SSID及MAC地址
    (转)黑幕背后的Autorelease
  • 原文地址:https://www.cnblogs.com/s1165482267/p/8252327.html
Copyright © 2011-2022 走看看