Jedis

(一)安裝和使用

Jedis是Redis的Java客戶端,它提供了很多的API來操作Redis數據庫,使用jedis首先需要導入依賴

<dependency>
            <groupId>redis.clients</groupId>
            <artifactId>jedis</artifactId>
            <version>2.4.2</version>
</dependency>
public static void main(String[] args){
        String host="192.168.0.106";
        int port=6379;
        String password="123456";
        Jedis jedis = new Jedis(host,port);
        jedis.auth(password);
        System.out.println(jedis.ping());
    }

備註:如果操作Jedis時報錯鏈接異常,可能是因爲Linux的對應的端口防火牆原因,或者配置文件中沒有關閉bind屬性只能本地訪問,這些說明防火牆的設置
查看已經開放的端口:
firewall-cmd–list-ports

開啓端口:
firewall-cmd–zone=public --add-port6379/tcp

重啓防火牆
firewall-cmd --reload

(二)自定義連接池和實例

1:連接池

import redis.clients.jedis.Jedis;
import redis.clients.jedis.JedisPool;
import redis.clients.jedis.JedisPoolConfig;
public class JedisUtils {
    private static JedisPool jedisPool = null;
    private static String host = "192.168.0.106";
    private static int port = 6379;
    private static String password = "123456";

    static {
        //連接池配置
        JedisPoolConfig jedisPoolConfig = new JedisPoolConfig();
        jedisPoolConfig.setMaxTotal(5);
        jedisPoolConfig.setMaxIdle(3);
        //連接池對象
        jedisPool = new JedisPool(jedisPoolConfig, host, port);
    }
    //獲取連接實例
    public static Jedis getJedisConnection() {
        //獲取實例
        Jedis jedis = jedisPool.getResource();
        //傳入密碼參數
        jedis.auth(password);
        return jedis;
    }
     //關閉連接
    public static void closeJedisConnection(Jedis jedis) {
        jedis.close();
    }
}

2:set自定義模擬對象存儲和讀取

import redis.clients.jedis.Jedis;

import java.util.Map;
import java.util.concurrent.ConcurrentHashMap;
public class HsetDemo {
    public static User getUser(String key) {
        Jedis jedis = JedisUtils.getJedisConnection();
        User user = new User();

        if (jedis.exists(key)) {
            Map<String, String> map = jedis.hgetAll(key);
            user.setSid(Integer.valueOf(map.get("sid")));
            user.setName(map.get("name"));
            user.setAge(Integer.valueOf(map.get("age")));
            System.out.println("Redis獲取數據" + user);

        } else {
            user.setAge(45);
            user.setSid(12121);
            user.setName("張三");
            ConcurrentHashMap<String, String> map = new ConcurrentHashMap<String, String>();
            map.put("sid", user.getSid() + "");
            map.put("name", user.getName());
            map.put("age", user.getAge() + "");
            System.out.println("MySQL獲取數據" + user);
            jedis.hmset("user:01", map);
        }
        return user;
    }
    public static void main(String[] args) {
        getUser("user:01");
    }
}

3:自定義Redis連接工具類


import redis.clients.jedis.Jedis;
import redis.clients.jedis.JedisPool;
import redis.clients.jedis.JedisPoolConfig;
public class JedisUtils {
    private static JedisPool jedisPool = null;
    private static String host = "192.168.0.106";
    private static int port = 6379;
    private static String password = "123456";

    static {
        //連接池配置
        JedisPoolConfig jedisPoolConfig = new JedisPoolConfig();
        jedisPoolConfig.setMaxTotal(5);
        jedisPoolConfig.setMaxIdle(3);
        //連接池對象
        jedisPool = new JedisPool(jedisPoolConfig, host, port);
    }
    //獲取連接實例
    public static Jedis getJedisConnection() {
        //獲取實例
        Jedis jedis = jedisPool.getResource();
        //傳入密碼參數
        jedis.auth(password);
        return jedis;
    }
     //關閉連接
    public static void closeJedisConnection(Jedis jedis) {
        jedis.close();
    }
}
發佈了64 篇原創文章 · 獲贊 9 · 訪問量 5008
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章