Redis學習三:Redis資料類型

來源:互聯網
上載者:User
一、Redis的五大資料類型1.String(字串)

string是redis最基本的類型,你可以理解成與Memcached一模一樣的類型,一個key對應一個value。
string類型是二進位安全的。意思是redis的string可以包含任何資料。比如jpg圖片或者序列化的對象 。
string類型是Redis最基本的資料類型,一個redis中字串value最多可以是512M

2.Hash(雜湊,類似java裡的Map)

Redis hash 是一個索引值對集合。
Redis hash是一個string類型的field和value的映射表,hash特別適合用於儲存物件。
類似Java裡面的Map<String,Object>

3.List(列表)

Redis 列表是簡單的字串列表,按照插入順序排序。你可以添加一個元素導列表的頭部(左邊)或者尾部(右邊)。
它的底層實際是個鏈表

4.Set(集合)

Redis的Set是string類型的無序集合。它是通過HashTable實現實現的,

5.Zset(sorted set:有序集合)

zset(sorted set:有序集合)
Redis zset 和 set 一樣也是string類型元素的集合,且不允許重複的成員。
不同的是每個元素都會關聯一個double類型的分數。
redis正是通過分數來為集合中的成員進行從小到大的排序。zset的成員是唯一的,但分數(score)卻可以重複。

哪裡去獲得redis常見資料類型操作命令:Http://redisdoc.com/

 

二、Redis 鍵(key)1.常用命令:

2.案例

 keys *

exists key的名字,判斷某個key是否存在

move key db   --->當前庫就沒有了,被移除了

expire key 秒鐘:為給定的key設定到期時間

ttl key 查看還有多少秒到期,-1表示永不到期,-2表示已到期

 type key 查看你的key是什麼類型

 

三、Redis字串(String)

單值Value

1.常用

2.案例

set/get/del/append/strlen

Incr/decr/incrby/decrby,一定要是數字才能進行加減

getrange/setrange

getrange:擷取指定區間範圍內的值,類似between......and的關係
從零到負一表示全部

setrange設定指定區間範圍內的值,格式是setrange key值 具體值

setex(set with expire)鍵秒值/setnx(set if not exist)

setex:設定帶到期時間的key,動態設定。
setex 鍵 秒值 真實值

setnx:只有在 key 不存在時設定 key 的值。

1 則為成功,0 則為不成功

mset/mget/msetnx


mset:同時設定一個或多個 key-value 對。

mget:擷取所有(一個或多個)給定 key 的值。

msetnx:同時設定一個或多個 key-value 對,若且唯若所有給定 key 都不存在。

getset(先get再set)

getset:將給定 key 的值設為 value ,並返回 key 的舊值(old value)。
簡單一句話,先get然後立即set

 

四、Redis列表(List)

單值多value

1.常用

2.案例

lpush/rpush/lrange

lpop/rpop

lindex,按照索引下標獲得元素(從上到下)

通過索引擷取列表中的元素 lindex key index

llen

lrem key 刪N個value

* 從left往right刪除2個值等於v1的元素,返回的值為實際刪除的數量
* LREM list3 0 值,表示刪除全部給定的值。零個就是全部值

ltrim key 開始index 結束index,截取指定範圍的值後再賦值給key

ltrim:截取指定索引區間的元素,格式是ltrim list的key 起始索引 結束索引

rpoplpush 源列表 目的列表

移除列表的最後一個元素,並將該元素添加到另一個列表並返回

lset key index value

linsert key  before/after 值1 值2

在list某個已有值的前後再添加具體值

效能總結

它是一個字串鏈表,left、right都可以插入添加;
如果鍵不存在,建立新的鏈表;
如果鍵已存在,新增內容;
如果值全移除,對應的鍵也就消失了。
鏈表的操作無論是頭和尾效率都極高,但假如是對中間元素進行操作,效率就很慘淡了。

 

五、Redis集合(Set)1.常用

單值多value

2.案例

sadd/smembers/sismember

scard,擷取集合裡面的元素個數

srem key value 刪除集合中元素

srandmember key 某個整數(隨機出幾個數)

* 從set集合裡面隨機取出2個
* 如果超過最大數量就全部取出,
* 如果寫的值是負數,比如-3 ,表示需要取出3個,但是可能會有重複值。

 spop key 隨機出棧

 smove key1 key2 在key1裡某個值      作用是將key1裡的某個值賦給key2

數學集合類

差集:sdiff

在第一個set裡面而不在後面任何一個set裡面的項

交集:sinter

並集:sunion

 

六、Redis雜湊(Hash) 【重點】

KV模式不變,但V是一個索引值對

1.常用

2.案例

hset/hget/hmset/hmget/hgetall/hdel

hlen

hexists key 在key裡面的某個值的key

hkeys/hvals

hincrby/hincrbyfloat

hsetnx

不存在賦值,存在了無效。

 

七、Redis有序集合Zset(sorted set)

 

在set基礎上,加一個score值。
之前set是k1 v1 v2 v3,
現在zset是k1 score1 v1 score2 v2

1.常用

2.案例

zadd/zrange

 zrangebyscore key 開始score 結束score

zrem key 某score下對應的value值,作用是刪除元素


刪除元素,格式是zrem zset的key 項的值,項的值可以是多個

zrem key score某個對應值,可以是多個值

zcard/zcount key score區間/zrank key values值,作用是獲得下標值/zscore key 對應值,獲得分數

zcard :擷取集合中元素個數

zcount :擷取分數區間內元素個數,zcount key 開始分數區間 結束分數區間

zrank: 擷取value在zset中的下標位置

zscore:按照值獲得對應的分數

zrevrank key values值,作用是逆序獲得下標值

正序、逆序獲得下標索引值

zrevrange

zrevrangebyscore  key 結束score 開始score

zrevrangebyscore zset1 90 60 withscores    分數是反著來的

 

參考資料:

《尚矽谷redis視頻學習》

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.