redis學習筆記-04:redis五大數據結構類型

redis的命令大全網站:http://redisdoc.com/java

1、redis五大數據類型redis

一、String(字符串)、Hash(哈希,相似Java裏的Map)、List(列表)、Set(集合)和Zset(sorted set,有序集合)數據庫

二、命令(命令不區分大小寫):安全

(1)set/get/del  常規命令app

(2)append k1 12345  把原值vv1和12345拼接成一個字符串:vv112345大數據

(3)strlen k1  獲得k1值的長度網站

(4)INCR/DECR k2  若是k2的值爲數字,那麼執行一次INCR命令會加1,執行一次DECR命令會減1。spa

(5)INCRBY/DECRBY k2 3  若是k2的值爲數字,那麼執行一次INCRBY命令會加3,執行一次DECRBY命令會減3。對象

(6)getrange k1 0 3  取k1的字符串值的前4個字符 ,因此 get k1 至關於 getrange k1 0 -1。排序

(7)setrange k1 0 xxx  把k1的值的前3個值(和xxx的長度相同)替換爲xxx。

(8)setex k2 5 vv2  把k2的存活時間設置爲5秒。

(9)setnx k4 xxx  若是k4這個鍵值對已經存在了,那麼不起做用,若是不存在,才建立,值爲xxx。

(10)mset/mget k1 v1 k2 v2 k3 v3  mset同時建立三個鍵值對;mget同時獲得k一、k二、k3的值。

(11)msetnx k4 v4 k5 v5  若是這兩個鍵都不存在,才能夠建立成功,不然只要有一個存在,那麼都不能建立成功。

 

2、List(列表)

一、lpush/rpush list01 1 2 3 4 5  建立列表,lpush是值的順序與建立時相反,rpush是值的順序爲建立和顯示一致。

二、lrange list01 0 3  取列表的前4個值,lrange list01 0 -1則表示取出所有。

三、lpop和rpop  lpop返回序號爲1的元素,rpop返回序號最大的元素,而且移除這個元素。

四、lindex list01 3  返回序號爲3(從0開始記數)的元素的值。

五、llen list01  返回列表list01中元素的個數

六、lrem list03 2 3  從list03中刪除2個值爲3的元素,從左往右刪除

七、ltrim list01 0 3  複製list01中的前4個元素,並賦值給list01

八、lset list01 1 3  把數字3插入並替換list01的第2個元素

九、linsert list01 before/after 6 10  在元素6以前插入數字10

 

3、String(字符串)

String是redis最基本的類型,能夠理解爲與Memcahed如出一轍的類型,一個key對應一個value。

String類型是二進制安全的,意思是redis的string能夠包含任何數據,好比jpg圖片或者序列化的對象。

String類型是redis最基本的數據類型,一個redis中字符串的value最多能夠是512M。

 

 

4、Hash(哈希)

redis hash 是一個鍵值對集合,redis hash 是一個string類型的field和value的映射表,hash特別適合用於存儲對象。相似與java裏面的Map<String, Object>。

依然是鍵值對模式,但值自己也是鍵值對。

一、hset user id 11  把user的id屬性的值設爲11

二、hget user id  獲得id屬性的值

三、hmset customer id 11 name li4 age 26  同時設置多個屬性的值

四、hmget customer id name age  同時獲得多個屬性的值

五、hgetall customer  同時獲得全部的屬性和值的鍵值對 

六、hdel user name  刪除user的name屬性

七、hexists customer id  查找customer是否有id屬性

八、hkeys/hvals customer   獲得所有鍵或者值

 

5、Set(集合)和Zset(有序集合)

redis的Set是String類型的無序集合,是經過HashTable實現的。

Zset是有序集合,和set的區別在於每一個元素都會關聯一個double類型的分數,經過分數爲集合中的成員從小到大進行排序。Zset的成員是惟一的,但分數能夠重複。

一、 zadd zset01 60 v1 70 v2 80 v3 90 v4  建立有序列表,按照分數進行排序

二、zrange zset01 0 -1  把zset01的全部值取出來

三、zrange zset01 0 -1 withscores  把值和分數都取出來

四、zrangebyscore zset01 60 90  把60分到90分(大於等於和小於等於)的值都取出來

五、zrangebyscore zset01 (60 (90  把大於60,小於90的值都取出來

六、zrangebyscore zset01 60 90 limit 2 2  從第二個開始取,取兩個

七、zrem zset01 v5  把某個值刪掉

八、zcard zest01  統計值的個數

九、zcount zset01 60 90  統計60-90分的值有多少個

十、zscore zset01 v4  取得值v4對應的分數

十一、zrevrange zset01 0 -1  把值以分數相反的形式返回,原來的順序不變

 

6、redis鍵(key)命令

一、keys *   該數據庫中存在的全部key

二、exists k1  判斷某個key(好比k1)是否存在

三、move k3 2  把k3的鍵值對移動到3號數據庫中

四、expire k1 5   爲給定的key設置過時時間,好比k1只存活5秒

五、ttl k2  查看該key還有多少秒過時,返回-1表示永不過時,返回-2表示已過時

六、type key  查看key是什麼類型的

七、key已經存在value的狀況下,set key 新value:set k1 vv1  新的value會覆蓋舊的value

相關文章
相關標籤/搜索