使用Jedis操作redis

2021-09-24 22:02:03 字數 4177 閱讀 7458

首先要初始化乙個jedis物件,只需要建立jedis物件的時候指定host,port, password即可。當然,jedis物件又很多構造方法,都大同小異,只是對應和redis連線的socket的引數不一樣而已。簡單使用如下圖所示

使用jedis連線池之後,盡量在用完連線物件後記得把連線歸還給連線池。只需要使用jedis的close方法就可以了。

jedispoolconfig config = new jedispoolconfig();

//連線耗盡時是否阻塞, false報異常,ture阻塞直到超時, 預設true

config.setblockwhenexhausted(true);

//設定的逐出策略類名, 預設defaultevictionpolicy(當連線超過最大空閒時間,或連線數超過最大空閒連線數)

config.setevictionpolicyclassname("org.apache.commons.pool2.impl.defaultevictionpolicy");

//是否啟用pool的jmx管理功能, 預設true

config.setjmxenabled(true);

//mbean objectname = new objectname("org.apache.commons.pool2:type=genericobjectpool,name=" + "pool" + i); 默 認為"pool", jmx不熟,具體不知道是幹啥的...預設就好.

config.setjmxnameprefix("pool");

//是否啟用後進先出, 預設true

config.setlifo(true);

//最大空閒連線數, 預設8個

config.setmaxidle(8);

//最大連線數, 預設8個

config.setmaxtotal(8);

//獲取連線時的最大等待毫秒數(如果設定為阻塞時blockwhenexhausted),如果超時就拋異常, 小於零:阻塞不確定的時間, 預設-1

config.setmaxwaitmillis(-1);

//逐出連線的最小空閒時間 預設1800000毫秒(30分鐘)

config.setminevictableidletimemillis(1800000);

//最小空閒連線數, 預設0

config.setminidle(0);

//每次逐出檢查時 逐出的最大數目 如果為負數就是 : 1/abs(n), 預設3

config.setnumtestsperevictionrun(3);

//物件空閒多久後逐出, 當空閒時間》該值 且 空閒連線》最大空閒數 時直接逐出,不再根據minevictableidletimemillis判斷 (預設逐出策略)

config.setsoftminevictableidletimemillis(1800000);

//在獲取連線的時候檢查有效性, 預設false

config.settestonborrow(false);

//在空閒時檢查有效性, 預設false

config.settestwhileidle(false);

//逐出掃瞄的時間間隔(毫秒) 如果為負數,則不執行逐出執行緒, 預設-1

config.settimebetweenevictionrunsmillis(-1);

jedispool pool = new jedispool(config, "localhost", "埠");

redis redis = pool.getreource();

//連線redis ,redis的預設埠是6379

jedis jedis = new jedis ("localhost",6379);

//驗證密碼,如果沒有設定密碼這段**省略

jedis.auth("password");

jedis.connect();//連線

jedis.disconnect();//斷開連線

setkeys = jedis.keys("*"); //列出所有的key

setkeys = jedis.keys("key"); //查詢特定的key

//移除給定的乙個或多個key,如果key不存在,則忽略該命令.

jedis.del("key1");

jedis.del("key1","key2","key3","key4","key5");

//移除給定key的生存時間(設定這個key永不過期)

jedis.persist("key1");

//檢查給定key是否存在

jedis.exists("key1");

//將key改名為newkey,當key和newkey相同或者key不存在時,返回乙個錯誤

jedis.rename("key1", "key2");

//返回key所儲存的值的型別。

//none(key不存在),string(字串),list(列表),set(集合),zset(有序集),hash(雜湊表)

jedis.type("key1");

//設定key生存時間,當key過期時,它會被自動刪除。

jedis.expire("key1", 5);//5秒過期

//字串值value關聯到key。

jedis.set("key1", "value1");

//將值value關聯到key,並將key的生存時間設為seconds(秒)。

jedis.setex("foo", 5, "haha");

//清空所有的key

jedis.flushall();

//返回key的個數

jedis.dbsize();

//雜湊表key中的域field的值設為value。

jedis.hset("key1", "field1", "field1-value");

jedis.hset("key1", "field2", "field2-value");

map map = new hashmap();

map.put("field1", "field1-value");

map.put("field2", "field2-value");

jedis.hmset("key1", map);

//返回雜湊表key中給定域field的值

jedis.hget("key1", "field1");

//返回雜湊表key中給定域field的值(多個)

list list = jedis.hmget("key1","field1","field2");

for(int i=0;imap = jedis.hgetall("key1");

for(map.entry entry: map.entryset())

//刪除雜湊表key中的乙個或多個指定域

jedis.hdel("key1", "field1");

jedis.hdel("key1", "field1","field2");

//檢視雜湊表key中,給定域field是否存在。

jedis.hexists("key1", "field1");

//返回雜湊表key中的所有域

jedis.hkeys("key1");

//返回雜湊表key中的所有值

jedis.hvals("key1");

//將值value插入到列表key的表頭。

jedis.lpush("key1", "value1-0");

jedis.lpush("key1", "value1-1");

jedis.lpush("key1", "value1-2");

//返回列表key中指定區間內的元素,區間以偏移量start和stop指定.

//下標(index)引數start和stop從0開始;

//負數下標代表從後開始(-1表示列表的最後乙個元素,-2表示列表的倒數第二個元素,以此類推)

list list = jedis.lrange("key1", 0, -1);//stop下標也在取值範圍內(閉區間)

for(int i=0;i**

使用Jedis操作redis

連線redis redis的預設埠是6379 jedis jedis new jedis localhost 6379 驗證密碼,如果沒有設定密碼這段 省略 jedis.auth password jedis.connect 連線 jedis.disconnect 斷開連線 setkeys jedi...

使用Jedis操作Redis 筆記

redis部署在linux下,遠端使用jedis包操作redis的嘗試 jedis連線測試 public static void main string args console redis.clients jedis jedis 3a71f4dd pong使用jedis操作linux下部署的red...

使用jedis對redis進行操作

操作redis的工具類 jedis redis 資料庫的名字 jedis 工具類的名字 使用jedis操作redis時,需要匯入jar包 建立jedis物件 jedis jedis newjedis localhost 6379 呼叫方法執行redis指令 每一條指令,都有乙個方法 jedis.se...