1. 程式人生 > >Web - Redis & Jedis

Web - Redis & Jedis

一、Redis的基本使用

1.Redis是什麼?

Redis: 一個開源的高效能鍵值對(key-value)資料庫.
           使用鍵值對儲存資料 - > 儲存到記憶體中(作快取使用)
Redis服務佔用埠號是: 6379 .

2.Redis的安裝與使用.

官網下載(Linux版)地址:http://redis.io/download
github下載(window版)地址:https://github.com/MSOpenTech/redis/tags


window版:
           下載好,直接解壓即安裝完畢!
 
啟動: 開啟Redis目錄中redis-server.exe - > 啟動redis伺服器
關閉: 關閉視窗 , 就可以關閉Redis服務.
使用: 開啟Redis目錄中redis-cli.exe -> 啟動redis客戶端 . 輸入命令進行存取.
 
因為每次都要啟動redis伺服器 , 所以我們可以把它新增到服務中.
在這裡插入圖片描述
新增實現:

在這裡插入圖片描述
在這裡插入圖片描述
新增完成之後 , 我們只需每次啟動redis客戶端 , 編寫命令.

3.Redis的資料型別.

1.字串型別(string): Map<String , String> 字串型別是最為基礎的資料儲存型別!
常用命令:
       set key value 成功   - >   ok
       get key   沒有 - >   空(nil)
       del key
       incr key 自增(必須是數字型別的字串)
       decr key 自減
       incrby key 個數: 每次自增幾個.

改: 改是改所有的.

2.雜湊型別(hash): Map<String , hashMap<String,String>>

常用命令:
       hset key field value 為指定的key設定field/value對 .
       hmset key field value field value 設定多個.
       hget key field 返回指定key種field的值.
       hmget key field1 field2 .
       hgetall key 獲取所有的.
       hdel key field 刪除.
改: 改是改某一個.

3.key的通用操作.
       keys : 檢視所有的key ,   ? 一個字元 ,    多個字元.
       exists key : 判斷key是否存在 .
       type key : 獲取指定key的型別.

二、Jedis的基本使用.

1.Jedis是什麼?

jedis是用來在客戶端上操作Redis的.
使用jedis操作redis需要匯入jar包.

2.Jedis的基本操作.

public  void test1(){ 
   //1 設定ip地址和埠      
   Jedis jedis = new Jedis("localhost", 6379);      
   //2 設定資料      
   jedis.set("name", "itheima");      
   //3 獲得資料      
   String name = jedis.get("name");      
   System.out.println(name);      
   //4 釋放資源
   jedis.close();      
}

3.jedis連線池的使用.

因為jedis連線資源的建立與銷燬很消耗程式效能.
所以用連線池 , 不用建立 ,用時獲取 , 用完歸還.

jedisPool工具類的編寫:

public class RedisUtil {
    private static JedisPool pool;
    static {
        // 建立連線池配置物件 , 只建立一個.
        JedisPoolConfig jpc = new JedisPoolConfig();
        // 獲取配置檔案.
        ResourceBundle bundle = ResourceBundle.getBundle("redis");
        // 獲取配置引數.
        String host = bundle.getString("host");
        int port = Integer.parseInt(bundle.getString("port"));
        int minIdle = Integer.parseInt(bundle.getString("minIdle"));
        int maxIdle = Integer.parseInt(bundle.getString("maxIdle"));
        int maxTotal = Integer.parseInt(bundle.getString("maxTotal"));
        int maxWaitMillis = Integer.parseInt(bundle.getString("maxWaitMillis"));

        // 設定引數資訊.
        jpc.setMinIdle(minIdle);
        jpc.setMaxIdle(maxIdle);
        jpc.setMaxTotal(maxTotal);
        jpc.setMaxWaitMillis(maxWaitMillis);

        // 獲取連線池物件.
        pool = new JedisPool(jpc, host , port);
    }

    public static Jedis getConnection(){
        // 借連線.
        return pool.getResource();
    }
}

redis.properties

host=localhost
port=6379
minIdle=5
maxIdle=10
maxTotal=5
maxWaitMillis=2000