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

}

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