Redis的五種數據類型(一)

Redis的五種數據類型(一)
                                   5種數據類型:字符串、哈希、鏈表、集合、有序集合。
一、字符串類型(String)
字符串類型是Redis中最爲基礎的數據存儲類型,字符串在Redis中是二進制保存,因此是安全的,這便意味着該類型存入和獲取的數據相同。
在Redis中字符串類型的Value最多可以容納的數據長度是512M。
1、字符串類型的常用命令

(1)set key value
設定key持有指定的字符串value,如果該key存在則進行覆蓋操作。總是返回”OK”。注意:value值可以可以不用添加雙引號。value值在redis中都是以字符串的形式進行存儲;
127.0.0.1:6379> set name "zhangsan"
OK
127.0.0.1:6379> set addr shanghai
OK
127.0.0.1:6379> set age 13
OK

(2)get key
獲取key的value。如果與該key關聯的value不是String類型,redis將返回錯誤信息,因爲get命令只能用於獲取String value;如果該key不存在,返回(nil)。
127.0.0.1:6379> get name
"zhangsan"
127.0.0.1:6379> get addr
"shanghai"
127.0.0.1:6379> get age
"13"
127.0.0.1:6379> get company
(nil)

(3)del key
根據指定的key刪除對應的數據。
127.0.0.1:6379> del name
(integer) 1
127.0.0.1:6379> del name
(integer) 0

(4)設置多個值:mset key1 value1 [key2 value2 ...]
127.0.0.1:6379> mset name zhangsan age 13
OK

(5)獲取多個值:mget key1 [key2...]
127.0.0.1:6379> mget name age
1) "zhangsan"
2) "13"
(6)設置值(返回原值):getset key value

127.0.0.1:6379> getset name lisi
"zhangsan"
127.0.0.1:6379>

二、Hash類型
Redis中的Hash類型可以看成具有String Key和String Value的map容器。所以該類型非常適合於存儲值對象的信息。
如username、password和age等。如果Hash中包含很少的字段,那麼該類型的數據也將僅佔用很少的磁盤空間。每一個Hash可以存4294967295個鍵值對。
1、Hash類型的常用命令

(1)hset key field value   爲指定的key設定field/value對(鍵值對)。
127.0.0.1:6379> hset stu name zhangsan
(integer) 1
127.0.0.1:6379>

(2)hget key field      返回指定的key中的field的值
127.0.0.1:6379> hget stu name
"zhangsan"
127.0.0.1:6379>

(3) hmset key  field value[field2 value2 ...]    批量給指定key設置多個key-value值
127.0.0.1:6379> hmset stu name zhangsan age 13
OK
127.0.0.1:6379>

(4)hmget key  field[field2  ...]  批量獲取指定key的多個key-value值
127.0.0.1:6379> hmget stu name age
1) "zhangsan"
2) "13"
127.0.0.1:6379>

(5)hgetall key   批量獲取指定key的所有key-value值
127.0.0.1:6379> hgetall stu
1) "name"
2) "zhangsan"
3) "age"
4) "13"
127.0.0.1:6379>
(6)hdel key field [field2 … ]   可以刪除一個或多個字段,返回值是被刪除的字段個數

127.0.0.1:6379> hdel stu name age
(integer) 2
127.0.0.1:6379>

三、鏈表類型list
List就是鏈表,相信略有數據結構知識的人都應該能理解其結構。使用List結構,我們可以輕鬆地實現最新消息排行等功能。
List的另一個應用就是消息隊列,可以利用List的PUSH操作,將任務存在List中,然後工作線程再用POP操作將任務取出進行執行。
Redis還提供了操作List中某一段的api,你可以直接查詢,刪除List中某一段的元素。
1、鏈表類型的常用命令

(1)頭部插入  lpush key value1 value2 …
在指定的key所關聯的list的頭部插入所有的values,如果該key不存在,該命令在插入的之前創建一個與該key關聯的空鏈表,
之後再向該鏈表的頭部插入數據。如果插入成功,返回元素的個數。
127.0.0.1:6379> lpush stus zhagnsan lisi wangwu
(integer) 3
127.0.0.1:6379>

(2)尾部插入  rpush key value value value
在指定的key對應的list的尾部插入所有的value,如果該key不存在,該命令在插入之前創建一個與該key對應的空鏈表,
再從尾部插入數據。如果插入成功,返回元素的個數。
127.0.0.1:6379> rpush strs zhangfei guanyu liubei
(integer) 3
127.0.0.1:6379>

(3)查看列表   lrange key 0 -1  和 lrange key start end
查看list中的所有數據;
127.0.0.1:6379> lrange stus 0 -1
1) "wangwu"
2) "lisi"
3) "zhagnsan"
127.0.0.1:6379>

查看list中索引爲start到end的數據;
127.0.0.1:6379> lrange stus 0 2
1) "wangwu"
2) "lisi"
3) "zhagnsan"
127.0.0.1:6379>

(4)從list頭部取出元素  lpop key
返回並彈出指定的key關聯的鏈表中的第一個元素,即頭部元素。如果該key不存在,返回nil;若key存在,則返回鏈表的頭部元素。
127.0.0.1:6379> lpop stus
"wangwu"
127.0.0.1:6379>

(5)從list尾部取出元素  rpop key
127.0.0.1:6379> rpop stus
"zhagnsan"
127.0.0.1:6379>

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