Redis 資料型別及命令詳細介紹

2021-10-06 16:42:46 字數 3334 閱讀 5364

字串型別是redis中最為基礎的資料儲存型別,該型別可以接受任何格式的資料,如jpeg影象資料或json物件描述資訊等。在redis中字串型別的value最多可以容納的資料長度是512m。

set key value 			// 設定鍵值

get key // value

setex key seconds value // 設定鍵值及過期時間

mset key1 value1 key2 value2 ... // 設定多個鍵值

mget key1 key2...

你可以用redis字串做許多有趣的事,例如你可以:

del k1 k2    	// 刪除鍵及對應的值

keys * // 檢視所有key /keys k* (正則)

expire k1 100 // 設定過期時間

ttl k1 // 檢視有效時間.鍵不存在為-2,鍵永久時間為-1

exists k1 // 存在為1,不存在為0

type k1 // 檢視value的型別

hashes是字串欄位和字串值之間的對映,所以它們是完美的表示物件(eg:乙個有名,姓,年齡等屬性的使用者)的資料型別。

hash⽤於儲存物件,物件的結構為屬性、值(key field value)

值的型別為string

hset key field value	 

hmset key field value field2 value2 ...

hget key field

hmget key field field2 ...

hkeys key // 獲取key 所有field

hvals key // 獲取key 所有value

hdel key field field2 ...// 刪除key下的field及其對應的value

del key // 刪除鍵下所有的field及其對應的value

hlen key // 獲取鍵值對的個數

列表是簡單的字串列表,按照插入順序排序。 你可以新增乙個元素到列表的頭部(左邊)或者尾部(右邊)。(頭 l1 l2 … 尾)

lpush 命令插入乙個新元素到列表頭部,而rpush命令 插入乙個新元素到列表的尾部。當對乙個空key執行其中某個命令時,將會建立乙個新錶。

列表的元素型別為string

按照插⼊順序排序

lpush key v1 v2 ...			// 將新元素插在頭部(頭 ... v2 v1 尾)

rpush key l1 l2 ... // 將新元素插在尾部(頭 ... v2 v1 l1 l2 ... 尾)

lpop key // 將第乙個元素刪除並丟擲

linsert key before/after l1 a1 // 將新元素插在l1之前/之後

lset key index value // 更新index對應的值

lrange key start stop // 遍歷list中的元素(從0開始,左右都包),stop為-1遍歷所有元素

lindex key index // 檢視index對應的值

lrem key count value // 從左往右刪除乙個或多個為value的值 (沒有rrem)

llen key // 檢視list長度

乙個列表最多可以包含232-1個元素(4294967295,每個表超過40億個元素)。

從時間複雜度的角度來看,redis列表主要的特性就是支援時間常數的插入和靠近頭尾部元素的刪除,即使是需要插入上百萬的條目。 訪問列表兩端的元素是非常快的,但如果你試著訪問乙個非常大的列表的中間元素仍然是十分慢的,因為那是乙個時間複雜度為 o(n) 的操作。

你可以用redis列表做許多有趣的事,例如你可以:

redis集合是乙個無序的字串合集。你可以以o(1) 的時間複雜度(無論集合中有多少元素時間複雜度都為常量)完成 新增,刪除以及測試元素是否存在的操作。

redis集合有著不允許相同成員存在的優秀特性。向集合中多次新增同一元素,在集合中最終只會存在乙個此元素。實際上這就意味著,在新增元素前,你並不需要事先進行檢驗此元素是否已經存在的操作。

乙個redis列表十分有趣的事是,它們支援一些服務端的命令從現有的集合出發去進行集合運算。 所以你可以在很短的時間內完成合併(union),求交(intersection), 找出不同元素的操作。

乙個集合最多可以包含232-1個元素(4294967295,每個集合超過40億個元素)。

⽆序集合

元素為string型別

元素具有唯⼀性,不重複

說明:對於集合沒有修改操作

sadd key member member2 ... 	// 新增元素

smembers key // 檢視所有元素

sismember key member // 檢視指定元素是否存在,1:存在,0:不存在

srem key memeber ... // 刪除元素

sinter key key2 ... // 返回key和key2中的交集元素

spop key count // 隨機刪除並丟擲count個元素(count省略時丟擲乙個元素)

srandmember key count // 隨機丟擲count個元素(不刪除該元素)

你可以用redis集合做很多有趣的事,例如你可以:

redis有序集合和redis集合類似,是不包含 相同字串的合集。它們的差別是,每個有序集合 的成員都關聯著乙個評分,這個評分用於把有序集 合中的成員按最低分到最高分排列。

使用有序集合,你可以非常快地(o(log(n)))完成新增,刪除和更新元素的操作。 因為元素是在插入時就排好序的,所以很快地通過評分(score)或者 位次(position)獲得乙個範圍的元素。 訪問有序集合的中間元素同樣也是非常快的,因此你可以使用有序集合作為乙個沒用重複成員的智慧型列表。 在這個列表中, 你可以輕易地訪問任何你需要的東西: 有序的元素,快速的存在性測試,快速訪問集合中間元素!

sorted set,有序集合

元素為string型別

元素具有唯⼀性,不重複

每個元素都會關聯⼀個double型別的score,表示權重,通過權重將元素從⼩到⼤排序

說明:沒有修改操作

zadd 

zrange

zrangebyscore

zrem

zremrangebyscore

zscore

使用有序集合你可以:

redis命令及jedis資料型別

redis命令 auth setdel expire設定過期時間 ttl 檢視剩餘秒數 exists key 判斷是否存在 persit 取消過期時間 redis 有 16個庫,預設的庫是0 select index 選擇庫 select 1 move key db 遷庫 rename key 重新...

Redis 常用資料型別及命令

string string是最常用的一種資料型別,普通的key value儲存都可以歸為此類,如get set 命令操作 如set命令格式 set key value hash 雜湊 redis hash 是乙個 string 型別的 field 和 value 的對映表 如hset命令格式hset...

redis 資料型別 命令

del key 用於在key存在時刪除key dump key 序列化給定key,並返回被序列化的值 exists key 檢查給定key是否存在 expire key seconds 為給定key設定過期時間 expireat key timestamp 與expire類似,不同的是該指令接受的時...