1. 程式人生 > >Redis資料操作命令列

Redis資料操作命令列

一.String資料型別

(1)set key value [ex 秒數] [px 毫秒數] [nx/xx]  

      如果ex和px同時寫,則以後面的有效期為準

      nx:如果key不存在則建立

      xx:如果key存在則修改其值

  (2)get key:取值

  (3)mset key1 value1 key2 value2 一次設定多個值

  (4)mget key1 key2 :一次獲取多個值

  (5)setrange key offset value:把字串的offset偏移位元組改成value

                  如果偏移量 > 字串長度,該字元自動補0x00

  (6)append key value :把value追加到key 的原值上

  (7)getrange key start stop:獲取字串中[start, stop]範圍的值

                  對於字串的下標,左數從0開始,右數從-1開始

                  注意:當start>length,則返回空字串

                     當stop>=length,則擷取至字串尾

                     如果start所處位置在stop右邊,則返回空字串

  (8)getset key nrevalue:獲取並返回舊值,在設定新值

  (9)incr key:自增,返回新值,如果incr一個不是int的value則返回錯誤,incr一個不存在的key,則設定key為1

  (10)incrby key 2:跳2自增

  (11)incrbyfloat by 0.7: 自增浮點數 

  (12)setbit key offset value:設定offset對應二進位制上的值,返回該位上的舊值

                 注意:如果offset過大,則會在中間填充0

                    offset最大到多少

                     2^32-1,即可推出最大的字串為512M

  (13)bitop operation destkey key1 [key2..]    對key1 key2做opecation並將結果儲存在destkey上

                          opecation可以是AND OR NOT XOR

  (14)strlen key:取指定key的value值的長度

   (15)setex key time value:設定key對應的值value,並設定有效期為time秒


二.List資料型別

 (1)lpush key value:把值插入到連結串列頭部

  (2)rpush key value:把值插入到連結串列尾部

  (3)lpop key :返回並刪除連結串列頭部元素

  (4)rpop key: 返回並刪除連結串列尾部元素

  (5)lrange key start stop:返回連結串列中[start, stop]中的元素

  (6)lrem key count value:從連結串列中刪除value值,刪除count的絕對值個value後結束

                count > 0 從表頭刪除  count < 0 從表尾刪除  count=0 全部刪除

  (7)ltrim key start stop:剪下key對應的連結,切[start, stop]一段並把改制重新賦給key

  (8)lindex key index:返回index索引上的值

  (9)llen key:計算連結串列的元素個數

  (10)linsert key after|before search value:在key 連結串列中尋找search,並在search值之前|之後插入value

  (11)rpoplpush source dest:把source 的末尾拿出,放到dest頭部,並返回單元值

    應用場景: task + bak 雙鏈表完成安全佇列

              業務邏輯: rpoplpush task bak

         接收返回值並做業務處理

         如果成功則rpop bak清除任務,如果不成功,下次從bak表取任務

  (12)brpop,blpop key timeout:等待彈出key的尾/頭元素

                timeout為等待超時時間,如果timeout為0則一直等待下去

      應用場景:長輪詢ajax,線上聊天時能用到

三.Hash資料型別

 (1)hset key field value:設定key的field為value

  (2)hsetnx key field value:不存在的情況下設定key的field為value

  (3)hmset kety field1 value1 field2 value2:同時設定多個field

  (4)hget key field:獲取指定的hash field

  (5)hmget key field1 field2:一次獲取多個field

  (6)hincrby key field 5:指定的hash field加上給定的值

  (7)hexists key field:測試指定的field是否存在

  (8)hlen key :返回hash的field數量

  (9)hdel key field:刪除指定的field

  (10)hkeys key :返回hash所有的field

  (11)hvals key:返回hash所有的value

  (12)hgetall key:獲取某個hash中全部的field及value 

四.set無序集合型別

(1)sadd key value1 value2:往集合裡面新增元素

  (2)smembers key:獲取集合所有的元素

  (3)srem key value:刪除集合某個元素

  (4)spop key:返回並刪除集合中1個隨機元素(可以坐抽獎,不會重複抽到某人)   

  (5)srandmember key:隨機取一個元素

  (6)sismember key value:判斷集合是否有某個值

  (7)scard key:返回集合元素的個數

  (8)smove source dest value:把source的value移動到dest集合中

  (9)sinter key1 key2 key3:求key1 key2 key3的交集

  (10)sunion key1 key2:求key1 key2 的並集

  (11)sdiff key1 key2:求key1 key2的差集

  (12)sinterstore res key1 key2:求key1 key2的交集並存在res裡 


五.Zset有序集合型別

(1)zadd key score1 value1:新增元素

  (2)zrange key start stop [withscore]:把集合排序後,返回名次[start,stop]的元素  預設是升續排列  withscores 是把score也打印出來

  (3)zrank key member:查詢member的排名(升序0名開始)

  (4)zrangebyscore key min max [withscores] limit offset N:集合(升序)排序後取score在[min, max]內的元素,並跳過offset個,取出N個

  (5)zrevrank key member:查詢member排名(降序 0名開始)

  (6)zremrangebyscore key min max:按照score來刪除元素,刪除score在[min, max]之間

  (7)zrem key value1 value2:刪除集合中的元素

  (8)zremrangebyrank key start end:按排名刪除元素,刪除名次在[start, end]之間的

  (9)zcard key:返回集合元素的個數

  (10)zcount key min max:返回[min, max]區間內元素數量

  (11)zinterstore dest numkeys key1[key2..] [WEIGHTS weight1 [weight2...]] [AGGREGATE SUM|MIN|MAX]

      求key1,key2的交集,key1,key2的權值分別是weight1,weight2

      聚合方法用 sum|min|max

      聚合結果 儲存子dest集合內