redis的javaAPI操作(Demo)

redis不仅可以通过命令行进行操作,同时redis也可以通过javaAPI进行操作,我们可以通过使用javaAPI来对redis数据库当中的各种数据类型进行操作

第一步:创建maven工程并导入jar包

<?xml version="1.0" encoding="UTF-8"?>
<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>redistest</groupId>
    <artifactId>redistest</artifactId>
    <version>1.0-SNAPSHOT</version>

    <dependencies>
        <dependency>
            <groupId>redis.clients</groupId>
            <artifactId>jedis</artifactId>
            <version>2.9.0</version>
        </dependency>
        <dependency>
            <groupId>junit</groupId>
            <artifactId>junit</artifactId>
            <version>4.12</version>
            <scope>test</scope>
        </dependency>
        <dependency>
            <groupId>org.testng</groupId>
            <artifactId>testng</artifactId>
            <version>6.14.3</version>
            <scope>test</scope>
        </dependency>
    </dependencies>
    <build>
        <plugins>
            <plugin>
                <groupId>org.apache.maven.plugins</groupId>
                <artifactId>maven-compiler-plugin</artifactId>
                <version>3.0</version>
                <configuration>
                    <source>1.8</source>
                    <target>1.8</target>
                    <encoding>UTF-8</encoding>
                    <!--    <verbal>true</verbal>-->
                </configuration>
            </plugin>
        </plugins>
    </build>

</project>

代码示例

package com.xu;

import org.testng.annotations.AfterTest;
import org.testng.annotations.BeforeTest;
import org.testng.annotations.Test;
import redis.clients.jedis.Jedis;
import redis.clients.jedis.JedisPool;
import redis.clients.jedis.JedisPoolConfig;

import java.util.List;
import java.util.Map;
import java.util.Set;

public class RedisTest {

    private JedisPool jedisPool;

    /**
     * 连接Redis
     */
    @BeforeTest
    public void connectJedis() {
        //创建数据库连接池
        JedisPoolConfig jedisPoolConfig = new JedisPoolConfig();
        jedisPoolConfig.setMaxIdle(10); //设置连接redis的最大空闲数
        jedisPoolConfig.setMaxWaitMillis(5000); //设置连接redis-超时时间
        jedisPoolConfig.setMaxTotal(50); //设置redis连接最大客户端数
        jedisPoolConfig.setMinIdle(5);
        //获取jedis连接池
        jedisPool = new JedisPool(jedisPoolConfig, "node01", 6379);
    }

    @AfterTest
    public void jedisPoolClose() {
        jedisPool.close();
    }

    /**
     * 操作Sting类型
     */
    @Test
    public void stringOperate() {
        //获取redis的客户端
        Jedis jedis = jedisPool.getResource();
        //设置string类型的值
        jedis.set("jedisKey", "jedisValue");
        //获取值
        String jedisKey = jedis.get("jedisKey");
        System.out.println(jedisKey);
        //计数器
        jedis.incr("jincr");
        String jincr = jedis.get("jincr");
        System.out.println(jincr);
        jedis.close();
    }

    /**
     * 操作hash
     */
    @Test
    public void hashTest() {
        Jedis resource = jedisPool.getResource();
        //添加数据
        resource.hset("jhsetkey","jmapkey","jmapvalue");
        resource.hset("jhsetkey","jmapkey2","jmapvalue2");
        //获取所有数据
        Map<String, String> jhsetkey = resource.hgetAll("jhsetkey");
        for (String s : jhsetkey.keySet()) {
            System.out.println(s);
        }
        //修改数据
        resource.hset("jhsetkey","jmapkey2","jmapvalueupdate2");
        Map<String, String> jhsetkey2 = resource.hgetAll("jhsetkey");
        for (String s : jhsetkey2.keySet()) {
            System.out.println("修改数据打印"+s);
        }
        //删除数据
        resource.del("jhsetkey");

        Set<String> jhsetkey1 = resource.keys("jhsetkey");
        for (String result : jhsetkey1) {
            System.out.println(result);
        }
    }

    /**
     * 操作list类型的数据
     */
    @Test
    public void listOperate(){
        Jedis resource = jedisPool.getResource();
        //从左边插入元素
        resource.lpush("listkey","listvalue1","listvalue1","listvalue2");

        //从右边移除元素
        resource.rpop("listkey");
        //获取所有值
        List<String> listkey = resource.lrange("listkey", 0, -1);
        for (String s : listkey) {
            System.out.println(s);
        }
        resource.close();
    }

    /**
     * set类型数据操作
     */
    @Test
    public void setOperate(){
        Jedis resource = jedisPool.getResource();
        //添加数据
        resource.sadd("setkey", "setvalue1", "setvalue1", "setvalue2", "setvalue3");
        //查询数据
        Set<String> setkey = resource.smembers("setkey");
        for (String s : setkey) {
            System.out.println(s);
        }
        //移除掉一个数据
        resource.srem("setkey","setvalue3");
        resource.close();
    }

}

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章