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