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();
    }

}

结果如下图

posted @ 2018-01-09 16:54  x≒y  阅读(194)  评论(0编辑  收藏  举报