Redis In Action 筆記(一):基本資料型別及其操作

tsin發表於2019-06-07

參考資料:https://redislabs.com/ebook/part-1-getting...

string

Redis In Action 筆記(一):基本資料型別及其操作

    set abc hello  // OK
    get abc hello  // hello
    del abc  // (integer) 1
//增加/減少
incr key   // +1
decr key  //-1
incrby key amount  // +amount
decrby key amount  // -amount
//子串/位操作
append key value // 附加value到原有值後面
getrange key start end  //獲取子串
setrange key offset value  //將offset位置的值替換為value
getbit key offset  //將字串看成二進位制,返回offset位置的二進位制
setbit key offset value //將字串看成二進位制,offset位置設定為value

list

Redis In Action 筆記(一):基本資料型別及其操作

列表中的值可重複

rpush list-key item     // (integer) 1  //從右邊新增一個元素
rpush list-key item2   // (integer) 2
rpush list-key item    // (integer) 3
lrange list-key 0 -1   //1) "item" 2) "item2" 3) "item"  //輸出整個列表
lindex list-key 1    // item2  //指定位置的元素
lpop list-key    // item  //從左邊刪除一個元素
//阻塞(block)型操作和list之間轉移元素
blpop key [key …] timeout  //從左到右的key列表中,彈出非空的一個,設定超時
brpop  //原理同上,參考:http://redisdoc.com/list/blpop.html
rpoplpush source-key dest-key
brpoplpush source-key dest-key timeout

set

Redis In Action 筆記(一):基本資料型別及其操作

集合中的元素無序、不重複

sadd set-key item    // (integer) 1  //新增一個元素
sadd set-key item2  // (integer) 1
sadd set-key item3   // (integer) 1
sadd set-key item    // (integer) 0  //新增已存在的元素返回0

smembers set-key    // 1) "item"  2) "item2"  3) "item3" //輸出集合中所有元素
sismember set-key item4  // (integer) 0  // 判斷item4是否在set-key集合中,不存在返回0
sismember set-key item    // (integer) 1 //存在返回1
srem set-key item2  // (integer) 1 //刪除一個元素,返回刪除的個數
srem set-key item2  // (integer) 0 // 刪除不存在的元素,返回0

smove source-key dest-key item   //元素轉移
spop key  //從集合中隨機**移除**一個元素並返回該元素
srandmember key [count]    //從集合中隨機返回一個或多個元素
scard key   //返回集合中元素個數
// 集合運算
sdiff key-name [key-name …]  //返回第一個集合中沒有在其他集合出現的元素
sdiffstore dest-key key-name [key-name …]  //同上,並將結果儲存在dest-key中
sinter key-name [key-name …]  //返回所有集合中共有的
sinterstore dest-key key-name [key-name …]  //同上,並將結果儲存到dest-ley中
sunion key-name [key-name …]
sunionstore dest-key key-name [key-name …]

hash

Redis In Action 筆記(一):基本資料型別及其操作

list 和 set 儲存的是元素的序列,而hash儲存的是鍵值對

hset hash-key sub-key1 value1     // (integer) 1  //新新增的,返回1
hset hash-key sub-key2 value2    // (integer) 1
hset hash-key sub-key1 value1    // (integer) 0  //非新新增,返回0

hgetall hash-key  //返回所有鍵值對
/**
    1) "sub-key1"
    2) "value1"
    3) "sub-key2"
    4) "value2"
*/
hdel hash-key sub-key2    // (integer) 1  //刪除,刪除前返回元素是否存在
hdel hash-key sub-key2    // (integer) 0
hget hash-key sub-key1    // "value1"
hgetall hash-key    // 1) "sub-key1"  2) "value1"
//批量操作
hmget key-name key [key …]
hmset key-name key value [key value …]
hdel key-name key [key …]
hlen key-name  // 返回鍵值對數量

//更多操作
hexists key-name key  //鍵是否存在
hkeys key-name  //返回所有鍵值
hvals key-name  //返回所有的值
hincrby key-name key increment
hincrbyfloat key-name key increment

zset

Redis In Action 筆記(一):基本資料型別及其操作

類似hash,有序集合儲存的是鍵值對,鍵(成員)是唯一的,值(分數)必須是浮點數

//基本操作
zadd zset-key 728 member1    // (integer) 1  //新增元素,返回新增元素的數量
zadd zset-key 982 member0    // (integer) 1
zadd zset-key 982 member0    // (integer) 0  //實際沒有新增元素,返回0
zrange zset-key 0 -1 withscores    //返回全部元素,按分數排序
/**
    1) "member1"
    2) "728"
    3) "member0"
    4) "982"
*/
zrangebyscore zset-key 0 800 withscores  // 按分數範圍查詢
/**
    1) "member1"
    2) "728"
*/
zrem zset-key member1    // (integer) 1  //刪除,返回刪除的元素個數
zrem zset-key member1    // (integer) 0

zcard  key-name  // 返回成員(member)的總數
zincrby  key-name amount member //給成員member增加amount
zcount key-name min max  //返回指定scroe範圍的member數
zrank key-name member //返回指定member的位置
zscore key-name member //返回指定member的score
//運算元據範圍和集合運算
//zinterstore(交集)例子,zunionstore(並集)同理
zadd zkey1 1 a 2 b
zadd zkey2 1 b 3 c
//原型: ZINTERSTORE destination numkeys key [key ...] [WEIGHTS weight [weight ...]] [AGGREGATE SUM|MIN|MAX]
//這裡out為目標集合,合併zkey1和zkey2集合,權重都為1,聚合方式為求最大值
//輸出:"1"
zinterstore out 2 zkey1 zkey2 weights 1 1 aggregate max
zrange out 0 -1 withscores  //輸出:1)  "b  2)  "2"
zrevrank key-name member  //返回member在集合倒序排序時的位置
zrevrange key-name start stop [WITHSCORES]  //相當於zrange倒序時獲取範圍

//返回score 值介於 min 和 max 之間(包括等於 min 或 max )的成員
//參考http://redisdoc.com/sorted_set/zrangebyscore.html
ZRANGEBYSCORE key min max [WITHSCORES] [LIMIT offset count] 

//相當於倒序時的ZRANGEBYSCORE
ZREVRANGEBYSCORE key max min [WITHSCORES] [LIMIT offset count]

//移除有序集 `key` 中,指定排名(rank)區間內的所有成員。
// 區間分別以下標引數 `start` 和 `stop` 指出,包含 `start` 和 `stop` 在內。
ZREMRANGEBYRANK key-name start stop

//移除有序集 key 中,所有 score 值介於 min 和 max 之間(包括等於 min 或 max )的成員
ZREMRANGEBYSCORE key-name min max

Was mich nicht umbringt, macht mich stärker

相關文章