Redis學習筆記三:Redis的數據類型
redis是一種高級的key-value的存儲系統
1,key是字符串類型
2,value可以存儲五種數據類型:
1.存儲字符串 string
set key value
:設定key持有指定的字符串value,若是該key存在則進行覆蓋操做
get key
:獲取key的value。若是與該key關聯的value不是String類型,redis 將返回錯誤信息,由於get命令只能用於獲取String value;若是該key不存在,返回null
getset key value
:先獲取該key的值,而後在設置該key的值
incr key
:將指定的key的value原子性的遞增1.若是該key不存在,其初始值 爲0,在incr以後其值爲1。若是value的值不能轉成整型,如hello,該操做將執 行失敗並返回相應的錯誤信息
decr key
:將指定的key的value原子性的遞減1.若是該key不存在,其初始值 爲0,在incr以後其值爲-1。若是value的值不能轉成整型,如hello,該操做將執 行失敗並返回相應的錯誤信息
incrby key increment
:將指定的key的value原子性增長increment,若是該 key不存在,器初始值爲0,在incrby以後,該值爲increment。若是該值不能轉成 整型,如hello則失敗並返回錯誤信息
decrby key decrement
:將指定的key的value原子性減小decrement,若是 該key不存在,器初始值爲0,在decrby以後,該值爲decrement。若是該值不能 轉成整型,如hello則失敗並返回錯誤信息
append key value
:若是該key存在,則在原有的value後追加該值;若是該 key 不存在,則從新建立一個key/value
2.存儲list類型
在Redis中,List類型是按照插入順序排序的字符串鏈表。和數據結構中的普通鏈表 同樣,咱們能夠在其頭部(left)和尾部(right)添加新的元素。
lpush key value1 value2...
:在指定的key所關聯的list的頭部插入全部的 values,若是該key不存在,該命令在插入的以前建立一個與該key關聯的空鏈 表,以後再向該鏈表的頭部插入數據。插入成功,返回元素的個數
rpush key value一、value2…
:在該list的尾部添加元素
lrange key start end
:獲取鏈表中從start到end的元素的值,start、end可 爲負數,若爲-1則表示鏈表尾部的元素,-2則表示倒數第二個,依次類推…
lpushx key value
:僅當參數中指定的key存在時(若是與key管理的list中沒 有值時,則該key是不存在的)在指定的key所關聯的list的頭部插入value
rpushx key value
:在該list的尾部添加元素
lpop key
:返回並彈出指定的key關聯的鏈表中的第一個元素,即頭部元素
rpop key
:從尾部彈出元素
rpoplpush resource destination
:將鏈表中的尾部元素彈出並添加到頭部
llen key
:返回指定的key關聯的鏈表中的元素的數量
lset key index value
:設置鏈表中的index的腳標的元素值,0表明鏈表的頭元 素,-1表明鏈表的尾元素
lrem key count value
:刪除count個值爲value的元素,若是count大於0,從頭向尾遍歷並刪除count個值爲value的元素,若是count小於0,則從尾向頭遍歷並刪除。若是count等於0,則刪除鏈表中全部等於value的元素
linsert key before|after pivot value
:在pivot元素前或者後插入value這個 元素
3.存儲set類型
在Redis中,咱們能夠將Set類型看做爲沒有排序的字符集合,和List類型同樣。但和List類型不一樣的是,Set集合中不容許出現重複的元素。
sadd key value一、value2…
:向set中添加數據,若是該key的值已有則不會重複添加
smembers key
:獲取set中全部的成員
scard key
:獲取set中成員的數量
sismember key member
:判斷參數中指定的成員是否在該set中,1表示存 在,0表示不存在或者該key自己就不存在
srem key member一、member2…
:刪除set中指定的成員
srandmember key
:隨機返回set中的一個成員
sdiff sdiff key1 key2
:返回key1與key2中相差的成員,並且與key的順序有 關。即返回差集
sdiffstore destination key1 key2
:將key一、key2相差的成員存儲在 destination上
sinter key[key1,key2…]
:返回交集
sinterstore destination key1 key2
:將返回的交集存儲在destination上
sunion key一、key2
:返回並集
sunionstore destination key1 key2
:將返回的並集存儲在destination上
4.存儲zset(sorted set)
Sorted-Sets和Sets類型極爲類似,它們都是字符串的集合,都不容許重複的成員出 如今一個Set中。它們之間的主要差異是Sorted-Sets中的每個成員都會有一個分 數(score)與之關聯,Redis正是經過分數來爲集合中的成員進行從小到大的排序。然 而須要額外指出的是,儘管Sorted-Sets中的成員必須是惟一的,可是分數(score) 倒是能夠重複的。
zadd key score member score2 member2 …
:將全部成員以及該成員的分數存放到sorted-set中
zcard key
:獲取集合中的成員數量
zcount key min max
:獲取分數在[min,max]之間的成員
zincrby key increment member
:設置指定成員的增長的分數
zrange key start end [withscores]
:獲取集合中腳標爲start-end的成員,[withscores]參數代表返回的成員包含其分數
zrangebyscore key min max [withscores] [limit offset count]
:返回分數在[min,max]的成員並按照分數從低到高排序。[withscores]:顯示分數;[limit offset count]:offset,代表從腳標爲offset的元素開始並返回count個成員
zrank key member
:返回成員在集合中的位置
zrem key member[member…]
:移除集合中指定的成員,能夠指定多個成員
zscore key member
:返回指定成員的分數
5.存儲hash
Redis中的Hashes類型能夠當作具備String Key和String Value的map容器。所 以該類型很是適合於存儲值對象的信息
hset key field value
:爲指定的key設定field/value對(鍵值對)
hgetall key
:獲取key中的全部filed-vaule
hget key field
:返回指定的key中的field的值
hmset key fields
:設置key中的多個filed/value
hmget key fileds
:獲取key中的多個filed的值
hexists key field
:判斷指定的key中的filed是否存在
hlen key
:獲取key所包含的field的數量
hincrby key field increment
:設置key中filed的值增長increment,如:age增長20
6. 最後附一張數據結構大體的存儲圖
歡迎關注本站公眾號,獲取更多信息