redis數據類型

redis數據類型共有5種

一、string類型

string爲最簡單的類型,與Memcached一樣的類型,一個key對應一個value,其支持的操作與Memcached的操作類似,它的功能更豐富。設置可以存二進制的對象。
示例:

#  redis-cli    //連接redis
127.0.0.1:6379> set mykey "com"
OK
127.0.0.1:6379> get mykey
"com"
127.0.0.1:6379> mset key1 1 key2 a key3 c   //一次設置多個鍵值
127.0.0.1:6379> mget key1 key2 key3           //一次獲取多個key的值
1) "1"
2) "a"
3) "c"

二 list類型

list是一個鏈表結構,主要功能是push、pop、獲取一個範圍的所有值等等。操作中key理解爲鏈表的名字。
使用 list 結構,我們可以輕鬆地實現最新消息排行等功能(比如新浪微博的 TimeLine )。list 的另一個應用就是消息隊列,可以利用 list 的 push操作,將任務存在 list 中,然後工作線程再用pop操作將任務取出進行執行。
示例:

 # redis-cli 
127.0.0.1:6379> LPUSH list1 "lijie"
127.0.0.1:6379> LPUSH list1  "1 2 3"
127.0.0.1:6379> LPUSH list1 "aaa bbb“
127.0.0.1:6379> LRANGE list1 0 -1
1) "aaa bbb"
2) "1 2 3"
3) "lijie“
127.0.0.1:6379> LPOP list1
"aaa bbb"
127.0.0.1:6379> LRANGE list1 0 -1
1) "1 2 3"
2) "lijie“

三 set 集合

set是集合,和我們數學中的集合概念相似,對集合的操作有添加刪除元素,有對多個集合求交併差等操作。操作中key理解爲集合的名字。比如在微博應用中,可以將一個用戶所有的關注人存在一個集合中,將其所有粉絲存在一個集合。因爲 Redis 非常人性化的爲集合提供了求交集、並集、差集等操作,那麼就可以非常方便的實現如共同關注、共同喜好、二度好友等功能,對上面的所有集合操作,你還可以使用不同的命令選擇將結果返回給客戶端還是存集到一個新的集合中。
set示例

127.0.0.1:6379> SADD set1 a
127.0.0.1:6379> SADD set1 b
127.0.0.1:6379> SADD set1 c
127.0.0.1:6379> SADD set1 d
127.0.0.1:6379> SMEMBERS set1
1) "d"
2) "b"
3) "a"
4) "c"
127.0.0.1:6379> SREM set1 c//刪除元素
127.0.0.1:6379> SADD set2 a 2  b
127.0.0.1:6379> SINTER set1 set2 //交集
127.0.0.1:6379> SUNION set1 set2 //並集
127.0.0.1:6379> SDIFF set1 set2 //差集

四 sort set

sorted set是有序集合,它比set多了一個權重參數score,使得集合中的元素能夠按 score 進行有序排列,比如一個存儲全班同學成績的 Sorted Sets,其集合 value 可以是同學的學號,而 score 就可以是其考試得分,這樣在數據插入集合的時候,就已經進行了天然的排序。

127.0.0.1:6379> ZADD set3 12 abc
127.0.0.1:6379> ZADD set3 2 "cde 123"
127.0.0.1:6379> ZADD set3 24 "123-aaa"
127.0.0.1:6379> ZADD set3 4 "a123a"
127.0.0.1:6379> ZRANGE set3 0 -1
1) "cde 123"
2) "a123a"
3) "abc"
4) "123-aaa"
127.0.0.1:6379> ZREVRANGE set3 0 -1     //倒序
1) "123-aaa"
2) "abc"
3) "a123a"
4) "cde 123"

五 hash

在 Memcached 中,我們經常將一些結構化的信息打包成 hashmap,在客戶端序列化後存儲爲一個字符串的值(一般是 JSON 格式),比如用戶的暱稱、年齡、性別、積分等。
示例

127.0.0.1:6379> hset hash1 name lijie
127.0.0.1:6379> hget hash1 name
"lijie"
127.0.0.1:6379> hset hash1  age 30
127.0.0.1:6379> hget hash1 age 
"30"
127.0.0.1:6379> hgetall hash1
1) "name"
2) "aming"
3) "age"
4) "30"
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章