jedis操作詳解 List

2021-07-26 07:41:40 字數 3117 閱讀 7577

在redis

中,list

型別是按照插入順序排序的字串鍊錶。和資料結構中的普通鍊錶一樣,我們可以在其頭部

(left)

和尾部(right)

新增新的元素。在插入時,如果該鍵並不存在,

redis

將為該鍵建立乙個新的鍊錶。與此相反,如果鍊錶中所有的元素均被移除,那麼該鍵也將會被從資料庫中刪除。

list

中可以包含的最大元素數量是

4,294,967,295(42

億左右)。#

在指定key

所關聯的

list value

的尾部插入引數中給出的所有

values

。如果該

key不存在,該命令將在插入之前建立乙個與該

key關聯的空鍊錶,之後再將資料從鍊錶的尾部插入。如果該鍵的

value

不是鍊錶型別,該命令將返回相關的錯誤資訊。

void rpush(final string key, final string... string)

#在指定

key所關聯的

list value

的頭部插入引數中給出的所有

values

。如果該

key不存在,該命令將在插入之前建立乙個與該

key關聯的空鍊錶,之後再將資料從鍊錶的頭部插入。如果該鍵的

value

不是鍊錶型別,該命令將返回相關的錯誤資訊。

void lpush(final string key, final string... string)

#返回指定

key關聯的鍊錶中元素的數量,如果該

key不存在,則返回

0。如果與該

key關聯的

value

的型別不是鍊錶,則返回相關的錯誤資訊。

long llen(final string key)

#返回指定範圍內元素的列表。該命令的引數

start

和end

都是0-based。即0

表示鍊錶頭部

(leftmost)

的第乙個元素。其中

start

的值也可以為負值,

-1將表示鍊錶中的最後乙個元素,即尾部元素,

-2表示倒數第二個並以此類推。該命令在獲取元素時,

start

和end

位置上的元素也會被取出。如果

start

的值大於鍊錶中元素的數量,空煉表將會被返回。如果

end的值大於元素的數量,該命令則獲取從

start(

包括start)

開始,鍊錶中剩餘的所有元素。

listlrange(final string key, final long start, final long end)

#該命令將僅保留指定範圍內的元素,從而保證鏈結中的元素數量相對恆定。

start

和stop

引數都是

0-based,0

表示頭部元素。和其他命令一樣,

start

和stop

也可以為負值,

-1表示尾部元素。如果

start

大於鍊錶的尾部,或

start

大於stop

,該命令不錯報錯,而是返回乙個空的鍊錶,與此同時該

key也將被刪除。如果

stop

大於元素的數量,則保留從

start

開始剩餘的所有元素。

void ltrim(final string key, final long start, final long end)

#該命令將返回鍊錶中指定位置

(index)

的元素,

index

是0-based

,表示頭部元素,如果

index為-1

,表示尾部元素。如果與該

key關聯的不是鍊錶,該命令將返回相關的錯誤資訊。

byte lindex(final string key, final long index)

#設定鍊錶中指定位置的值為新值,其中

0表示第乙個元素,即頭部元素,

-1表示尾部元素。如果索引值

index

超出了鍊錶中元素的數量範圍,該命令將返回相關的錯誤資訊。

void lset(final string key, final long index, final string value)

#在指定

key關聯的鍊錶中,刪除前

count

個值等於

value

的元素。如果

count大於0

,從頭向尾遍歷並刪除,如果

count小於0

,則從尾向頭遍歷並刪除。如果

count等於0

,則刪除鍊錶中所有等於

value

的元素。如果指定的

key不存在,則直接返回

0,返回被刪除的元素數量。

long lrem(final string key, long count, final string value)

#返回並彈出指定

key關聯的鍊錶中的第乙個元素,即頭部元素。如果該

key不存,返回

null

。byte lpop(final string key)

#返回並彈出指定

key關聯的鍊錶中的最後乙個元素,即尾部元素。如果該

key不存,返回

null

。byte rpop(final string key)

#原子性的從與

srckey

鍵關聯的鍊錶尾部彈出乙個元素,同時再將彈出的元素插入到與

dstkey

鍵關聯的鍊錶的頭部。如果

srckey

鍵不存在,該命令將返回

null

,同時不再做任何其它的操作了。如果

srckey

和dstkey

是同乙個鍵,則相當於原子性的將其關聯鍊錶中的尾部元素移到該鍊錶的頭部。

byte rpoplpush(final string srckey, final string dstkey)

Jedis事務詳解

1 正常執行的事務 編碼測試 package com.haiyang import com.alibaba.fastjson.jsonobject import redis.clients.jedis.jedis import redis.clients.jedis.transaction publ...

jedis操作封裝

為什麼我們要封裝jedis?1.每次使用需要釋放資源,2.每次使用需要轉換型別 3.多人開發,key儲存可能覆蓋 根據上述問題,封裝適合自己專案的操作類 針對1 2問題,我們簡單封裝jedisserver public class redisservice finally 設定物件 public b...

Jedis相關操作api list

long rpush string key,string strings 在頭部新增字串值 lpush 和尾 rpush 儲存在key列表。如果key不存在,則在追加操作前建立空列表。如果key存在,但不是列表,則返回錯誤。返回的是成功插入的個數。long lpush string key,stri...