1. 程式人生 > >Redis資料型別(上)

Redis資料型別(上)

資料型別

1.string(字串) 2.hash(雜湊,類似java裡的Map) 3.list(列表) 4.set(集合) 5.zset(sorted set:有序集合)

6.基數

 

String(字串) string是redis最基本的型別,你可以理解成與Memcached一模一樣的型別,一個key對應一個value。 string型別是 二進位制安全的。意思是redis的string可以包含任何資料。比如jpg圖片或者序列化的物件 。 string型別是Redis 最基本的資料型別,一個redis中字串value最多可以是512M

 

Hash(雜湊) Redis hash 是一個鍵值對集合。 Redis hash是一個string型別的 fieldvalue的對映表,hash特別適合用於儲存物件。 類似Java裡面的Map<String,Object>

 

List(列表) Redis 列表是簡單的字串列表,按照插入順序排序。你可以新增一個元素導列表的頭部(左邊)或者尾部(右邊) 它的底層實際是個連結串列

 

Set(集合) Redis的Set是string型別的 無序集合。它是通過 HashTable實現實現的

 

zset(sorted set:有序集合) Redis zset 和 set 一樣也是string型別元素的集合,且不允許重複的成員。 不同的是每個元素都會關聯一個 double型別的 分數。 redis正是通過分數來為集合中的成員進行從小到大的排序。zset的成員是唯一的,但分數(score)卻可以重複。

 

命令地址:http://redisdoc.com/

 

Redis 鍵(key)

1. keys * 2. exists key的名字,判斷某個key是否存在 3. move key db   --->當前庫就沒有了,被移除了 4. expire key 秒鐘:為給定的key設定過期時間 5. ttl key 檢視還有多少秒過期,-1表示永不過期,-2表示已過期,即已被刪除 6. type key 檢視你的key是什麼型別

 

 

 

String型別: 字串是Redis的最基本額資料結構,以一個鍵和一個值儲存在Redis內部 類似java的Map結構,通過鍵去找值

 

基本命令:

支援簡單運算的命令:

 下面是程式碼的測試流程:

 

getrange/setrange getrange:獲取指定區間範圍內的值,類似between......and的關係從零到負一表示全部,預設從0開始                 0 -1:代表全部 setrange設定指定區間範圍內的值,格式是 setrange key值 具體值             即修改原來字串額值從某個位置開始 

 

 setex(set with expire)鍵秒值/setnx(set if not exist) setex:設定帶過期時間的key,動態設定。             setex 鍵 秒值 真實值 setnx:只有在 key 不存在時設定 key 的值。

 

 mset/mget/msetnx mset:同時設定 一個或多個 key-value 對。 mget:獲取所有( 一個或多個)給定 key 的值。 msetnx:同時設定一個或多個 key-value 對,當且僅當 所有給定 key 都不存在。             否則不生效

 

 

 

連結串列List 連結串列結構是 Redis 中一個常用的結構,它可以儲存多個字串,而且它是有序的 Redis 連結串列是雙向的,

 

使用連結串列結構就意味著讀效能的喪失 連結串列只能從 個方向中去遍歷所要節點 優勢:在於插入和刪除的便利 連結串列的資料節點是分配在不同的記憶體域的,並不連續

 

由此可見,連結串列結構的使用是需要注意場景的,對於那些經常需要對資料進行插入和 刪除的列表資料使用它是十分方便的,因為它可以在不移動其他節點的情況下完成插入和 刪除。而對於需要經常查詢的,使用它效能並不佳,它只能從左到右或者從右到左的查詢 和比對。

 

 lpush/rpush/lrange lpush: 從連結串列的左邊插入 rpush: 從連結串列的右邊插入 lrange :檢視連結串列的節點值               lrange  list  start    end          end=-1代表全部

 

 lpop/rpop lpop:刪除左邊的第一個節點, 並且將其返回 rpop:刪除右邊第一個節點, 並且將其返回

 

 lindex,按照索引下標獲得元素(從上到下) lindex:  lindex key index, 索引從零開始 通過索引獲取列表中的元素 

 

 llen 求連結串列的長度, 返回長度

 

 lrem key 刪N個value  * 從left往right刪除2個值等於v1的元素,返回的值為實際刪除的數量  *  LREM list3 0 值,表示刪除全部給定的值。零個就是全部值     lrem list 個數  節點值

ltrim key 開始index 結束index,擷取指定範圍的值後再賦值給key ltrim:擷取指定索引區間的元素,格式是ltrim list的key 起始索引 結束索引        【start end】 開區間    會把擷取的內容儲存在原來的list中,預設擷取位置從0 開始

 rpoplpush 源列表 目的列表 移除列表的最後一個元素,並將該元素新增到另一個列表並返回 移除源列表的最後一個元素並且將其左插到目的列表中

 

 lset key index value 給index出的索引修改值

 

linsert key  before/after 值1 值2 在值1 前面/後面  插入值2

 

它是一個字串連結串列,left、right都可以插入新增; 如果鍵不存在,建立新的連結串列; 如果鍵已存在,新增內容; 如果值全移除,對應的鍵也就消失了。 連結串列的操作無論是頭和尾效率都極高,但假如是對中間元素進行操作,效率就很慘淡了。   連結串列的命令都是程序不安全的, Red is 提供了連結串列的阻塞命令,它 在執行的時候 會給連結串列加鎖,以保 證操作連結串列的命令安全性,