※list
可重覆的隊列增、改:
lpush(left push):從左邊開始塞值,越先塞的會被擠到右邊,重覆下指令會 appendrpush(right push):和 lpush 一樣,差別是從右邊往左邊塞值
lpushx(exists)、rpushx:只有 key 存在才會 push 成功,也就是 key 至少要有一個元素
linsert:在指定的 value 之前或之後插入想加入的值
linsert key名稱 [before|after] 已有的值 想插入的值:在已有的值前或後增加想插入的值,但 如果有多個已有的值,只會插入第一個
linsert key before xxx ooo:在 xxx 前面插入 ooo
lset :覆蓋指定的index
假設有個 list 內容是 a b c d e,下 lset list 3 xxx,那 list 內容會變成 a b c xxx e
lpush示例:
rpush示例:
刪:
lrem(left remove):刪除元素格式:lrem key名稱 count 刪除內容
.count > 0 從左到右刪除幾個最右邊參數的內容
.count < 0 從右到左刪除幾個最右邊參數的內容
.count = 0 將最右邊參數的內容全部刪除
ltrim:保留一個連續範圍,其他全部刪除,由0開始,-1表示倒數第一個,-2表示倒數第二個,依此類推
查:
llen(left length):查有幾個元素lindex(left index):查第幾個元素的值
lrange:由0開始,-1表示倒數第一個,-2表示倒數第二個,依此類推
rlen、rrem、rindex、rrange、rtrim:哈哈哈!唬弄你的,並沒有這些命令
刪+查:
rpop:取得最右邊的值後刪除
blpop:和 lpop 很像,當沒有值可 pop 時,會阻塞住,直到有值返回或 timeout
blpop key… timeout 時間(秒)
brpop:blpop 的相反
刪+增:
rpoplpush:將最右邊的值彈出插入到另一個 list(自己也行),然後刪除最右邊的值※set
裡面的成員不可重覆增、改:
sadd:增加、附加成員刪:
srem:刪除一到多個成員查:
smembers:查看所有成員sismember:給一個 value,回傳是否是裡面的成員
scard:查看有多少成員
srandmember:隨機出現一個元素
但如果有加參數,就會顯示多少個,但不會重覆
又如果數字超過成員的數,還是只會顯示成員的總數
差集、交集、併集
sadd set1 a b c d esadd set2 c d e f g
sadd set3 b c d e f
.sdiff:差集,返回的是第一個 key 剩下的部分
sdiff set1 set2,返回隨機的 a b
sdiff set2 set1,返回隨機的 f g
sdiff set1 set2 set3,返回 a
.sinter:交集。返回相同的部分
sinter set1 set2,返回隨機的 c d e
sinter set1 set2 set3,還是返回隨機的 c d e
.sunion:併集,全部成員都有,但會去掉重覆的部分
sunion set1 set2,返回隨機的 a b c d e f g
sdiffstore、sinterstore、sunionstore,這三個都是在最後加上「store」,前面沒加 store 只是返回,加上 store 後,可以儲存在新的 set,此 key 可以不存在,存在就覆蓋
sdiffstore xxx set1 set2,將 set1 set2 的差集結果,存到 xxx 這個 key
刪+查:
spop:返回並刪除隨機一到多個數刪+增:
smove 將 key1 裡的成類數數移動到 key2 裡的成員數值smove key1 key2 成員數值
※hash
Key、Value 鍵值對增、改:
hset:塞一個鍵值對hmset:塞多個鍵值對
hsetnx:key沒有才能塞進去
hincrby:增加整數,可為負數
hincrbyfloat:增加整數、小數,可為負數
刪:
hdel:刪除一到多個鍵查:
hget:取一個鍵值對hmget:取多個鍵值對
hgetall:取得 key 裡的所有鍵值對
hkeys:取得 key 裡的所有鍵
hvals:取得 key 裡的所有值
hlen:取得 key 裡有多少鍵值對
hstrlen:取得 key 裡的鍵,對應鍵的值有多長
hexists:判斷 key 裡有沒有給定的鍵
※sotedset
set 加上一個數字,可以利用此數字由小到大排序,這個數字的名字叫 score增、改:
zadd:新增、附加一到多個成員,score 可以是負數xx:只能修改,注意回傳值,預設是新增成功的數量,加 ch 才看的出來
nx:只能新增
incr:增加 score,可以是負數
ch:變化在返回值,不加時回傳的是新增的數量;加了是更改的數量
zincrby:增加、減少某個 key 的 score,可用小數點,但有可能不夠精確
如果沒有 key 會自動增加 key
如果 key 裡沒有對應的值,會新增
刪:
zrem:移除一到多個成員zremrangebyscore:移除 score 的範圍
zremrangebyrank:移除 index 的範圍
查:
zrange[withscores]:查看元素,加上 withscores 會顯示 scorezrevrange:zrange 的倒序
zrank:給某個成員值,取得它的 index
zrevrank:zrank 的倒序
zscore:查看某個成員的 score
zcard:查看有多少成員
zcount:查看某 score 範圍的成員個數
zrangebyscore:依 score 由小到大排序
zrangebyscore key -10 5,表示 score 從 -10 到 5
zrangebyscore key (-10 5,表示 score 從 -10 到 5,但不包括 -10,「(」有不等於的意思
zrangebyscore key -inf +inf,因為有時想從小到大全部列出來,不想寫範圍,可以用這個
上面的結果有一個全新的資料後,還可以再截取,使用 limit
zrangebyscore key -10 5 limit 2 4,表示 score 從 -10 到 5 出來的結果,然後再從新的結果取index 為 2 開始的數字開始取 4 個
zrevrangebyscore:反向的 zrangebyscore
zrangebyscore key -10 5,表示 score 從 -10 到 5
zrangebyscore key (-10 5,表示 score 從 -10 到 5,但不包括 -10,「(」有不等於的意思
zrangebyscore key -inf +inf,因為有時想從小到大全部列出來,不想寫範圍,可以用這個
上面的結果有一個全新的資料後,還可以再截取,使用 limit
zrangebyscore key -10 5 limit 2 4,表示 score 從 -10 到 5 出來的結果,然後再從新的結果取index 為 2 開始的數字開始取 4 個
zrevrangebyscore:反向的 zrangebyscore
沒有留言:
張貼留言