redis 學習-入門-數據類型

概述

redis是基於key-value 我們所說的數據類型實際是 key-value 中的 value 。文章主要介紹的是redis 幾個重要的數據類型的使用。

簡單使用

//keys pattern 獲取某種匹配的key
例如 :  keys *  

set foo 1

//獲取某個key 對應的 value 是什麼類型的
例如 : type  foo 

//某個key-value 是否存在
例如 : EXISTS foo 

//刪除鍵
例如 :DEL foo 


數據類型使用

我們前面說的 redis 的儲存數據結構的格式爲 :key-value 的格式,其中 key 爲 String , 而 value 取下面幾種數據類型:

string

Redis 中的數據相當於

 HashMap<String,String> map = new HashMap<String,String>();  

示例 :

> set hello world
OK
> get hello
world

散列類型

類似於:

HashMap<String,HashMap<String,String>> map = new HashMap<String,HashMap<String,String>>();  

示例 :

> 127.0.0.1@6379 connected!
## 設置一個 哈希值 
> hset car price 500
1
## 設置第二個哈希值 
> hset car name BMW
1
## 單獨拿出第一個哈希值 
> hget  car price
500
## 一起拿出來 
> HMGET car  price name
500
BMW

列表類型

類似於:

HashMap<String,Node<String>  hashmap = new HashMap<String,Node<String>();

其中 value 是個雙向鏈表 ,獲取靠近兩端的數據速度極快, 而當元素增多後 ,訪問中間數據的數據會較慢,所以它更加適合實現如 “新鮮事” 或 “日誌” 這種很少訪問中間元素的應用

集合類型

類似於:

HashMap<String,List<String>>

示例 :

> sadd   list  1 2 3 4 48 5 54 32
8
> SMEMBERS list
1
2
3
4
5
32
48
54

有序集合類型

類似於:

HashMap<String,Set<String>>

有序集合類型是使用散列表跳躍表實現的,所以即使讀取位於中間部分的數據速度也很快 (時間複雜度是 O(Log(N))), 但是有序隊列要比列表類型更耗費內存

示例:

> zadd  settest  70 jim  60 amy 90 mike
3
> ZSCORE settest jim
70

小結

今天小結一下一些 redis 常用的命令,介紹了幾個redis重要的數據結構。

參考資料

-《redis設計及實現》

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章